Почему `LogisticRegression` принимает целевую переменную типа` object` без каких-либо ошибок? - PullRequest
0 голосов
/ 27 октября 2019

Я использую базовые LogisticRegression для данных, для которых целевая переменная равна multiclass.

Я ожидал, что LogisticRegression выдаст некоторую ошибку при вызове fit(). Но это не так.

Обрабатывает ли LogisticRegression такой случай по умолчанию? Если да, какие преобразования применяются к целевой переменной?

ddf = pd.DataFrame(
    [[1,2,3,4, "Blue"],
    [4,2,3,4, "Red"],
    [5,2,8,4, "Red"],
    [2,7,3,9, "Green"],
    [7,6,7,4, "Blue"]], columns=['A','B','C','D','E']
)
ddf
X = ddf[['A', 'B', 'C', 'D']]
y = ddf['E']
lr = LogisticRegression()
lr.fit(X, y)
preds = lr.predict(X)
print(preds)

Дает вывод: ['Blue' 'Red' 'Red' 'Green' 'Blue']

1 Ответ

2 голосов
/ 27 октября 2019

Scikit-learn может обрабатывать строковые метки для всех классификаторов по умолчанию, внутренне он создает объект LabelEncoder , посмотрите код здесь . Метки класса строк кодируются в целочисленные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...