Можем ли мы объединить fastText вместе с SVM?
Я пытаюсь объединить три разные модели (FastText, SVM, NaiveBayes).
Я думал об использовании Python для этого. Я уверен, что мы можем объединить NaiveBayes, а также модели SVM. Но можем ли мы объединить fastText, используя python?
Может кто-нибудь, пожалуйста, предложите мне относительно того же...
1 ответ
Подход, который вы можете применять для объединения нескольких моделей, не связан с тем, как вы собираетесь реализовать его в Python/Java/R.
Возможно, вы ищете ансамблевое обучение.
Одним из наиболее популярных подходов к созданию множества различных моделей является стекирование, которое включает в себя изучение новой модели, объединяющей предсказания отдельных моделей, которые вы уже обучили. Посмотрите этот урок, который использует Python.
В вашем случае использования вы можете иметь дело с 3 моделями, вы должны иметь в виду, что:
Модели имеют различную механику, чтобы использовать
predict()
метод:FastText
использует внутренний файл (сериализованная модель с.bin
расширение, например) со всеми вложениями иwordNGrams
и вы можете передать необработанный текст напрямую;SVM
а такжеNaiveBayes
Вы обязаны предварительно обработать данные, используяCountVectorizer
,TfidfVectorizer
LabelEncoder
, получите результат, отзовитесь заLabelEncoder
и доставить результат.В конце вам понадобится иметь дело с разными вероятностями (если вы
k > 1
) и, вероятно, вам нужно позаботиться об этом
Если вы собираетесь сериализовать его в производство, вам нужно будет
SVM
а такжеNB
модели и использование.bin
заFastText model
и, конечно, вложения из прежних тоже должны быть созданы. Это может быть небольшой болью в вашем времени отклика, если вам нужно прогнозировать почти в реальном времени.