#python #machine-learning #scikit-learn
Вопрос:
Я пытаюсь бинаризовать целевой класс без потери номера индекса. Однако не удалось и не удалось найти соответствующий параметр в sklearn.предварительная обработка.label_binarize. вход y:
index target
1 0
3 0
21 1
50 1
код:
y=data['target']
y=label_binarize(y, classes=[0, 1])
y=np.hstack((1-y, y))
выход:
0 1
0 1 0
1 1 0
2 0 1
3 0 1
результат, который я предпочитаю
0 1
1 1 0
3 1 0
21 0 1
50 0 1
Ответ №1:
Функции Scikit-Learn принимают фрейм данных Pandas в качестве входных данных, но в результате возвращают массив numpy. Вы должны учитывать это правило при работе с кадрами данных.
Следовательно y
, это массив numpy. Однако вы можете снова сделать его фреймом данных, как это:
y = pd.DataFrame(y, index=data.index) # make it dataframe, and pass data indices
y.head()
Теперь, y
это:
0 1
1 1 0
3 1 0
21 0 1
50 0 1
Комментарии:
1. Спасибо за понимание!