每当我同时使用StandardScaler和OnehotEncoding时,我无法使用余数class='passthrough'。不管我怎么说,我都有问题。要么是参数前的关键字,要么是fit_-tranform的问题。。。你说吧。我现在做的是:
trans_cols= make_column_transformer((OneHotEncoder(),['job', 'marital', 'education',
'default','housing','loan','contact','month','poutcome']),remainder='passthrough')
trans_cols.fit_transform(X)
here are my columns:
Index(['age', 'job', 'marital', 'education', 'default', 'balance', 'housing',
'loan', 'contact', 'month', 'duration', 'campaign', 'pdays', 'previous',
'poutcome', 'y'],
dtype='object')
上面的代码是有效的,当使用余数关键参数时,我无法组合这两个估计器。以下是我尝试的原因:
trans_cols= make_column_transformer((OneHotEncoder(),['job', 'marital', 'education', 'default','housing','loan',
'contact','month','poutcome']),remainder='passthrough',
(StandardScaler(),['age', 'job', 'marital', 'education', 'default', 'balance',
'housing','loan', 'contact', 'month', 'duration',
'campaign', 'pdays', 'previous','poutcome']))
但是,在我删除remainder
并保留2个元组之前,上述方法不起作用。这是可以理解的。然而,这样做是试图编码我的一些数字,我有一条消息告诉我,它遇到了一些列有浮动。加上我的准确性下降严重
首选做法是不要在一个热编码列上使用StandardScaler。下面的第一个示例演示了OHE在分类变量上的应用,以及StandardScaler在数字列上的应用。第二个示例显示了OHE在选定列上的顺序应用和StandardScaler在所有列上的顺序应用,但不建议这样做
示例1:
输出:
例2:
输出:
相关问题 更多 >
编程相关推荐