我正在使用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,返回term-document matrix。 這相當於適合轉換,但更有效地實現。
維基百科:
顯示哪些文件包含哪些方面又多少次出現。
矩陣的維基百科示例很簡單,但返回的值似乎完全不同。
下一步SelectPercentile函數應該返回的功能,這是最重要的,這取決於特定的百分比列表:
減少X到所選擇的功能。
爲什麼我得到6743層的功能? :D
P.S .:該程序似乎以89%的準確度工作。
編輯:我是新來的Python和機器學習,所以請解釋它像IM五位。
交叉貼:http://stats.stackexchange.com/q/245928
如果您參考下面的鏈接,裏面詳細介紹了整個TF-IDF這樣會更有幫助/ 2921,http://stackoverflow.com/q/40595936/781723。請[不要在多個網站上發佈相同的問題](http://meta.stackexchange.com/q/64068)。每個社區都應該誠實地回答問題,不要浪費任何人的時間。 –