Я использую scikit-learn для классификации вопросов. У меня есть этот код:Что возвращают TfidfVectorizer и SelectPercentile?
print(features[0], '\n')
vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5,
stop_words='english')
features = vectorizer.fit_transform(features)
print(features[0], '\n')
selector = SelectPercentile(f_classif, percentile=100)
selector.fit(features, labels)
features = selector.transform(features).toarray()
print(features[0])
print(len(features[0]), '\n')
, который производит следующий результат:
how serfdom develop leav russia ?
(0, 5270) 0.499265751002
(0, 3555) 0.473352969263
(0, 1856) 0.449852125968
(0, 5433) 0.569476725713
[ 0. 0. 0. ..., 0. 0. 0.]
6743
Первый вопрос, что же матрица, возвращаемый tfidfVectorizer означает? В документации к sklearn написано:
Изучите лексику и idf, верните матрицу терминов и документов. Это эквивалентно соответствию с последующим преобразованием, но более эффективно реализовано.
Из википедии:
показывает, какие документы содержат какие сроки и сколько раз они появляются.
Википедия пример матрицы прост, но возвращаемое значение кажется чем-то совершенно другим.
Следующая функция SelectPercentile должны возвращать список функций, которые являются наиболее важными, в зависимости от заданного процента:
Снизить X для выбранных функций.
Почему у меня есть 6743 функции? : D
P.S .: Кажется, что программа работает с точностью 89%.
EDIT: Я новичок в python и машинах, поэтому, пожалуйста, объясните это как im five.
Перекрестная писал: http://stats.stackexchange.com/q/245928/2921, http://stackoverflow.com/q/40595936/781723. Пожалуйста, не публикуйте тот же вопрос на нескольких сайтах (http://meta.stackexchange.com/q/64068). У каждого сообщества должен быть честный ответ на вопрос, если никто не будет потрачен впустую. –