标签:中文 sample splay 事先 聚类算法 ref ica blocks htm
在<<足球游戏论坛数据分析--简单粗暴的贝叶斯>>中尝试了贴标签后,一直觉得结果无法接受, 慢慢回想, 其实选择的算法是错误的,原因有
既然没法简单的给帖子分类,那么就尝试一下聚类算法看看有没有发现:
#事先已经把分好词的所有文本存成一个文件,没有事先分类 f = codecs.open(‘forum_all.txt‘, ‘r‘, ‘utf-8‘) words_full = f.readlines() f.close() true_k = 5 #事先预设分成5类 vectorizer = TfidfVectorizer(max_df=0.5, max_features=1000, min_df=2) transformer = TfidfTransformer() td = vectorizer.fit_transform(words_full) tfidf = transformer.fit_transform(td) word = np.array(vectorizer.get_feature_names()) km = KMeans(n_clusters=true_ke, init=‘k-means++‘, max_iter=200, n_init=1) km.fit(td) print(u"Silhouette Coefficient(轮廓系数): %0.3f" % metrics.silhouette_score(td, km.labels_, sample_size=5000)) order_centroids = km.cluster_centers_.argsort()[:, ::-1] terms = vectorizer.get_feature_names() for i in range(true_ke): #输出每个分类头10个特征词 for ind in order_centroids[i, :10]: print ‘ %s‘ % terms[ind], print ‘‘
运行结果
Silhouette Coefficient(轮廓系数): 0.137 Cluster 0: 1634 posts 显卡 识别 独立 安装 如何 方法 教程 最后 破解版 reloaded Cluster 1: 4388 posts 2014 evolution soccer 推荐 pro 论坛 首发 dlc3 下载 破解版 Cluster 2: 1677 posts 汇总 资源 dlc6 22 10 更新 pes2014 分享 谢谢 支持 Cluster 3: 7872 posts wecn 发布 正式 pes2016 patch v2 简体中文 汉化 v1 补丁 Cluster 4: 11287 posts pes2014 疑难解答 补丁 更新 球员 10 球场 分享 pes2016 谢谢
从这个分类结果来看,我抓取的论坛板块主要讨论的是:
PS, 分类数5其实只是个随便定下的值. 之所以最终选5, 只是在测试了从3到12的分类后, 发现轮廓系数在5开始步入稳定状态,提升不大.
最后,附上个特征向量经降维后作的分类散点图
标签:中文 sample splay 事先 聚类算法 ref ica blocks htm
原文地址:http://www.cnblogs.com/okokok/p/6041169.html