gpt4 book ai didi

python - 将 OneHotEncoder 与 sklearn_pandas DataFrameMapper 结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:59 25 4
gpt4 key购买 nike

我正在尝试使用 sklearn_pandas DataFrameMapper。这会接收列名称以及该列所需的预处理转换函数。像这样,

mapper = sklearn_pandas.DataFrameMapper([
('hour',None),
('season',sklearn.preprocessing.OneHotEncoder()),
('holiday',None)
])

season 是我的 pandas DataFrame 中的一个 int64 列。

这给了我以下错误 - 要解压的值太多。我知道 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)
])

来自文档:

The difference between specifying the column selector as 'column' (as a simple string) and ['column'] (as a list with one element) is the shape of the array that is passed to the transformer. In the first case, a one dimensional array with be passed, while in the second case it will be a 2-dimensional array with one column, i.e. a column vector.

关于python - 将 OneHotEncoder 与 sklearn_pandas DataFrameMapper 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30010853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com