分类与聚类,监督学习与无监督学习
在讲具体的分类和聚类算法之前,有必要讲一下什么是分类,什么是聚类,以及都包含哪些具体算法或问题。
- Classification (分类),对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做 supervised learning (监督学习),
- 而Clustering(聚类),简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在Machine Learning 中被称作unsupervised learning (无监督学习).
分类与聚类的区别
聚类是未知结果会有多少类的,即可能聚成10个类也可能聚成100个类,只是根据某些相似性条件把数据聚合在一起,当然也有让用户自定义类数目的聚类算法,但这个数目也不好定的。聚类的数据集要比较多,这样才有东西聚成一堆一堆的。
分类是已知一共有多少类,并明确知道该类的特点,然后把未知的按一定规则分到某一个类中 分类可以多可以少,当然数据量大才能很好地说明分类算法的优异。但实际上分类算法在确定某些规则后,你可以只有一个未知的数据也可以把它分到某一个类别当中,但聚类如果只有一个未知的数据怎么聚啊
回归算法
分类算法是建立事例特征对应到分类的方法。分类必须是离散的,像信用卡的种类只有三种,决策的行为action是离散的。 如果我们要通过客户的收入、婚姻状况、职业等特征预测客户会使用信用卡消费多少金额时,分类算法就无能为力了, 因为消费金额是大于0的任意值。这时只能使用回归算法。
聚类
分类算法的目的是建立事例特征到类别的对应法则Y=F(X), x 为特征, Y为类别或者action.。但是前提是类别已经存在的,如已知动物可以分成哺乳期和非哺乳期, 银行发放的信用卡有三种,银卡,金卡,白金卡。
有时在分类存在之前,即分类不存在,要将现有的事例分为几类。
聚类的另一种用途是可以发现属性间隐含的关系。
序列聚类
序列聚类通过一系列事件发生的顺序聚类,来预测当一个事件
常见的分类与聚类算法
所谓分类分类,简单来说,就是根据文本的特征或属性,划分到已有的类别中。如在自然语言处理NLP中,我们经常提到的文本分类便就是一个分类问题,一般的模式分类方法都可用于文本分类研究。常用的分类算法包括:决策树分类法,朴素的贝叶斯分类算法(native Bayesian classifier)、基于支持向量机(SVM)的分类器,神经网络法,k-最近邻法(k-nearest neighbor,kNN),模糊分类法等等(所有这些分类算法日后在本blog内都会一一陆续阐述)。
分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应。但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法。
而K均值(K-means clustering)聚类则是最典型的聚类算法(当然,除此之外,还有很多诸如属于划分法K-MEDOIDS算法、CLARANS算法;属于层次法的BIRCH算法、CURE算法、CHAMELEON算法等;基于密度的方法:DBSCAN算法、OPTICS算法、DENCLUE算法等;基于网格的方法:STING算法、CLIQUE算法、WAVE-CLUSTER算法;基于模型的方法,本系列后续会介绍其中几种)。
监督学习与无监督学习
机器学习发展到现在,一般划分为监督学习(supervised learning),半监督学习(semi-supervised learning)以及无监督学习(unsupervised learning)三类。举个具体的对应例子,则是比如说,在NLP词义消岐中,也分为监督的消岐方法,和无监督的消岐方法。在有监督的消岐方法中,训练数据是已知的,即每个词的语义分类是被标注了的;而在无监督的消岐方法中,训练数据是未经标注的。
上面所介绍的常见的分类算法属于监督学习,聚类则属于无监督学习(反过来说,监督学习属于分类算法则不准确,因为监督学习只是说我们给样本sample同时打上了标签(label),然后同时利用样本和标签进行相应的学习任务,而不是仅仅局限于分类任务。常见的其他监督问题,比如相似性学习,特征学习等等也是监督的,但是不是分类)。
再举个例子,正如人们通过已知病例学习诊断技术那样,计算机要通过学习才能具有识别各种事物和现象的能力。用来进行学习的材料就是与被识别对象属于同类的有限数量样本。监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别。若所给的学习样本不带有类别信息,就是无监督学习(浅显点说:同样是学习训练,监督学习中,给的样例比如是已经标注了如心脏病的,肝炎的;而无监督学习中,就是给你一大堆的样例,没有标明是何种病例的)。
而在支持向量机导论一书给监督学习下的定义是:当样例是输入/输出对给出时,称为监督学习,有关输入/输出函数关系的样例称为训练数据。而在无监督学习中,其数据不包含输出值,学习的任务是理解数据产生的过程。