J. *_*Doe 1 statistics machine-learning svd scikit-learn
可以通过使用截断的SVD来降低尺寸。它通过截断奇异值分解(SVD)进行线性降维。但是,必须在分解之前选择组件的数量。
n_comp = 25
tfidf_vec = TfidfVectorizer(analyzer="word", max_features=5000, ngram_range=(1,2))
svd = TruncatedSVD(n_components=n_comp, algorithm='arpack')
tfidf_df = tfidf_vec.fit_transform(values)
df = svd.fit_transform(tfidf_df)
Run Code Online (Sandbox Code Playgroud)
如何选择零件数量?
var_explained = svd.explained_variance_ratio_.sum()
Run Code Online (Sandbox Code Playgroud)
上面的行将帮助您确定25个组件是否足够好地捕获了数据中的可变性。有时,var_explained> = 0.9或var_explained> = 0.95会减少分析中需要进行的变量数量。