使用 OneHotEncoder 和拟合数据时收到值错误
Receiving a value error when using OneHotEncoder and fitting data
我正在做作业,我们在 scikit-learn 中使用 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'
OneHotEncoder
不支持字符串功能。您必须先将它们转换为整数,例如使用 LabelEncoder
。另一种选择是在所有列上使用 LabelBinarizer
。
参见。
scikit-learn 的 OneHotEncoder
支持 0.20.0.
中的字符串
我正在做作业,我们在 scikit-learn 中使用 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'
OneHotEncoder
不支持字符串功能。您必须先将它们转换为整数,例如使用 LabelEncoder
。另一种选择是在所有列上使用 LabelBinarizer
。
参见
scikit-learn 的 OneHotEncoder
支持 0.20.0.