首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这里的数据表示对于One-Hot是准确的吗?

这里的数据表示对于One-Hot是准确的吗?
EN

Stack Overflow用户
提问于 2021-04-21 13:27:20
回答 1查看 77关注 0票数 2

我尝试在这里使用One-Hot对蘑菇数据集(https://www.kaggle.com/uciml/mushroom-classification)进行编码。下面是我使用的编码代码(在Python中):

代码语言:javascript
复制
from sklearn.preprocessing import OneHotEncoder
second_df = OneHotEncoder(handle_unknown='ignore').fit_transform(new_df)
print(second_df)

我的代码的结果如下图所示,这让我非常困惑:Result for the encoding.

这个结果是我的One-Hot的正确表示吗?如果没有,我应该怎么做来修复代码?

EN

回答 1

Stack Overflow用户

发布于 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,,其中所有未列出的坐标都为零:

代码语言:javascript
复制
(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)

  • 或chain :

OneHotEncoder().fit_transform(new_df).toarray()

输出:

代码语言:javascript
复制
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.]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67189749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档