聚类(clustering)是一种典型的”无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程.
聚类这种行为我们不要觉得很神秘,也不觉得这个东西是机器学习所独有的,恰恰相反,聚类的行为本源还是人自身.我们学习的所有的数据挖掘或者机器学习的算法或者思想的来源都是人类自己的思考方式,只不过我们把它教给机器代劳,让机器成为我们肢体和能力的延伸,而不是让他们替我们做创造和思考.
聚类是一种什么现象呢?我们人类在认识客观世界的过程中其实一直遇到容量性的问题,我们遇到的每一棵树,每一朵花,每一只昆虫,每一头动物…每个个体之间其实都不同,有的差别还相当大.那么我们人在认知和记忆这些客观事物的过程中就会异常痛苦,因为量实在大到无法承受.
因此人类才会在”自底向上”的认识世界的过程中”偷懒”性的选择了归纳归类的方式,注意”偷懒”的方式是人类与生俱来的方法.
图片上画了一只猴子,于是我们就认识了猴子,当我们去动物园的时候,虽然猴子不是画上的猴子,而且猴子之间也长得各式各样,我们还是会把他们归纳总结为一个整体.
人类天生具备这种归纳和总结的能力,能够把认知的相似事物放到一起作为一类事物,他们之间可以彼此不同,但是有一个我们心里的”限度”,只要在这个限度内,特征稍有区别也并无大碍,他们仍然还是这一类事物.
在这一类事物的内部,同样有这种现象,一部分个体之间比较相近,而另一部分个体之间比较相近,人类还能够明显的认知到差别,那么大类别有可以细分为小类别进行认知.比如汽车又分为小轿车,卡车,面包车等
在没有人特意教给我们不同小种群的称谓和特征之前,我们自然具备的这种凭借主观认知的能力–特征形态的相同或近似的划在一个概念下,特征形态不同的划在不同的概念下,这本身就是”聚类”的思维方式
比较常用的聚类算法有K-means,DBSCAN等,基本思路都是利用每个向量之间的”距离”,假如有3个一维样本:180,179,150,如果这三个向量要分成两类的话,应该是180和179这两个分在一个类别,150是另一个类别.用机器学习来做的话,他也能够通过算法自动去感知到这些向量之间的距离,然后将那些彼此之间靠的近的分在一起,以区别于其他类簇.
在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此”相近”向量分在一个群组中.然后下一步,人们通常更有针对性的去研究每一组聚在一起的对象所拥有的共性以及那些远离各个群组的孤立点–这种孤立点研究刑侦,特殊疾病排查等方面都有应用.
在这个过程中,从获得到具体的样本向量,到得出具体的样本向量,到得出聚类结果,人们是不用进行干预的,这就是”非监督”一词的由来.