我正在尝试使用 sklearn_pandas DataFrameMapper。这将接收列名称以及该列所需的预处理转换函数。像这样,
mapper = sklearn_pandas.DataFrameMapper([
('hour',None),
('season',sklearn.preprocessing.OneHotEncoder()),
('holiday',None)
])
季节是我的 Pandas DataFrame 中的 int64 col。
这给了我以下错误 - 要解压缩的值太多。
我知道 OneHotEncoder 需要一个二维样本而不是一维样本。
我如何才能将这个 OneHotEncoder 与 sklearn_pandas 一起使用,或者是不可能的。
最佳答案
sklearn-pandas
正式版在处理一维数组和变换时存在一些问题。尝试以下 fork :
https://github.com/dukebody/sklearn-pandas
但是,我认为您可以使用 LabelBinarizer
(如在 sklearn_pandas
示例中)而不是 OneHotEncoder
来完成您想要的操作。
更新 2015-11-28
在 sklearn-pandas>=0.0.12
中,您可以通过执行以下操作来解决您的问题:
mapper = sklearn_pandas.DataFrameMapper([
('hour',None),
(['season'],sklearn.preprocessing.OneHotEncoder()),
('holiday',None)
])
从文档:
关于python - 使用 OneHotEncoder 和 sklearn_pandas DataFrameMapper,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30010853/