人人都能看懂的机器学习!3个案例详解聚类、回归、分类算法

640?wx_fmt=gif

导读:机器是怎样学习的,都学到了什么?人类又是怎样教会机器学习的?本文通过案例给你讲清楚各类算法的原理和应用。


机器学习,一言以蔽之就是人类定义一定的计算机算法,让计算机根据输入的样本和一些人类的干预来总结和归纳其特征和特点,并用这些特征和特点和一定的学习目标形成映射关系,进而自动化地做出相应反应的过程。这个反应可能是做出相应的标记或判断,也可能是输出一段内容——图片、程序代码、文本、声音,而机器自己学到的内容我们可以描述为一个函数、一段程序、一组策略等相对复杂的关系描述。


算法这种东西在最初出现的时候是一种确定性的机器指令执行序列,也就是说,机器需要怎么做早就在程序一开始就设定好。虽然说在程序执行的过程中可以依靠有限的参数对程序执行过程所涉及的对象,执行次数,执行分支条件等进行设定,但是基本行为逻辑已经大抵确定。


在这个过程中,机器——计算机是非常被动的,它老老实实地严格执行程序员赋予它们的指令执行序列,没有任何“学习”的行为。这也没办法,因为最开始的图灵机模型在设计的时候就是期望计算机以这种方式。


机器学习从学习的种类来说,最常见的我们习惯分作两种,一种叫“无监督学习”(Unsupervised Learning),一种叫“有监督学习”(Supervised Learning) 。


所谓“无监督学习”,是指人们在获得训练的向量数据后在没有标签的情况下尝试找出其内部蕴含关系的一种挖掘工作,这个过程中使用者除了可能要设置一些必要的“超参数”(Hyper-parameter)以外不用对这些样本做任何的标记甚至是过程干预;“有监督学习”与此不同,每一个样本都有着明确的标签,最后我们只是要总结出这些训练样本向量与标签的映射关系。


所以这在这两种方式下,处理的逻辑有很大的区别,对于初学的朋友需要格外注意。


640?wx_fmt=jpeg



01 聚类


聚类——英文为Clustering,它就是我们说的典型的“无监督学习”的一种,就是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。


聚类这种行为我们不要觉得很神秘,也不要觉得这个东西是机器学习所独有的,恰恰相反,聚类的行为本源还是人自身。我们学习的所有的数据挖掘或者机器学习的算法或者思想的来源都是人类自己的思考方式,只不过我们把它教给机器让它们代劳,让他们成为我们肢体和能力的延伸而不是让他们替我们做创造和思考。


聚类是一种什么现象呢?我们人类在认识客观世界的过程中其实一直遇到容量性的问题,我们遇到的每一棵树、每一朵花、每一只昆虫、每一头动物、每一个人、每一栋建筑……每个个体之间其实都不同,有的差距还相当大。那么我们人在认知和记忆这些客观事物的过程中就会异常痛苦,因为量实在是大到无法承受的地步。


因此人类才会在“自底向上”的认识世界的过程中“偷懒”性地选择了归纳归类的方式,注意“偷懒”的这种方式是人类与生俱来的方法。


我们在小时候被父母用看图说话的方式来教咿呀学语的时候就有过类似的体会了,图片上画了一只猴子,于是我们就认识了,这是一只猴子;图片上画了一辆汽车,于是我们就了解了,这是一辆汽车……


等我们上街或者去动物园的时候再看,猴子也不是画上的猴子,而且众多猴子之间也长得各式各样,每个都不同,我们会把它们当成一个一个的新事物去认识吗?我们看汽车也同样,大小,颜色,样式,甚至是喇叭的声音也是形形色色五花八门,它们在我们眼里是一个个新的事物吗?不,它们都还是汽车。


这些事物之间确实有所不同,但是它们对我们的认知带来了很大的困扰吗?并没有。我们无论如何是不会把猴子和汽车当成一类事物去认知的,猴子彼此之间是不同,但是体格、毛发、行为举止,种种形态让我们认为这些不同种类的猴子都还是猴子一个大类的动物,别说是和汽车混为一谈,就是跟狗、马匹、熊这些脊椎动物我们也能轻易地分开。


640?wx_fmt=jpeg


人类天生具备这种归纳和总结的能力,能够把认知的事物相似地放到一起来作为一类事物做认识,它们之间可以有彼此的不同,但是有一个我们心里的“限度”,只要在这个限度内,特征稍有区别无关大碍,它们仍然还是这一类事物。


在这一类事物的内部,同样有这种现象,一部分个体之间比较相近,而另一部分个体之间比较相近,这两部分个体彼此之间我们人还是能够明显认知到差别,那么这个部分的事物又会在大类别的内部重新划分成两个不同的部分进行认知。比如汽车直观从样子上可以分成小轿车、卡车、面包车等种类,虫子们也被人轻易地从外型上区别为飞虫、爬虫、毛毛虫……


在没有人特意教给我们不同小种群的称谓与特性之前,我们自然具备的这种由我们主观的认知能力,以特征形态的相同或近似将它们划在一个概念下,特征形态的不同划在不同的概念下,这本身就是聚类的思维方式。


比较常用的聚类算法有K-Means、DBSCAN等几种,基本思路都是利用每个向量之间的“距离”——这里指的是空间中的欧氏距离或者曼哈顿距离。从远近来进行彼此是否更适于从属与同一类别来做的分类判断。


假如有三个1维样本,一个180,一个179,一个150,这三个向量如果要分成两类的话,应该是180和179这两个分在一个类别,150单一个类别。原因就是180和179两个的距离为1,而180和179距离150分别为30和29个单位——非常远,就是从肉眼感官上来看也是这样。用机器来做学习的话,它也能够通过算法自动去感知到这些向量之间的距离,然后将它们彼此之间那些靠得近的分在一起以区别于其他类簇。


640?wx_fmt=png


在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此“相近”的向量分在一个群组中。然后下一步,人们通常更有针对性地去研究每一组聚在一起的对象所拥有的共性以及那些远离各个群组的孤立点——这种孤立点研究在刑侦、特殊疾病排查等方面都有应用。


在这个过程中,从获得到具体的样本向量,到得出聚类结果,人们是不用进行干预的&#

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值