我试图用参数定义自定义转换器,并在sklearn.compose.columnTransformer中使用它们。我不明白在ColumnTransformer上运行fit_Transform()时为什么不考虑自定义Transformer参数。
下面的脚本显示了我面临的问题的一个过于简单的例子。脚本的控制台输出为:
TRUE
FALSE
------
FALSE
FALSE
当我调用fit_转换时,为什么两个blankTransforms都用默认值初始化?
import numpy as np
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.base import BaseEstimator, TransformerMixin
class BlankTransformer(BaseEstimator, TransformerMixin):
def __init__(self, test_bool=False):
if(test_bool):
print("TRUE")
else:
print("FALSE")
def fit(self, X, y=None):
return self
def transform(self, X, y=None):
return X
df = pd.DataFrame(np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]]),
columns=['a', 'b', 'c', 'd'])
column_transformer = ColumnTransformer(
[('true', BlankTransformer(True), ['a', 'b']),
('false', BlankTransformer(False), ['c', 'd'])],
remainder='passthrough')
print("------")
df = column_transformer.fit_transform(df)
未经允许不得转载!python-为什么ColumnTransformer在运行时不接受Transformer参数?
本文地址:https://ans.52learn.online/2176