日拱一卒,《机器学习实战》,机器学习有哪些分类?

2022-09-21 09:53:15 浏览数 (1)

作者 | 梁唐

出品 | 公众号:Coder梁(ID:Coder_LT)

大家好,日拱一卒,我是梁唐。

今天我们继续来聊聊《机器学习实战》,上一篇文章我们聊了机器学习兴起的原因,以及简要的工作原理,今天我们来聊聊机器学习算法的分类,看看从原理角度以及从应用的角度可以大致怎样划分。

有监督/无监督

从原理上来说,机器学习可以大致分成两个类别,有监督学习和无监督学习。

有监督模型

其实类别不止这俩,除了它们还有半监督学习和强化学习。相对来说半监督学习和强化学习比较小众,并且原理上也离不开有监督和无监督的范畴。所以我们先忽略,后续涉及到的时候再详细了解。

要搞清楚这两个分类的区别,首先要从“监督”一词入手。这里的监督是什么意思呢?

其实很好理解, 我们可以认为是答案的意思,不过在机器学习领域,我们有专业的术语,叫做label。label的意思是模型学习的目标,有监督就是有明确的学习目标,无监督就是没有目标。

还是用垃圾邮件举例,是否是垃圾邮件就是模型学习的目标。一般来说用0和1表示,0表示正常邮件,1表示垃圾邮件。我们希望正常邮件模型能给出0,垃圾邮件模型给出1。

但这里有一个问题,就是模型学习的时候,它也是需要label的,这样它才有一个学习的目标。而通常情况下我们搜集到的数据是没有label的,这个也很容易想明白。我们用爬虫或者其它方法可以轻易爬取到一大堆邮件,但是这其中哪些是垃圾邮件则需要人工一一来标注出来,这样模型才有一个学习的目标。

无监督模型

相比之下,无监督模型则没有数据label的要求,它是通过数据本身的一些特性来运作的。

比如Kmeans聚类算法,是根据坐标点在空间当中的距离来进行聚类的,算法通过多次迭代将距离较近的点聚集到一个类簇当中,整个过程不依赖任何label。

既然无监督学习模型没有数据要求,那么我们为什么不都使用无监督模型呢?

那当然也是有原因的,一个是受限于使用场景,无监督模型只在部分场景当中会有很好的效果,并不适用于所有问题。其次是即便是可以用,有监督模型的效果由于目标明确,通常要好得多。所以说一切都是有代价的,一个效果良好的模型背后离不开大量的数据搜集、处理和标记工作。

这就是为什么对于很多问题而言,相比于设计模型和训练模型,搜集精准的数据才是算法效果的瓶颈。特别是很多问题都以来人工数据标记,这就更加增大了获得一份优秀样本的成本。这也是为什么模型原理都是公开的,但大厂的模型效果要远远优于小厂的原因。

分类模型/回归模型/聚类模型

看完了机器学习的原理,我们再来看看它的功能。

根据机器学习模型的功能不同,我们也可以将它分成三个类别。分别是分类模型、回归模型和聚类模型。

分类模型

首先是分类模型,分类模型很好理解,意思就是将一条样本进行分类。最常见也是使用最广泛的是二分类问题,也叫01分类问题。比如刚才提到的垃圾邮件识别、风险控制等等。我们每天都用的手机人脸解锁本质上其实也是二分类,0表示解锁失败,1表示解锁成功。

虽然两个分类看起来少,但大多数场景下都能胜任。再比如电商中的搜索、推荐、广告系统,背后的模型本质上也是二分类。只不过我们不是直接使用的模型的预测类别,而是用它的打分。

要讲清楚这个问题会稍微涉及一点模型的原理,模型在分类的时候,得到的并不是分类本身,而是一个概率。即当前样本属于类别1的概率,我们假设是

p

的话,由于是二分类问题,所以属于另一个类别的概率就是

1-p

比如推荐系统当中,模型给出的结果其实是用户会给出点击的概率。这个概率越大说明用户点击的可能性越大,那么我们就可以根据这个可能性来进行排序,把点击概率大的商品排在前面。虽然对于模型来说,它依然做的是二分类,但是转化到实际场景当中,则变成了一个排序的功能。

有二分类自然也有多分类,比如手写识别、人脸识别等等。

回归模型

分类模型得到的结果是一个类别,与之对应的就是回归模型,它得到的结果是一个浮点数。

相关的模型在工业界的应用要小众一些,不如分类模型应用广泛。但也有一些适用场景,比如说房价预测、股价预测等等。

从模型的原理上来说,回归模型和分类模型的原理是非常相似的,这两者之间互相转化也很方便。比如我们可以将回归模型的结果做分段,那么就可以转化成类别。

聚类模型

最后是聚类模型,一般来说聚类模型都是无监督模型。

它的用途顾名思义就是做聚类,将一些样本按照一些特定的相似度进行聚集,最后根据聚集的情况设置类别。

比如在电商场景当中,商品的类别往往是商家赋予的,并不能真实地反应在用户侧的偏好情况。比如说眼镜,在眼镜这个类别下还可以继续细分,比如黑框眼镜、细框眼镜、板材眼镜、金属边框眼镜等等。

电商公司拥有的商品数量通常非常巨大,不可能对每一个商品都标记到这么精细。这个时候比较好的做法就是使用聚类算法来对这些商品进行聚集,根据聚集的结果标记类别。

当然算法的效果肯定不如人工标记那么准确,但胜在成本较低。

生成模型/判别模型

最后是生成模型和判别模型的划分,这是从建模思路上的区别,对应两种不同的建模思路。

判别模型通常只对问题本身建模,是一种基于后验概率的建模。举个例子,比如我们要预测一只羊是山羊还是绵羊。判别模型的思路是直接针对问题建模,我们输入羊的各种特征,如毛发、颜色、角的形状等等,最后由模型给出它是山羊和绵羊的概率。

相比于判别模型,生成模型会学习先验分布。比如在这个问题当中,我们可能会考虑在当地碰见山羊和绵羊的背景概率。再通过建模计算出在当前这只羊的毛发、颜色和角的形状的特征下,它分别是山羊和绵羊的概率。最后我们计算联合分布,分别得到这只羊是山羊和绵羊的概率,其中概率较大的就是它最有可能的分类。

我们对比一下会发现,在判别模型的思路当中,我们认为羊的种类只和羊本身的特征有关。而在生成模型的思路当中,我们考虑了羊本身是山羊和绵羊的先验概率。

根据我个人的学习经验,这两种建模思路源于统计学的贝叶斯学派和频率学派,后续我们介绍到相关的算法时还会给大家详细介绍。

如果感兴趣的话可以花点时间去研究一下,非常有意思。因为当年机器学习在单独成为一个研究领域之前,一直归于统计学的范畴下。所以很多算法和思路都和统计学脱不了干系,虽然随着深度学习的兴起,统计学的色彩越来越弱,但很多地方和细节还是值得我们深入研究的。

除了上面介绍的三种分类之外,还有在线学习和批量学习、基于实例的学习和基于模型的学习等分类。但一般来说,常用的划分方法就上述介绍的三种。

关于本文的内容,《机器学习实战》一书当中有丰富的图例帮助理解,有需要的同学可以阅读参考。在下一篇文章当中我们将来聊一聊机器学习应用当中可能遇到的问题以及对应的解决策略。

喜欢本文的话不要忘记三连~

0 人点赞