聚类(序)——监督学习与无监督学习

原创 2012年06月11日 22:29:34
聚类系列:

--------------------------------

         机器学习的常用方法,主要分为有监督学习(supervised learning)和无监督学习(unsupervised learning)。监督学习,就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。在人对事物的认识中,我们从孩子开始就被大人们教授这是鸟啊、那是猪啊、那是房子啊,等等。我们所见到的景物就是输入数据,而大人们对这些景物的判断结果(是房子还是鸟啊)就是相应的输出。当我们见识多了以后,脑子里就慢慢地得到了一些泛化的模型,这就是训练得到的那个(或者那些)函数,从而不需要大人在旁边指点的时候,我们也能分辨的出来哪些是房子,哪些是鸟。监督学习里典型的例子就是KNN、SVM。无监督学习(也有人叫非监督学习,反正都差不多)则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。

         那么,什么时候应该采用监督学习,什么时候应该采用非监督学习呢?我也是从一次面试的过程中被问到这个问题以后才开始认真地考虑答案。一种非常简单的回答就是从定义入手,如果我们在分类的过程中有训练样本(training data),则可以考虑用监督学习的方法;如果没有训练样本,则不可能用监督学习的方法。但是事实上,我们在针对一个现实问题进行解答的过程中,即使我们没有现成的训练样本,我们也能够凭借自己的双眼,从待分类的数据中人工标注一些样本,并把他们作为训练样本,这样的话就可以把条件改善,用监督学习的方法来做。当然不得不说的是有时候数据表达的会非常隐蔽,也就是说我们手头的信息不是抽象的形式,而是具体的一大堆数字,这样我们很难凭借人本身对它们简单地进行分类。这个说的好像有点不大明白,举个例子说就是在bag-of-words模型的时候,我们利用k-means的方法聚类从而对数据投影,这时候用k-means就是因为我们当前到手的只有一大堆数据,而且是很高维的,当我们想把他们分为50个类的时候,我们已经无力将每个数据标记说这个数应该是哪个类,那个数又应该是哪个类了。所以说遇到这种情况也只有无监督学习能够帮助我们了。那么这么说来,能不能再深入地问下去,如果有训练样本(或者说如果我们可以获得到一些训练数据的话),监督学习就会比无监督学习更合适呢?(照我们单纯地想,有高人教总比自己领悟来的准,来的快吧!)我觉得一般来说,是这样的,但是这要具体看看训练数据的获取。本人在最近课题的研究中,手动标注了大量的训练样本(当然这些样本基本准确了),而且把样本画在特征空间中发现线性可分性非常好,只是在分类面附近总有一些混淆的数据样本,从而用线性分类器进行分类之后这样样本会被误判。然而,如果用混合高斯模型(GMM)来分的话,这些易混淆的点被正确分类的更多了。对这个现象的一个解释,就是不管是训练样本,还是待聚类的数据,并不是所有数据都是相互独立同分布的。换句话说,数据与数据的分布之间存在联系。在我阅读监督学习的大量材料中,大家都没有对训练数据的这一假设(独立同分布)进行说明,直到我阅读到一本书的提示后才恍然大悟。对于不同的场景,正负样本的分布如果会存在偏移(可能是大的偏移,也可能偏移比较小),这样的话用监督学习的效果可能就不如用非监督学习了。

 

-----------------------

jiang1st2010

原文地址:http://blog.csdn.net/jiang1st2010/article/details/7654120

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

聚类(2)——层次聚类 Hierarchical Clustering

聚类系列: 聚类(序)----监督学习与无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchical Clu...

聚类算法——python实现层次聚类(AGNES)

算法思想层次聚类是在不同层次上对数据进行划分,从而形成树状的聚类结构。 AGNES算法是自底向上的层次聚类算法。开始时将数据集中的每个样本初始化为一个簇,然后找到距离最近的两个簇,将他们合并,不断重...

聚类(1)——混合高斯模型 Gaussian Mixture Model

聚类系列: 聚类(序)----监督学习与无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchi...

python中做层次聚类,使用scipy.cluster.hierarchy.fclusterdata方法

python机器学习包里面的cluster提供了很多聚类算法,其中ward_tree实现了凝聚层次聚类算法。 但是没有看明白ward_tree的返回值代表了什么含义,遂决定寻找别的实现方式。 经过...

有监督学习和无监督学习的区别

机器学习的常用方法,主要分为有监督学习(supervised learning)和无监督学习(unsupervised learning)。监督学习,就是人们常说的分类,通过已有的训练样本(即已知数据...

无监督和有监督算法的区别

无监督和有监督的理解方法有很多,主要可以从以下几方面来理解: 1、无监督与监督学习的区别在于一个无教学值,一个有教学值。但是,个人认为他们的区别在于无监督学习一般是采用聚簇等算法来分类不同样本。...

logistic回归详解(二):损失函数(cost function)详解

有监督学习机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。 既然是有监督学习,训练集自然可以用如下方式表述: {(x1,y1),(x2,y2)...

无监督和有监督算法的区别

监督学习(supervised learning):通过已有的训练样本(即已知数据以及其对应的输出)来训练,从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果,对输出结果进行简...

logistic回归详解一:为什么要使用logistic函数

从线性分类器谈起  给定一些数据集合,他们分别属于两个不同的类别。例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本。现在我们要找到一个线性分类器,将这些...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)