#定义#
现实生活中常常会有这样的问题:缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
无监督和有监督的区别显而易见,那就是标签。
#一句话概括#
区分有监督和无监督,就是看是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
因此,如果标签被作为模型的输入,则认为是有监督;若标签只作为验证所用(为了得出TPR,FPR,FNR等指标),而没有作为输入,则属于无监督。
#从定义的角度阐述无监督学习的含义#
我们首先看什么是学习(learning)?一个成语就可概括:举一反三。此处以高考为例,高考的题目在上考场前我们未必做过,但在高中三年我们做过很多很多题目,懂解题方法,因此考场上面对陌生问题也可以算出答案。机器学习的思路也类似:我们能不能利用一些训练数据(已经做过的题),使机器能够利用它们(解题方法)分析未知数据(高考的题目)?
最简单也最普遍的一类机器学习算法就是分类(classification)。对于分类,输入的训练数据有特征(feature),有标签(label)。所谓的学习,其本质就是找到特征和标签间的关系(mapping)。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签。
在上述的分类过程中,如果所有训练数据都有标签,则为有监督学习(supervised
learning)。如果数据没有标签,显然就是无监督学习(unsupervisedlearning)了,也即聚类(clustering)。
目前分类算法的效果还是不错的,但相对来讲,聚类算法就有些惨不忍睹了。确实,无监督学习本身的特点使其难以得到如分类一样近乎完美的结果。这也正如我们在高中做题,答案(标签)是非常重要的,假设两个完全相同的人进入高中,一个正常学习,另一人做的所有题目都没有答案,那么想必第一个人高考会发挥更好,第二个人会发疯。
#从集合的角度阐述标签对无监督学习的作用#
同样,我们先从机器学习常用的三个集合定义开始解释。这里,我们采用Ripley, B.D(1996)在他的经典专著Pattern Recognition andNeural Networks中给出的这三个词的定义。为了不产生歧义,此处采用双语定义(不得不说,有些定义被翻译成中文后有点面目全非)
Trainingset: A set of examples used for learning, which is to fit the parameters [i.e.,weights] of the classifier.
训练集:学习样本数据集,通过匹配一些参数来建立一个分类器。建立一种分类的方式,主要是用来训练模型的。
Validationset: A set of examples used to tune the parameters [i.e., architecture, notweights] of a classifier, for example to choose the number of hidden units in aneural network.
验证集:对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。
Testset: A set of examples used only to assess the performance [generalization] ofa fully specified classifier.
测试集:主要是测试训练好的模型的分辨能力(识别率等)
显然,training set是用来训练模型或确定模型参数的,如ANN中权值等; validation set是用来做模型选择(model selection),即做模型的最终优化及确定的,如ANN的结构;而 test set则纯粹是为了测试已经训练好的模型的推广能力。当然,Test set这并不能保证模型的正确性,他只是说相似的数据用此模型会得出相似的结果。
那么,为何要这么划分?Ripley也谈到了这个问题:
1.The error rate estimate of the final model on validation data will be biased(smaller than the true error rate) since the validation set is used to selectthe final model.
2.After assessing the final model with the test set, YOU MUST NOT tune the modelany further.
简而言之,为了防止过度拟合(over fit)。如果我们把所有数据都用来训练模型的话,建立的模型自然是最契合这些数据的,测试表现也好。但换了其它数据集测试这个模型效果可能就没那么好了。就好像你给班上同学做校服,大家穿着都合适你就觉得按这样做就对了,那给别的班同学穿呢?不合适的概率会高吧。总而言之训练集和测试集相同的话,模型评估结果可能比实际要好。
对于有监督学习,由于标签作为输入端,其作用于训练集(Test set)上;对于无监督习,标签主要作用于验证集(Validation set)上。
------我是分割线------
至此,基础知识介绍完毕!下面我们来回答标题的问题:标签对无监督算法有什么用呢?
1. 标签用来评价无监督学习,也就是来判断无监督学习的好坏。其常用指标有三个:检测率(Detection
rate),召回率(Recall)和准确率(precision)。你的模型到底好不好?来,跟我们现在的标签比对一下,看你和我的交集(overlap)有多少,看你比我多抓了多少坏人!
2. 标签用来调优无监督模型,也就是标签作用于验证集上。任何一种机器学习算法都包含参数,调参是模型调优的主要工作。有监督的调参主要在training set上进行,例如ANN的权值;无监督的调参则在trainingset 和validation set都有涉及(调优主要在后者上进行)。换言之,有监督的标签是用来输入训练模型的,无监督的模型是研究人员用来看(验证)的。
#从行业的角度阐述无监督的应用#
无监督的实质就是聚类。聚出来的是好人群组还是坏人群组?就需要标签来判定。那么,如果没有标签怎么办?那就需要业务人员的介入,由业务人员来确定,这个群组是坏人还是好人。以下以互联网和金融行业为例,阐述无监督的应用。
我曾经写过一个系列文章——《互联网刷单,忽悠了谁?又成全了谁?》,其中从五个方面介绍了互联网刷单的方式方法。由于现在互联网行业存在着很多团伙类欺诈,采用无监督算法聚类是一种十分有效的手段,尤其是DataVisor自主开发的无监督算法,已经被国内外众多一线互联网产品所用,涉及的场景有:大规模注册,活动运营监控,垃圾邮件/信息,账号盗用等等,部分场景的输出准确率可以达到99%(更多详情可访问www.datavisor.com)。
通过无监督算法在互联网行业聚类出的团伙,即使没有标签,通常只要运营人员稍加判断,就能识别出好坏。当然,如果有标签,模型的结果会更加优秀。
金融行业的情况比互联网复杂得多,有存取款、洗钱、信用卡盗刷、骗贷骗保和转账等各种开户行为和交易行为。以信用卡开户举例,通过无监督算法聚类出的一些看似强特征(Strong feature)的团伙,可能在业务逻辑上可解释。例如,一个销售推荐的开卡人,一天内的开卡地点遍布全国各地。看似一个人一天内不可能跑遍祖国的大江南北,但实际上,此销售可能是以电话(cold call)的方式进行的信用卡推荐,因此业务角度判断属于正常行为。金融行业的此类疑似团伙欺诈,通常需要用标签+业务逻辑双管齐下的方式来判断,从而对无监督算法作调优。此处标签同样作用于验证集,类似于上文提到的高三学生的练习题答案,不同的是,答案不作为模型输入。如果没有标签,则需要业务人员解释,类似于高三练习题依然没有答案,但是会有老师给你批改试卷判断对错。DataVisor是金融+无监督的先驱者,已服务了国内外多家银行和机构,对信用卡开户、交易以及反洗钱等均颇有研究。
至此,标签对无监督的作用以及标签在无监督算法应用场景的解释都以阐述完毕。如果各位看官还有问题,可浏览DataVisor官网www.datavisor.com或发邮件到[email protected]寻求解答。
感谢作者王丰:https://www.zhttps://www.zhihu.com/question/23194489/answer/25028661
感谢博主北岛知寒:https://www.https://www.cnblogs.com/crazyacking/p/6737955.html