我正在尝试使用sklearn_pandas dataframemapper。这将带有该列所需的预处理转换功能的列名。喜欢,
mapper = sklearn_pandas.DataFrameMapper([
('hour',None),
('season',sklearn.preprocessing.OneHotEncoder()),
('holiday',None)
])
季节是我的大熊猫数据框架中的INT64 col。
这给了我以下错误 - 太多值无法打开包装。我知道OneHotenCoder取2-D样品而不是1-D样品。
我如何使用Sklearn_pandas使用此onehotencoder,还是不可能。
sklearn-pandas
的官方版本在处理一维数组和转换时存在一些问题。尝试以下叉: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)
])
来自文档:
将列选择器指定为
'column'
(为 一个简单的字符串)和['column']
(作为一个元素的列表)是 传递给变压器的数组的形状。在第一个 案例,通过一个维数阵列将通过,而在第二种情况下 它将是一个二维阵列,一列,即一列 向量。