返回信息流假定一个二分类问题,给定N个样本(其groundtruth全部已知,但为了测试,将其部分或全部隐藏),目标是要把每个样本分到正确的类别中。
对于聚类:聚出来的两类由人为确定其标签,使得其分类准确度最大。
对于分类:用10fold cross-validation
我想问的是,下面结论是否成立:
只要距离度量函数足够有效,聚类总能比分类具有更高或相同的准确度。(因为可以认为分类就是要学类似一个距离度量函数)
说明:请不要纠结于聚类与分类的setting的不同,上面已经把它们统一了(类别数为2,聚类无标签,但是人最后来打个标签),这样聚类分类就都是在解决同一个问题了。
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #9669同步于 2012/11/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
【聚类与分类】
chentingpc
2012/11/13镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
不成立。
常见聚类算法隐含了一个最基本的假设:样本类别与其临近的样本类别相似。不论是多有效的距离函数都基于该假设。
这个假设不成立的时候,聚类算法变得不到好结果。
比如分类决策树能解决的经典的“根据天气判断是否去打网球”的例子(见机器学习教材),聚类的效果要远远低于分类效果。因为不论有多少维feature,不论有多少feature值是相同的(距离分量为0),只要有一个关键feature值不同,是否去打球很可能要发生本质变化。如同样是“微风、潮湿、温度20度”,但一天是阴天,一天是暴雨,很显然暴雨已经决定了无法去打网球。这和它附近的其它样本的距离没有太大关系。
OK。这样,假设度量函数足够好的意思就是:如果输入样本:X = “微风、潮湿、温度20度,阴天”,Y = “微风、潮湿、温度20度,阴天”那么f(x,y)是一个很大的值。为啥不能聚类效果不好呢?
【 在 simonsu 的大作中提到: 】
: 不成立。
: 常见聚类算法隐含了一个最基本的假设:样本类别与其临近的样本类别相似。不论是多有效的距离函数都基于该假设。
: 这个假设不成立的时候,聚类算法变得不到好结果。
: ...................
这...好吧,这样说的话,倒是可以。本身聚类和分类也没有优劣之分,只要聚类的预知信息“足够”多,分类能达到的效果聚类也能达到。
不过我觉得这种假设有些脱离聚类的本意了,实际指导意义不大。就打网球的例子来说,X,Y有三个feature相同,1个feature不同,f(x,y)却是较大值,反过来三个不同一个相同,f(x,y)也可以取较小值,跟人的直观感受还是差别挺大的。真实情况下恐怕LZ也不会这么用吧?
而且打网球只是一个简单的例子,真实的决策模型往往几十个if连一起。f(x,y)要把这种非线性、非凸的划分用距离大小反馈出来,其难度恐怕比用分类模型学一遍还要高很多。毕竟这些知识是分类努力想学的,而“足够有效的距离函数”假设却要求这些在最初就作为已知常识。
【 在 chentingpc 的大作中提到: 】
: OK。这样,假设度量函数足够好的意思就是:如果输入样本:X = “微风、潮湿、温度20度,阴天”,Y = “微风、潮湿、温度20度,阴天”那么f(x,y)是一个很大的值。为啥不能聚类效果不好呢?
:
所以,我觉得分类分类训练的时候是在学一个距离度量的函数。
【 在 simonsu 的大作中提到: 】
: 这...好吧,这样说的话,倒是可以。本身聚类和分类也没有优劣之分,只要聚类的预知信息“足够”多,分类能达到的效果聚类也能达到。
: 不过我觉得这种假设有些脱离聚类的本意了,实际指导意义不大。就打网球的例子来说,X,Y有三个feature相同,1个feature不同,f(x,y)却是较大值,反过来三个不同一个相同,f(x,y)也可以取较小值,跟人的直观感受还是差别挺大的。真实情况下恐怕LZ也不会这么用吧?
: 而且打网球只是一个简单的例子,真实的决策模型往往几十个if连一起。f(x,y)要把这种非线性、非凸的划分用距离大小反馈出来,其难度恐怕比用分类模型学一遍还要高很多。毕竟这些知识是分类努力想学的,而“足够有效的距离函数”假设却要求这些在最初就作为已知常识。
: ...................
不完全赞同。比如SVM学最大分隔面,你这句话就挺合适。但用到决策树上,我觉得就不合适了。
本质上SVM的基本假设和k-means在“同类样本距离较近”的假设上是一致的。而决策树这种东西,我一直觉得它什么都没假设。这样看也许更清晰:如果数据足够并不做规模限制,决策树就直接退化为一个枚举所有feature组合的记忆模型,这个模型就很难用距离度量函数来描述。
【 在 chentingpc 的大作中提到: 】
: 所以,我觉得分类分类训练的时候是在学一个距离度量的函数。
:
能不能这么想,假设一个model,无法区分点与点之间的距离,那它如何能够将一个点正确分类;讲一个点分到一个类别不就意味着认为它与这个类别中的其他点的距离更近?
【 在 simonsu 的大作中提到: 】
: 不完全赞同。比如SVM学最大分隔面,你这句话就挺合适。但用到决策树上,我觉得就不合适了。
: 本质上SVM的基本假设和k-means在“同类样本距离较近”的假设上是一致的。而决策树这种东西,我一直觉得它什么都没假设。这样看也许更清晰:如果数据足够并不做规模限制,决策树就直接退化为一个枚举所有feature组合的记忆模型,这个模型就很难用距离度量函数来描述。
:
不明白为什么说分类是学习一个距离度量函数呢?而且就我现在进行的这个二维分类,决策树或者SVM分类的效果比聚类的效果好太多了,但是这可能跟我的样本有关系。
我想我大概明白你的意思了。
这个牵扯到怎么定义“距离”了。距离是指的feature距离,还是target距离?或者说是起因的距离还是结果的距离。就像两名感冒患者,一个是在俄罗斯干活太累冻感冒的,一个是在夏威夷过于懒散热感冒的。这两个样本的距离到底是近还是远?按照LZ的思路他们的距离是很近的,因为他们都是“会患感冒的人”,而分类的目的就是找到这个“距离”--这本质上是target的距离。硬说起来也能说得通,这应该是为什么LZ会得到这个结论,其实我差点也给绕了进去。
但我个人认为聚类用的距离应该是feature的距离,而不是target的距离。"足够有效的距离函数"应该是指“足够有效衡量feature距离的函数”,而不是“足够有效衡量target距离的函数”。否则的话就会出现鸡生鸡,蛋生蛋的搞笑逻辑了。想一想吧:
聚类的思想来源在于“物以类聚,人以群分”--相似的东西,行为往往相似--feature相似的样本,target往往相近。
反过来就有些无趣了,target相近的样本,target往往相同--行为相似的人,行为是一样的--聚在一块的人,他们在一个地方。 --这不是说了等于没说吗?
这两人一个在北极,一个在赤道,他们距离是很远的。但如果你在已经知道他们都会感冒的基础上,说他们距离很近,然后在用这个距离去聚出这两个人是会感冒的一类人,不是很搞笑的一件事么?
【 在 chentingpc 的大作中提到: 】
: 能不能这么想,假设一个model,无法区分点与点之间的距离,那它如何能够将一个点正确分类;讲一个点分到一个类别不就意味着认为它与这个类别中的其他点的距离更近?
:
记得这好像是机器学习那本书上关于决策树的例子。
北邮的又一个杜军平老师, 用这本书, 一个学期讲了不到2章, 太牛逼了。。
知识完全不更新,永远停留在她自己的80年代。
【 在 chentingpc 的大作中提到: 】
: OK。这样,假设度量函数足够好的意思就是:如果输入样本:X = “微风、潮湿、温度20度,阴天”,Y = “微风、潮湿、温度20度,阴天”那么f(x,y)是一个很大的值。为啥不能聚类效果不好呢?
: