我正在进行一项任务,我们正在使用scikit中的OneHotEncoder学习打印所有类别。以下是数据样本和我用来转换它的代码:
grade sub_grade short_emp emp_length_num home_ownership term
0 B B2 0 11 RENT 36 months
1 C C4 1 1 RENT 60 months
2 C C5 0 11 RENT 36 months
3 C C1 0 11 RENT 36 months
4 A A4 0 4 RENT 36 months
5 E E1 0 10 RENT 36 months
代码:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(categorical_features='all', handle_unknown='error', n_values='auto', sparse=True)
encoder.fit(lending_club)
我收到的错误出现在术语栏目中:
ValueError: could not convert string to float: ' 36 months'
答案 0 :(得分:1)
OneHotEncoder
不支持字符串功能。您必须先使用LabelEncoder
将它们转换为整数。另一种选择是在所有列上使用LabelBinarizer
。
答案 1 :(得分:0)
scikit-learn的OneHotEncoder
支持0.20.0以上的字符串。