足球游戏论坛数据分析--简单粗暴的K均值聚类
在<<足球游戏论坛数据分析--简单粗暴的贝叶斯>>中尝试了贴标签后,一直觉得结果无法接受, 慢慢回想, 其实选择的算法是错误的,原因有
- 论坛帖子分类并非就是PC/PS/XBOX这么简单
- 即使是作者自己贴的标签,也存在挂羊头的可能性
既然没法简单的给帖子分类,那么就尝试一下聚类算法看看有没有发现:
#事先已经把分好词的所有文本存成一个文件,没有事先分类
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 谢谢
从这个分类结果来看,我抓取的论坛板块主要讨论的是:
- 能/爽玩游戏的电脑配置, 即PC版游戏
- "你懂的"游戏用户还是不少,正版化依然任重而道远
- 过半数的讨论(分类3和4)是游戏的各路补丁,老司机都知道,在版权问题这个点上,FIFA无敌
- 颇为意外的是, 2014/2016竟然是热门版本, 2015毫无存在感
- 我现在有点怀疑我的爬虫花了大量时间在扒PC板块的帖子 -_-b
PS, 分类数5其实只是个随便定下的值. 之所以最终选5, 只是在测试了从3到12的分类后, 发现轮廓系数在5开始步入稳定状态,提升不大.
最后,附上个特征向量经降维后作的分类散点图
足球游戏论坛数据分析--简单粗暴的K均值聚类的更多相关文章
- 5-Spark高级数据分析-第五章 基于K均值聚类的网络流量异常检测
据我们所知,有‘已知的已知’,有些事,我们知道我们知道:我们也知道,有 ‘已知的未知’,也就是说,有些事,我们现在知道我们不知道.但是,同样存在‘不知的不知’——有些事,我们不知道我们不知道. 上一章 ...
- 【转】算法杂货铺——k均值聚类(K-means)
k均值聚类(K-means) 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时 ...
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...
- 机器学习理论与实战(十)K均值聚类和二分K均值聚类
接下来就要说下无监督机器学习方法,所谓无监督机器学习前面也说过,就是没有标签的情况,对样本数据进行聚类分析.关联性分析等.主要包括K均值聚类(K-means clustering)和关联分析,这两大类 ...
- K均值聚类
聚类(cluster)与分类的不同之处在于, 分类算法训练过程中样本所属的分类是已知的属监督学习. 而聚类算法不需要带有分类的训练数据,而是根据样本特征的相似性将其分为几类,又称为无监督分类. K均值 ...
- 探索sklearn | K均值聚类
1 K均值聚类 K均值聚类是一种非监督机器学习算法,只需要输入样本的特征 ,而无需标记. K均值聚类首先需要随机初始化K个聚类中心,然后遍历每一个样本,将样本归类到最近的一个聚类中,一个聚类中样本特征 ...
- 机器学习之K均值聚类
聚类的核心概念是相似度或距离,有很多相似度或距离的方法,比如欧式距离.马氏距离.相关系数.余弦定理.层次聚类和K均值聚类等 1. K均值聚类思想 K均值聚类的基本思想是,通过迭代的方法寻找K个 ...
- k均值聚类算法原理和(TensorFlow)实现
顾名思义,k均值聚类是一种对数据进行聚类的技术,即将数据分割成指定数量的几个类,揭示数据的内在性质及规律. 我们知道,在机器学习中,有三种不同的学习模式:监督学习.无监督学习和强化学习: 监督学习,也 ...
- 聚类之K均值聚类和EM算法
这篇博客整理K均值聚类的内容,包括: 1.K均值聚类的原理: 2.初始类中心的选择和类别数K的确定: 3.K均值聚类和EM算法.高斯混合模型的关系. 一.K均值聚类的原理 K均值聚类(K-means) ...
随机推荐
- css常用的特效代码
一.网页变灰的代码:a) 网页变灰色<head>加到这里</head><style type="text/css">html {FILTER: ...
- 【JUC】JDK1.8源码分析之ReentrantLock(三)
一.前言 在分析了AbstractQueuedSynchronier源码后,接着分析ReentrantLock源码,其实在AbstractQueuedSynchronizer的分析中,已经提到过Ree ...
- phpStorm入门
首先在官网上下载并安装:http://www.jetbrains.com/phpstorm/; 安装成功后需要激活: IntelliJ IDEA开源社区 提供了如下通用激活方法: 注册时选择Licen ...
- Xamarin.Android之封装个简单的网络请求类
一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...
- sns社区架构设计案例分享
今天看了个社区,了解了一下该产品的架构设计,做一下分享. 内容来源:http://www.jinhusns.com/Document/FrameworkDocument/?type=cc 一. 架构使 ...
- 零基础如何学习java更有效呢?
零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向 ...
- 3、Python字符串和循环
1.while循环 #猜lucky_number = 6 #如果比6大,提示你猜的大了 #如果比6小,提示你猜的小了 #猜的等于6,提示Bingo #限制3次 lucky_num = 6 count ...
- Java实现Mysql数据库自动备份
最近项目中有一个这样的需求,要求定时备份数据库.看了一些网上的资料,了解到主要思路是是使用java中的Runtime类的exec()方法,可以直接调用windows的cmd命令,参数就是Mysql的备 ...
- PresentViewController切换界面
视图切换,没有NavigationController的情况下,一般会使用presentViewController来切换视图并携带切换时的动画, 其中切换方法如下: – presentViewCon ...
- CSS布局基础——BFC
what's BFC? 第一次看到这个名词,我是拒绝的,css什么时候还有这个东西?于是迫不及待的google了一下,才发现原来它无时无刻不在我们的css当中,只不过它并不是一个属性,不需要我们平常使 ...