机器学习系列之分类

随着计算能力、存储空间、网络的高速发展,人类所积累的数据量正在快速增长,而分类在数据挖掘中是一项非常重要的任务,目前在商业上应用最多,分类算法是解决分类问题的方法,是机器学习中一个重要的研究领域。为了让大家进一步了解机器学习的分类算法,飞马网于3月29日晚,邀请到现就职于国内知名互联网公司的中山大学博士—李梦婷,向大家分享有关分类算法相关领域的内容。

lADPBbCc1ZHkofXNAxrNBGI_1122_794.jpg 

以下是这次线上直播的分享实录:

一.What(带大家从根本上了解什么是分类)

1.什么是分类:

大家对分类其实并不陌生,在我们的现实生活中,经常会碰到这样的场景:

“这个人是男的还是女的?”,我们通常会在脑袋里考虑非常多的因素,比如“头发长短、身材曲线、穿衣风格......”,在大脑中,我们会结合观察到的多种因素去判断男女,这就是一个分类问题。

又或者大家比较关心的一个话题—房价,和朋友聊天时,我们会猜测“房价会涨还是会降呢?”,这其实也是一个分类问题。

上面所说的这两个例子,只有两个选项,所以这属于二分类问题。

除此之外还有非常多的分类场景,比如大家关心的年终奖,分为多种级别(S、A、B、C)。平常我们在看新闻时,每篇文章都会对应不同的类别(娱乐类、体育类、财经类)。而这两个例子有多种选项,我们把这一类问题叫做多分类问题,多分类问题又分为互斥多分类问题(年终奖:只能评一个等级)和非互斥多分类问题(文章类别:一篇文章可以同时归属于多个类别)。

2.分类的流程:

分类的一般流程是怎样的呢?我们一起来看下图:

幻灯片4.jpg 

主要包括三个部分:

第一层是最左边的x序列,代表我们观察到的一些样本信息。中间这一层是分类器,就好像我们的大脑,它会根据已有经验,把观察到的信息进行加工,得到一个特定类别,也就是我们的第三层y,代表预测的类别结果。

这里最关键的部分就是训练分类器。我们分类问题的解决,在于训练出一个好的分类器。

这一部分就是我们对分类问题的简单介绍。

二.Why(分类问题的应用场景)

从刚才的例子中,我们了解到,分类在我们的现实生活中很常见,分类是一项最有应用价值的技术之一,它的应用遍及了社会中的各个领域,下面这张图描绘的是目前比较常见的有分类问题的场景。

幻灯片5.jpg 

1.用户画像:

也就是对一个人进行类别抽象。例如,我们会根据一个人的行为去判断这个人是男是女、是老人是小孩、以及他(她)的兴趣偏好,通过各个维度的信息来刻画用户。在构造用户画像的时候,其中非常多的地方用到了分类算法,比如性别、年龄、兴趣偏好等。

2.征信评估:

在一些金融体系里,我们会根据一个人的银行卡记录或信用卡还贷记录等,去评估这个人的征信度,看这个人是属于高风险用户还是低风险用户。

3.推荐系统:

我们会预测一个人对某个东西“喜欢”或“不喜欢”,从而进行推荐。在预测时我们会根据这个人的情绪等因素,从而构造了我们现有的推荐体系。

4.趋势预测:

像房价预测、商品出货量预测、价格走势预测等等。

5.图像分类:

图像是人工智能一个非常重要的领域。比如给一张照片,我们需要一个分类器,看出照片里到底是一只猫还是一只狗。再比如我们在做新闻推荐时,会把图像进行分类,看它是不是符合政策要求。

6.文本分类:

比如文章的类别划分,有娱乐类、体育类、财经类等等。

除以上这些,还有很多其它的应用场景。

三.How(常用的分类算法,如何训练分类模型)

今天主要介绍五种常见的分类算法:K近邻、朴素贝叶斯、决策树、Logistic回归、支持向量机。

幻灯片6.jpg 

(1)K近邻:

所谓的K近邻,就是依据最邻近的一个或者几个样本的类别,来决定待分类的样本所属的类别。它是最简单的一个算法模型,我们一起来看下图:

幻灯片7.jpg 

图中有两类样本,一类是红色的三角,另一类是蓝色的方块。问题是绿色的圆点到底属于哪一类?根据K近邻的方法,我们先看离绿色圆点最近的样本,有两个红色三角样本和一个蓝色方块样本,根据K近邻思想,我们可以推出绿色圆点样本可以归为红色三角这一类。

其实在自然语言处理中,有一个非常典型的例子可以说明K近邻。比如自然语言处理中最底层对word进行向量化处理时,也就是常说的“what embedding”,我们会把一个词映射到一个高维的语义空间中,在这个语义空间里,不同词之间的距离能够表示它们语义之间的相关性。在进行词的分类时,我们可以根据它周围最近几个词的分类,来确定当前我们想评估的这个词的分类。

·优点:思想简单,理论成熟;可用于非线性分类;准确度高,对数据没有假设;对outlier不敏感。

·缺点:计算量大;样本不平衡问题;内存消耗大;k值的选择对分类效果有很大影响。

(2)朴素贝叶斯:

这是一个属于概率统计的模型。下图中给出的基本公式,是存在于条件概率的一个形式,它有非常强的一个假定,“给定目标值时属性之间相互条件独立”,只有在假设成立时,我们才能得到这个公式。这个公式计算出来,是一个概率。

幻灯片8.jpg 

·优点:在数据较少的情况下仍然有效;可以处理多类别问题;适合增量式训练。

·缺点:对于输入数据的表达方式较为敏感;需要知道先验概率,分类决策存在错误率;属性之间的独立性假设往往不成立(可先聚类)。

(3)决策树:

决策树是一个在工业界应用比较多的算法模型,我们通过下面的示例图来了解一下。

幻灯片9.jpg 

上图可以分为两个部分:左侧和右侧。

左侧实际上就是样本的属性(性别、年龄、职业...),右侧是所构建的决策树模型,根据所监测到的信息以及所对应的类别所构造的决策树。

我们构建决策树要进行一个什么样的分类呢?从图中可以知道,我们根据已有的样本构建一个分类器,判断一个人“是不是喜欢电脑游戏?”

首先根据样本属性对空间进行一个划分,在这里,我们选择的是“年龄小于15”这个条件,满足就走左侧子树,不满足就走右侧子树。左侧子树又根据“是男生吗?”进一步划分为两个子树。小男孩变成最后一层的叶子节点的正样本,小女孩是这层的叶子节点的负样本。根据这种方式,我们就可以构造出一棵决策树。

·优点:计算复杂度不高,且重用性高;输出结果易于理解;对中间值不敏感;可以处理不相关特征数据;能很好地处理连续特征。

·缺点:容易出现过拟合问题;对噪声数据较为敏感。

(4)Logistic回归:

它是当前业界用的最广的模型,无论谷歌、百度,还是腾讯、阿里,都有用到。它的原型是一个线性模型。

幻灯片10.jpg 

预测样本值是由W和X组成的,最左侧这个公式,X就是我们观测到的值,WT是我们权重的向量空间。根据这样一个计算,我们就可以得到一个数值,是一个实数范围内的值,从负无穷大到正无穷大,这样一个值对我们的分类来说比较痛苦。

考虑到这个问题,有一个数学性质非常好的函数,也就是上图左下方的转化后的函数。我们可以把实数范围内的输入转化成0-1范围内的一个输出,在这样一个稳定的输出范围内,我们就能比较好地进行阈值的设定。

上图右边这个公式是用来训练的损失函数。我们根据已有的样本值,可以得到一个分类器,这个分类器可能并不是那么准确,我们将样本里面部分的属性输进去后,它会预测出一个值,我们拿这个值和训练样本里面真正对应的分类值进行比较,计算它们之间的差距,这个差距就是一个损失,我们通常采用的就是上图这种形式。根据这个损失函数,我们可以得到当前分类器是否能够反映真实的情况,根据这个差距,我们会采用一些优化方法,比如梯度下降等,去优化我们的W值。

我们这个模型从根本上说就是W的权重值,根据这个损失函数,计算出W的最优值,就构造出来了一个分类器。它从核心上来说是W和X的一个加权求和的形式,所以说它是一个线性的分类器。

·优点:计算代价不高,速度快,存储低;易于理解和实现。

·缺点:容易欠拟合;分类精度可能不高;必须线性可分。

(5)支持向量机:

这个模型是有久远历史的模型,现在应用的并不是特别多,所以就简单介绍一下。

幻灯片11.jpg

上图展示了支持向量机的基本原理,它通常是找到一条线或一个面,使得不同类到这个面的距离是最大的,我们需要做的就是找到这条线或这个面。

·优点:泛化错误率低;计算开销不大;可用于非线性分类;结果易解释。

·缺点:对参数调节和核函数选择敏感;原始分类器不加修改仅适用于处理二类问题。

以上五个就是常用的分类算法。

下图是一个分类算法整合,方便大家在不同的场景下选择合适的分类算法:

幻灯片12.jpg 

四.数据+算力+算法=AI

百度的李彦宏有提到过“数据+算力+算法=AI”,得到了业界的广泛认同,刚才我们介绍了算法,那数据和算力怎么看呢?

幻灯片13.jpg 

算法也就是我们刚才说到的一些算法模型、分类模型等等。算力实际上就是我们能够支撑算法跑的一些性能支撑、平台支撑、硬件支撑等等。数据是我们着重要说的,它排在第一位,最基础,是决定一个问题解决能否成功的关键,数据的处理往往对最后的效果影响最大。

上图是一些性价比比较高的数据处理方式,有样本清洗、特征变换、特征选择、特征组合。

这四大部分就是关于分类算法的介绍。下面我们一起来看看在最后的答疑过程中,都有些什么问题呢?

1.大数据分析和AI的关系?

李老师:其实它们之间并没有那么明显的界定,主要是侧重点的区别。大数据分析侧重试分析,也会用到AI的技术,或者常说的算法模型。而AI不仅仅是分析,它有更多的领域。

2.如何判断一个特征是否有效?

李老师:比如在构造样本的时候,先进行一些卡方检验,相关系数检验等。在选择不同的样本构造分类器之后,也可以评价它的一些auc的一个变化。不过需要注意的是,如果通过样本量的大小带来的auc的变化,通常是不可信的。所以需要在同样的样本量的情况下,而且是模型收敛的情况下,去评价不同。特征的auc可以进行特征的选择,看特征是否有效。

3.AI、数据分析、人工智能在工作中。对于hadoop、spark之类的大数据技术,要求高吗?需要掌握到什么程度?

李老师:hadoop、spark是我们常用的进行机器学习的平台。可以了解,不用那么深,但基本的使用和大致的原理以及性能的调优都还是需要知道的。

以上就是本次线上直播的主要内容,相信你对分类算法的概念、应用场景、模型都有了更深入的认识。想了解更多更详细内容的小伙伴们,可以关注服务号:FMI飞马网,点击菜单栏飞马直播,即可进行学习。

服务号.jpg 

猜你喜欢

转载自my.oschina.net/u/3799785/blog/1789510
今日推荐