Fasttext игнорирует неправильные прогнозы?

Я обучил быструю текстовую модель с учителем. Я использовал библиотеку Python pyfasttext для прогнозирования модели. Пример: у меня есть такие данные.

text - label

The meeting is planned - event
The work should be finished - task

Здесь модель правильно предсказывает метку. когда планируется или рабочие слова встречаются в предложении. Но у меня есть список предложений, которые не связаны с обученными данными. Например: Собака - это животное

res = model.predict_proba_single('the dog is an animal\n')

выход:

[(u'event', 0.49999999904767284)]

Выходная вероятность должна быть равна 0 или не иметь метки. Потому что предложение не относится ко всем ярлыкам. Этикетки мультиклассовые. Я привел пример только двух.

То же самое происходит и в классификаторе scikit SGD.

Как предотвратить этот неверный прогноз?


person Giri Annamalai M    schedule 04.12.2018    source источник
comment
Я думаю, вам просто нужно больше значимых данных обучения   -  person user8408080    schedule 04.12.2018
comment
Да. Я должен. Но в реальном времени мы можем не знать, что войдет в наш набор данных для прогнозирования..!   -  person Giri Annamalai M    schedule 05.12.2018


Ответы (1)


Вы можете игнорировать выходные данные прогноза меньше порогового значения 0,5, например (50%), сделав это, вы можете просто извлечь соответствующий прогноз или распечатать 0 или не использовать метку для других нерелевантных случаев, надеюсь, что это поможет

person Mehdi Bahra    schedule 04.12.2018
comment
Это не работает. Я получаю разные % Есть ли в этом какой-то другой способ? - person Giri Annamalai M; 06.12.2018
comment
@GiriAnnamalaiM, можете ли вы рассказать подробнее о своей проблеме? какова точность вашей модели на тестовом наборе? если ваша модель переоснащается или недообучается, вам нужно больше данных или использовать более сложные модели - person Mehdi Bahra; 06.12.2018
comment
Нет, у меня две метки, и набор данных поезда совпадает по счету. Точность 94 % по сравнению с тестовым набором. Переоснащение означает, что одна из меток имеет большее значение, чем другая. - person Giri Annamalai M; 06.12.2018
comment
Отсутствие переполнения означает, что ваша модель плохо обобщает невидимые данные, но если ваши данные хорошо сбалансированы, что означает, что у вас довольно близкое количество примеров между двумя вашими классами, ваша модель должна хорошо работать на невидимых данных, на всякий случай, если вы обучили свой моделируйте и ваш тестовый набор, если это не так, я думаю, что мой ответ должен работать, если вы игнорируете любой вывод прогноза меньше предопределенного порога - person Mehdi Bahra; 06.12.2018