机器学习常用算法的分类

大家新年好,在经历过新年假期以后,现在让我们来看看机器学习常用的算法的分类。

在以前我简书的文章中我们可以发现机器学习是一个及其庞大的门类,里面包括各种五花八门的算法,然后呢我们可以将这些算法进行分类,并且这些分类的方法也不仅有一种,那现在让我们来一探究竟。

首先我们先来看看对于算法的一个分类方法:

第一个算法分类,我们可以将机器学习的算法分为有监督学习,无监督学习,半监督学习。那么什么是有监督学习,无监督学习,半监督学习呢,其实这个在我之前的文章中对于这一方面有一定的概述,在这里就简单的说几句。其实我们在做机器学习,做一个算法,实际上就是对一个样本数据进行一个训练,不管你这个模型是一个分类模型或者是一个预测模型,总之,我们最后都是要建立一个模型,最后来通过这个模型来判断X和Y之间的关系。那所谓的有监督学习,实际上就是在训练数据中明确的给出了这个Y是个什么值,比如说我们是一个分类算法,如果使用有监督学习,在我们的训练数据中已经明确的给出了这个数据属于那样的类别,这样的话可以比喻成训练数据已经被提前打好了标签。就好比我们识别垃圾邮件,我们先会给系统一堆训练数据,这批数据呢就是先给系统一堆垃圾邮件,这个邮件已经被我们事先打好标签是垃圾邮件还是不是垃圾邮件,那这样我们对于这个数据进行分析时,实际上我们就已经知道这个Y类就是垃圾邮件类,然后我们就根据这个已知的Y去训练模型的参数。针对上述的一些数据的训练方法,我们就统称为有监督学习。典型的有监督学习算法就包括分类算法和回归算法。因为不管是分类算法还是回归算法,我们在训练集数据中已经明确的给出了那个分类Y了。对于分类,这个Y可能就是一个类别,对于回归,这个Y可能就是个数据。我们最后的结果应该尽量的接近我们所给的Y才可以。

那跟有监督学习相对的就是无监督学习,简单点概述就是在无监督学习中,我们是没有Y这个分类的,换句话说这个Y是什么样子我们是不知道的。这个最常见的算法就是聚类,就是在之前文章中提到的电信用户分类的那种算法,毕竟我们将用户分为几类我们自己也是不知道的,所以就可以用无监督学习用机器把用户进行分类。

最后一类呢就是半监督学习,也就是所谓的强化学习。其实这个半监督学习挺好理解,就跟我们家里的宝宝刚开始学走路一样。刚开始走路的时候宝宝肯定会磕磕绊绊,但是走的次数多了,就可以走的很平很稳,甚至可以加快速度小跑起来。那所谓的半监督学习其实和这个例子类似,在其算法中可能会有一些Y值,刚开始你的训练模型可能训练的结果并不好,但是可能随着你的训练样本越多,你的模型结果会越好。

好,上述就是第一类的算法,这个算法就根据你的数据中有没有那个Y来把算法分成三类。那现在让我们看第二类算法分类:

第二种算法的分类实际上是根据我们要实际解决的问题来进行分类的,比如说分类和回归,我们要预测一个Y值,聚类,就是要针对一个你要具体解决的类型来分类,最后一个,标注,标注其实在某种程度上有点类似于分类,但是和分类又有一点不同。那什么是标注呢?

现在我写出一段文本:

这个文本其实是可以标注成一个一个词的

———————————————————————————————

我正在努力的学习机器学习

———————————————————————————————

比如说我现在想看看这个句子里那个词是名词,那个词是形容词,哪个是动词,这样实际上就是给句子里的每一个词语进行一个标签,然后拆分出来。

上述的就是第二种算法分类,他们主要都是根据这个要解决的实际问题来进行分类的。

现在我们来看看第三类算法分类:

生成模型和判别模型

这个第三类是一个非常重要的算法,因为这种算法已经直接深入到你的算法的本质了,所以第三类算法是一个非常重要的内容,无论如何也要研究出来,并且在面试的时候很有可能会考你,但是并不会直接问你概念,什么是生成模型什么是判别模型之类的,但是他可能会问你生成模型算法和其他的算法之间有什么区别?比如逻辑回归算法和朴素贝叶斯算法有什么本质的区别?这样的问题你要想找出到底有什么区别,说实话就是考你的生成模型和判别模型有什么本质的区别。所以我们说第三类算法是比较重要的,其实前俩种也很重要,只不过是前两种的算法比较简单。比如说你去面试,面试的那伙人通常默认你会知道这些。第三类其实就属于比较高阶的知识了。但是对于这个入门的文章,如果介绍生成模型和判别模型之间有什么区别,我个人认为还是有点早。因为当中还有很多概念还是比较难以理解的,所以我就简单的提一下,不深入概述。

那我们先看下这个判别模型吧。这个生成模型和判别模型从基本上说都是用来判别这个分类问题的。就是把一件东西分为ABC这样几个类这样的。

这个判别模型呢就类似于直接给你一个函数,然后你把你的数据丢给这个函数,函数就会返回一个结果,函数就会告诉你属于哪一类。判别模型直接指向你的目的。

这个生成模型呢实际上有点类似于法庭上的陪审团,(那判别模型就是属于大法官了),他不会直接告诉你你的数据属于哪一类,只是会告诉你你的数据属于这个类的概率会是多大,比如说我们现在有ABC三类,生成模型会告诉你你的A类概率会有多大,你的B类概率会有多大,你的C类概率会有多大。概率最大的就有很大的可能属于这一类。但是概率小也有可能属于这一类。

那我们从上述可以看出,判别模型和生成模型给出的结果是不一样的,判别模型是非一即二,生成模型是模棱两可,但是他们两个更重要的区别是在他们训练的思想上是不一样的,有时间我们详细概述。

这就是这篇文章所包含的几种算法,在下一篇文章我将继续讲述机器学习的算法,也请大家都多多指教,我也将继续努力,努力学习更多的知识。

    原文作者:云时之间
    原文地址: https://www.jianshu.com/p/3310677cd25b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞