前言
请岛民结合昨天和前天的文章一起看,这是个系列!
(前言是大管家自己加的...可任性了呢!)
分类和聚类算法,都是数据挖掘中最常接触到的算法。分类、聚类算法分别有很多种,我们这里暂时不用深究算法细节。关于分类和聚类大家可以上网看到很多介绍的文章。但R中已经有成熟的算法程序包可以直接调用了。
分类和聚类的差异。。。照我的理解
相同点分类算法和聚类算法最后实现的效果是相同的,都是给一个集合划分成几个类别。不同点分类算法是根据已知的确定类别去做划分,所以分类需要训练集,有训练、测试、预测这个过程;聚类算法则未规定类别,它是基于给定集合的里面的内容,根据内容的相似度去给集合划分成指定的几个类(你可以指定划分成多少个类,而不是指定有哪些类),这些相似度的测量就是聚类算法的核心,这个度量标准可以是欧几里得距离、是曼哈顿距离、是切比雪夫距离等等。
它们分别叫做有监督分类和无监督分类,这种说法不是很确切,他们之间是存在差异的。
今天我们主要来看文本聚类
做聚类不需要训练集的,我们就接着之前的处理的分词去做,常用的聚类算法有5种,这里主要给大家介绍1种——系谱聚类
1首先我们载入tm包
2然后代入数据集,转变成矩阵才能进行聚类算法
3接下来就是做聚类了
a. 使用dist()函数计算并返回使用指定的距离测量,计算一个数据矩阵中的行之间的距离,计算距离矩阵。
b. 利用hclust(d, method = "complete", members = NULL)函数用来实现系谱聚类,将之前处理好的矩阵带入,参数method选择默认的值,得到:
c. 我们利用plot()做一下系谱图
>plot(hclustRes)
d. 用cutree()函数对系谱图做剪枝,按聚类结果分5个类别,进行简单的处理之后我们得到
e. 调出数据编辑器,我们就能看清楚哪一句话属于哪一个分类
当然啦,我们这个案例主要是为了让大家理清楚文本挖掘的思路,并没有太大的实际的意义,文本挖掘是数据挖掘工程师面试必问的问题,因为它涉及到的范围很广。其实在代码中还有一种聚类算法,这里我就不给大家解释了!
这几天大家应该也是很烧脑的,but 其实岛主还准备有文本挖掘的Part4—《利用电商用户评论看用户对商品的反馈》。这个实操的部分,我会在下周给大家带到!
岛主小喇叭
希望大家多多关注菜鸟数据岛,这里不仅有实用的技术分享,更有数据分析的应用以及商业思维、商业价值应用干货。当今企业不再需要不懂业务的“马后炮”型、纯技术流数据分析师,而是需要具有商业思维、战略眼光的“企业医生”型分析师。单纯从数据分析推进企业发展的方面,中国还有很大的发展蓝海。在信息化的未来,数据分析思维必将成为基础性需求,成为管理者、运营、产品、市场、IT从业者的必备技能。菜鸟数据岛致力于帮助岛民成为具备娴熟技术、全新商业思维、战略决策视野的数据分析精英。愿我们一起进步,共同成长,毕竟我们的心愿是,让兜里充满钱,让心里充满爱!!!