我尝试在这里使用One-Hot对蘑菇数据集(https://www.kaggle.com/uciml/mushroom-classification)进行编码。下面是我使用的编码代码(在Python中):
from sklearn.preprocessing import OneHotEncoder
second_df = OneHotEncoder(handle_unknown='ignore').fit_transform(new_df)
print(second_df)我的代码的结果如下图所示,这让我非常困惑:Result for the encoding.
这个结果是我的One-Hot的正确表示吗?如果没有,我应该怎么做来修复代码?
发布于 2021-04-21 14:25:34
输出看起来有点不寻常,因为默认情况下返回一个sparse matrix:
OneHotEncoder(*, categories='auto', drop=None, sparse=True, dtype=<class 'numpy.float64'>, handle_unknown='error')
稀疏输出被解释为(row, col) non_zero_value,,其中所有未列出的坐标都为零:
(0, 1) 1.0 # value 1.0 at row 0, col 1
(0, 7) 1.0 # value 1.0 at row 0, col 7
...为了得到一个密集的数组,
sparse=False:OneHotEncoder(sparse=False).fit_transform(new_df)
OneHotEncoder().fit_transform(new_df).toarray()
输出:
array([[0., 0., 0., ..., 0., 0., 1.],
[0., 0., 0., ..., 0., 1., 0.],
[1., 0., 0., ..., 0., 1., 0.],
...,
[0., 0., 1., ..., 0., 1., 0.],
[0., 0., 0., ..., 0., 0., 1.],
[0., 0., 0., ..., 0., 1., 0.]])https://stackoverflow.com/questions/67189749
复制相似问题