作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 Scikit 的本教程,学习使用 K-Means 进行文本聚类:
http://scikit-learn.org/stable/auto_examples/text/document_clustering.html
在示例中,可选地使用 LSA(使用 SVD)来执行降维。
为什么这很有用?已经可以使用“max_features”参数在 TF-IDF 向量化器中控制维度(特征)的数量。
我知道 LSA(和 LDA)也是主题建模技术。与聚类的区别在于文档属于多个主题,但只属于一个聚类。我不明白为什么 LSA 会在 K-Means 聚类的上下文中使用。
示例代码:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
documents = ["some text", "some other text", "more text"]
tfidf_vectorizer = TfidfVectorizer(max_df=0.5, max_features=10000, min_df=2, stop_words='english', use_idf=True)
X = tfidf_vectorizer.fit_transform(documents)
svd = TruncatedSVD(1000)
normalizer = Normalizer(copy=False)
lsa = make_pipeline(svd, normalizer)
Xnew = lsa.fit_transform(X)
model = KMeans(n_clusters=10, init='k-means++', max_iter=100, n_init=1, verbose=False)
model.fit(Xnew)
最佳答案
有a paper这表明 PCA 特征向量是 K-Means 的良好初始化器。
使用 max_features
控制尺寸参数相当于切断词汇量大小,产生负面影响。例如,如果您设置 max_features
到 10 模型将使用语料库中最常见的 10 个单词并忽略其余单词。
关于python - 为什么在进行文本聚类时在 K-Means 之前使用 LSA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394846/
我是一名优秀的程序员,十分优秀!