无监督学习(也有人叫非监督学习,反正都差不多)则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本(训练集),而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)
无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。下面我们将开始学习聚类。
注:监督学习,就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出。
1.聚类和分类的区别
聚类和分类的区别:聚类是无监督学习任务,不知道真实的样本标记,只把相似度高的样本聚合在一起;分类是监督学习任务,利用已知的样本标记训练学习器预测未知样本的类别。
02.聚类的作用-寻找优质用户
二八定律又名80/20定律、也叫巴莱特定律。社会上20%的人占有80%的社会财富
02.聚类的作用-社区发现
比如将每一个看作一个人,这些人之间存在这联系,我们把联系比较多的聚成一个类别,认为是同一个社群。
02.聚类的作用-异常点监控
将银行后台数据归类为两个类别,比如正常一个类别,不正常一个类别。大多数情况下,数据都会归为正常类别的那一个类,但是出现异常点的时候,就会归为另一个类别,所以这个点可能是信用卡诈骗或者是黑客攻击。
例如将后台数据分成一个个特征,根据这些特征做聚类。然后发现异常点。
常见的聚类算法:
01.K-MEANS
算法接受参数K;然后将事先输入的n个数据对象划分成k个聚类。使得所获得聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较低。(物以类聚)
算法思想:以空间中k个样本点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐步更新各聚类中心的值,直至找得到最好的聚类结果。
算法步骤:
1、先从没有标签的元素集合A中随机选K个元素,作为k个子集(簇)各自的重心。注:所有样本点的初识簇可以为0
2、分别计算所有的样本点到k个子集重心的距离(这里的距离可以是欧式距离),根据距离将样本划分到距离最近的子集。(注:求样本点到所有质心的距离)
3、根据聚类的结果,重新计算重心(重心的计算方法是计算各子集中所有样本各个维度的算数平均值)
4、重复第2步,即将集合A中的所有元素按照新的质心重新聚类。
5、重复第4步,直至聚类结果不再发生变化。(就是所有的样本点所属的簇不再发生变化)
例子
算法终止的判定条件:样本所属的簇不再发生变化,算法终止。