Почему при извлечении функции с помощью tfidfVectorizer () классификаторы работают лучше на наборе тестов, чем на наборе валидации? (Точность + 7% в среднем) - PullRequest
0 голосов
/ 05 января 2019

Я благодарен тем, кто прочитает мой пост и, надеюсь, поможет.

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

(По моему мнению, возможное объяснение состоит в том, что в этом случае тестовый набор, по сравнению с обучающим набором, состоит из большего количества слов, которые свойственны определенным категориям, то есть не повторяются в разных классах. Поэтому их Присутствие, будучи разреженными векторами, связано только с одной категорией, что объясняет разрыв в точности между валидацией и тестовым набором.)

Может ли кто-нибудь обосновать эти результаты?

...