sklearn OneHotEncoder string类型报错

  统计/机器学习 数据预处理 Python    浏览次数:2021        分享
0

我的数据集里面,有的变量是categorical的,比如国家,所以我需要做One Hot Encoding。

但是用OneHotEncoder会报错。

>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder(categorical_features=['a'])
>>> new_df = enc.fit_transform(df)
ValueError: could not convert string to float

这个错误是什么意思?难道sklearn.preprocessing.OneHotEncoder只认识数值的?不能处理字符串类型的?

 

汪王往望   2017-03-29 09:08



   2个回答 
3

可以用pandas的get_dummies

df[feature] = df['country'].astype('category')
df = pandas.get_dummies(df, columns=['country'])


SofaSofa数据科学社区 DS面经 问答 实战

黄前志   2017-03-30 09:38

2

对于字符类型,你需要先做LabelEncoder,把它转成整数类型,然后再用OneHotEncoder

具体代码可以参考我在这个问题里的回答:sklearn onehotencoder的具体用法是什么


SofaSofa数据科学社区 DS面经 问答 实战

abuu   2018-10-13 14:51



  相关主题

查看sklearn版本   1回答

sklearn onehotencoder的具体用法   2回答

sklearn.linear_model.SGDClassifier中的参数n_iter设置问题   2回答

python sklearn模型中random_state参数的意义   2回答

sklearn可以用gpu加速吗?   2回答

sklearn分类模型中预测结果怎么调整概率的阈值   1回答

sklearn里的LabelEncoder什么用?   3回答

lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?   1回答

sklearn SGDClassifier的partial_fit是什么意思?   2回答

sklearn里learning_rate什么意思?   2回答

sklearn predict的默认阈值   2回答

sklearn实现adaboost算法了吗?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!