Классификация вероятностей в логистике c регрессия - PullRequest
0 голосов
/ 01 мая 2020

Я решаю проблему НЛП, в которой я сопоставляю названия лекарств с наиболее подходящим кодом. Это проблема классификации класса 970. Я использовал BOW для извлечения объектов.

clf=LogisticRegression(C=5,solver='saga',penalty='elasticnet',l1_ratio=0.5).fit(X_train_bow, y_train)
predicted=clf.predict(X_test_bow)

Прогнозируемый класс первой точки данных (X_test_bow [0]) - это «1AJ1», который является правильным классом, а индекс равен 586.

Но когда я вижу вероятности всех классов, используя приведенный ниже фрагмент кода:

f=clf.predict_proba([X_test_bow[0]])
max_prob=max(f[0])
np.where(f[0]==max_prob)

Максимальная вероятность равна индексу 360, а класс равен «1B11» с вероятностью 0,44, которая неверна, и вероятность равна индекс 586 (правильный индекс класса) равен 0,00006.

Теперь я в замешательстве. Вероятность в предсказанном классе должна быть максимальной, но в моем случае этого не происходит. Это происходит и в других точках данных.

Я не могу понять, что я делаю неправильно.

1 Ответ

0 голосов
/ 01 мая 2020

Я использовал ваш код с другими входными данными, и он хорошо работает для меня. Класс с более высоким процентом соответствует прогнозируемому классу. Поэтому я не вижу никаких проблем с кодом, который вы загрузили здесь.

Тем не менее, вы можете также опубликовать код BoW со своим вводом?

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