2017-02-13 15 views
0

Я работаю над заданием, и мы используем OneHotEncoder в 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' 

ответ

1

OneHotEncoder не поддерживает строковые функции. Вы должны преобразовать их в целые числа, используя, например, LabelEncoder. Другой вариант - использовать LabelBinarizer для всех столбцов.

См. How to do Onehotencoding in Sklearn Pipeline.

+0

Другой вопрос: я получаю ошибку значения при попытке передать DataFrame с выбором более одного столбца строки, такого как lending_club ['grade', 'term']. Должен ли я разделить DataFrame на два кадра? Или используйте DataMapper, чтобы разбить данные строки из числовых данных? – macshaggy

+0

Можете ли вы создать новый вопрос в SO со всей необходимой информацией, пожалуйста? – dukebody