Sklearn自定义转换器未保存输出数据集



我正在处理一个包含许多数字特性的数据集。我想把所有变量都放在对数范围内,所以我创建了一个自定义转换器,它不会转换我的数据集。这是代码:

class Scale_log(BaseEstimator, TransformerMixin):

def fit(self, X, y=None):
return self # nothing else to do
def transform(self, X, y=None):
X = X.apply(lambda x: np.log(1+x))
return X
scale_log = Scale_log()
scale_log.fit_transform(data)

如果使用numpy数据,可以尝试删除X.apply:

import numpy as np
from sklearn.base import TransformerMixin

class Scale_log(TransformerMixin):
def fit(self, X, y=None):
return self  # nothing else to do
def transform(self, X, y=None):
X = np.log(1 + X)
return X

data = np.array([[1, 10], [10, 100], [1000, 10000]])
scale_log = Scale_log()
transformed_data = scale_log.fit_transform(data)
print(transformed_data)

最新更新