sklearn OneHotEncoder string类型报错

  统计/机器学习 数据预处理 Python    浏览次数:2820        分享
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面试题库 DS面经

黄前志   2017-03-30 09:38

2

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

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


SofaSofa数据科学社区DS面试题库 DS面经

abuu   2018-10-13 14:51



  相关主题

sklearn onehotencoder的具体用法   2回答

sklearn模型当中的verbose是什么意思?   2回答

sklearn中的predict_proba方法的返回值的意义   2回答

sklearn训练classifier的时候报错Unknown label type   1回答

GradientBoostingClassifier的每次输出结果不同   1回答

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

sklearn的模型如何保存下来?   2回答

sklearn计算MAPE   1回答

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

sklearn中除了sgd以外,还有什么可以使用partial_fit方法吗?   1回答

sklearn.linear_model.SGDClassifier能做小批量学习(mini-batch)吗?   2回答

sklearn回归的入门级问题   3回答



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

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

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

我们谢绝答非所问。

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

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