Я благодарен тем, кто прочитает мой пост и, надеюсь, поможет.
Я установил словари функций TF-IDF на обучающем наборе с помощью TfidfVectorizer (), а также основные векторы подсчета abs с помощью CountVectorizer (), чтобы определить, какая конфигурация работает лучше.
Затем разделите исходное обучение на training_2 и набор проверки.
Таким образом, все слова в проверке были приняты во внимание при создании словарей.
Затем я преобразовал документы тестового набора в векторы на основе ранее упомянутых словарей функций. Таким образом, новые слова могли быть отброшены (не влияют на классификацию), потому что они не встречались при создании словарей.
Я ожидал бы иметь лучшую производительность на проверочном наборе, так как он не содержит новых слов, но я получаю лучшую производительность на тестовом наборе, как с разными классификаторами, так и с разными семенами расщепления, как и с разными векторными оценками (счетчик абс и tf-idf). ).
(По моему мнению, возможное объяснение состоит в том, что в этом случае тестовый набор, по сравнению с обучающим набором, состоит из большего количества слов, которые свойственны определенным категориям, то есть не повторяются в разных классах. Поэтому их Присутствие, будучи разреженными векторами, связано только с одной категорией, что объясняет разрыв в точности между валидацией и тестовым набором.)
Может ли кто-нибудь обосновать эти результаты?