在python中使用修改的OneHotEncoder将分类数据编码为虚拟变量?



这是我的代码,我试图对"X"第一列的分类数据进行虚拟编码,但这不起作用,当我访问OneHotEncoder文档页面时,它说OneHotEncoder已被更改。我无法弄清楚如何使用这个更改OnehotEncoder.

from sklearn.preprocessing import OneHotEncoder
onehotencoder=OneHotEncoder(categorical_features = [0])
X[:, 0]=onehotencoder.fit_transform(X).toarray()

这里有几个问题。

  • 首先,单热编码器将返回一个包含多列的数组,而输入将是单个列。因此,您的分配将失败。

*然后,scikit-learn将返回一个numpy数组。所以没有必要使用toarray.

  • 最后,您可能希望对某些列应用编码,并让其他列保持不变(或者可能应用其他处理(。在这种情况下,您想使用所谓的ColumnTransformer.你可以看看下面的例子,它完美地说明了如何进行这样的预处理: https://scikit-learn.org/stable/auto_examples/compose/plot_column_transformer_mixed_types.html#sphx-glr-auto-examples-compose-plot-column-transformer-mixed-types-py

最新更新