这是我的代码,我试图对“X”第一列的分类数据进行虚拟编码,但这不起作用,当我访问 OneHotEncoder
文档页面时,它说 OneHotEncoder
已更改。我无法弄清楚如何使用这个更改后的 OnehotEncoder
。
from sklearn.preprocessing import OneHotEncoder
onehotencoder=OneHotEncoder(categorical_features = [0])
X[:, 0]=onehotencoder.fit_transform(X).toarray()
最佳答案
这里有几个问题。
- 首先,one-hot-encoder 将返回一个包含多个列的数组,而输入将为单个列。因此,您的作业将会失败。
*然后,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
关于machine-learning - 在 python 中使用修改后的 OneHotEncoder 将分类数据编码为虚拟变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59343967/