对于策略产品经理来说,了解有关机器学习算法的相关原理和思路,会对自身的工作有所帮助,那么,你了解机器学习里的监督学习算法吗?本篇文章里,作者便做了一定拆解和总结,一起来看一下。
今天我们继续来讲讲十大机器学习算法原理的中篇,核心目标还是给策略产品或者希望从事该方向的同学通俗易懂地讲清楚机器学习的思想原理,帮助策略产品建立起来最为基础的“工具方案-问题”的认知思路,感兴趣还是建议大家阅读专业的机器学习书籍,了解更加专业的机器学习算法原理,本文章系列旨在给产品讲清楚机器学习的思路和原理,今天我们继续讲完剩下的4个监督学习算法。
一、基本的机器学习算法
1. 决策树Decision Tree
决策树-Decision Tree也是监督学习算法的一种,主要应用于分类问题之上,少量也会应用在回归问题上。作为一种特殊的树形结构,其中每个内部节点都代表一个属性的区分判断,每一个分支就代表判断的结果输出,最后每一个叶子节点代表着一种分类预测的结果。
举个通俗的例子,咱们拿泰坦尼克号沉船事件旅客信息来对该乘客预判乘客生存的可能性,下面的模型通过:性别、年龄和是否存在兄弟姐妹的特征来做判断,可以看出通过决策树看出:性别-年龄-是否有兄弟姐妹,来判定你是否可以上救生船;优先女性或者小于9.5岁且没有兄弟姐妹的孩子,这部分的人群通过决策树判定下来是存活概率较高的;
由上面的例子可以知道,决策树就是通过对一系列线索和信息的判断作出的有效决策。
1)决策树的分类
决策树根据目标变量的类型可以分成两个类型:分类变量决策树和连续变量决策树,其实就是对应的我们所谓的分类问题和回归问题。
分类变量决策树:这是指算法有一个分类的简单明细目标变量。例如,考虑让你预测Arthur本人的身高,作为三个类别之一:高个、矮个、适中;特征可能包括是否爱吃牛奶、是否爱打篮球、父母的身高、每天的睡眠时长。决策树将从这些特征中学习,在每个数据点通过每个节点后,它将在高个、矮个、适中三个分类目标中的一个具体的叶子节点上结束。
连续变量决策树:这是指算法有一个连续数值的目标变量,例如让你预测北京朝阳区亚运村的房子价格,需要用到房屋地段、地铁线途径情况、小区物业水平、周边商场布局情况、周边的商圈分布,来预测一个连续值的输出在叶子节点结束,具体是个最终的房屋价格。
2)树的结构组成
由图中可知,主要有三个类型的及节点,核心组成元素如下所示:
根节点-Root node:是决策树的第一个节点,根深蒂固的地方;分割-Splitting:是指从根节点开始,将节点划分为两个或多个子节点的过程,例如图中根节点划分为叶子节点和内部节点的过程;节点-Node:将根节点的结果分割成子节点,并将子节点分割成更多的子节点,如图中的内部节点又称为决策节点;叶子或终端节点 – Leaf or terminal node:一个节点的结束,因为节点不能再被分割,如图中的叶子节点;分支-Branch:整个树的一个分支被称为分支或子树;父节点和子节点 – Parent and Child Node:子节点与父节点都是相对概念,我们一般把某个节点的上一个链接节点叫做其父节点,反之被称之为子节点;
3)树模型的拆分
决策树的构建并不是越复杂越好,反而快速的定位和确定我们的决策特征对于构建树有较大的帮助,在实际场景当中,会有非常多的特征和特征值,所以作为策略产品我们怎么选择合适的特征组合来构建树呢?单个特征又如何制定阈值(前面泰坦尼克号的年龄/有几个兄弟姐妹)来评估决策树模型的好坏。我们来介绍对应的方法和评估指标。
①基尼不纯度-Gini Impurity
基尼不纯度是用来表示数据集中随机选择一个子项,衡量其被错误分到其他类别当中的概率,表示一个系统的“纯净”程度,计算公式如下所示:
Pi代表当前节点中属于i类的比例;G(P)∈[0,1],越靠近0纯度越高,代表决策树的分类效果越好。
举个简单分类决策树例子,我们在取X = 2的时候,给左右2个分支,左边5个“蓝点”,右边5个”绿点”,套用基尼不纯度的公式,不纯度为0,最理想的分类效果。
当我们取x = 1.5的时候,左边有四个“蓝点”,左边的基尼不纯度为0(没有绿点),而右边有一个“蓝点”,四个“绿点”,基尼不纯度为:
两边各自的点数不一样,我们还需要做一下加权平均处理:(0.4*0)+(0.6*0.287)= 0.167跟分类前的基尼不纯度0.5相比,我们可以认为这个不纯度在分类后被降低了0.5 – 0.167 = 0.333,因此又把它称作基尼增益(Gini Gain)。基尼增益值越高,说明我们的分类效果越好。
② 信息增益-Information Gain
信息增益用来评估决策节点的分裂好坏,信息增益越大表明分裂的效果越好,其表明了系统的不确定性在减少,这个和“熵”的概念是比较一致的;熵本身是一个热力学方向的概念,形容分子运动的混乱程度。
在决策树模型中,我们用熵来衡量信息的不确定性,如果树模型的单个叶子节点信息含有的分类越多,则熵越大。熵越大,表示分裂效果越差。最优的情况就是单个叶子节点只包含一种分类。计算方式如下:
先计算父节点的熵,在分别计算各个子节点的熵,最后进行加权平均,父节点的熵减去子节点的熵就表示的是信息增益Information Gain。
还是用上面蓝绿点的例子,当x = 2的时候,“蓝点”和“绿点”完美分离,E分界线左侧 = 0 ,E分界线右侧= 0,公式如下:所以x = 2的加权熵 = 0 * 5/10 +0 * 5/10 = 0;
当x = 1.5 的时候,左侧 “蓝点” 被完美分离,E1(分界线左侧)与E2(分界线右侧)代表公式如下所示。
所以选择x = 2作为决策点的时候,信息增益值:1-0 = 1,即系统的不确定性减少了1;选择x = 1.5 作为决策点的时候,信息增益值:1-0.66 = 0.34,即系统的不确定性减少了0.34;所以选择x = 2作为决策点更加合理。
4)树模型剪枝
为了防止决策树模型的分支过多,出现过拟合问题,通常我们会做剪枝,剪枝分为预剪枝和后剪枝两种类型。
①预剪枝Pre-pruning
预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,如果当前结点的划分不能带来决策树模型泛化性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点;核心是边构造边剪枝。目标是控制决策树充分生长,可以预先的控制一些参数。
决策树的最大深度,如果达到指定深度,就停止生长——最大树深度;控制书中父节点和子节点的最少样本量或者比例。对于父节点,如果样本量地域最小样本量或者比例,就不再分组;对于子节点,如果分组后生成的子节点样本量地域最小样本量或者比例,则不必进行分组;——终端节点最大数量/最小样本数;树节点中输出变量的最小异质性减少量,如果分组产生的输出变量异质性地域一个指定值,则不用再进行分组。
② 后剪枝Post-pruning
后剪枝是允许决策树充分生长,然后在此基础上根据一定的规则,减去决策树中不具备代表性的叶节点,是一个边修边剪的一个过程;在修剪的过程中,不断对当前决策树测试样本集合预估的精度和误差,并且判断是继续还是停止修剪;当然,后剪枝可能会导致模型的过度拟合。
5)其他
决策树的建模思路在上述当中已经基本阐述完成了,还有包括回归决策树下评估的分差法,以及决策树模型当中ID3、C4.5和CART算法,后续可以开文章单独给大家来做介绍。
2. 随机森林算法-Random Forest
1)核心思想
把随机森林算法放在决策树之后是因为两者在思想上有串联进阶的理念在里面,随机森林一词在1995年由贝尔实验室提出来的,既然是“森林”那必然是由一颗颗的参天大树构成的,正如名字所示,随机森林可以被看做成为一个决策树的集合结果,但是不同的决策树之间没有关联性。
当进行分类任务的时候,新的输入样本进入,就让森林的每一颗决策树进行判断和分类,每个决策树都会得到一个自己的分类结果,决策树分类结果当中的哪一种分类投票最多,随机森林就会把这个结果当做当成最终结果;核心思想与中国古代的“三个臭皮匠顶过一个诸葛亮”有异曲同工之秒。下图比较直白的描述随机森林的核心思想。
2)原理说明
从数据集合中随机Random选择n个特征(列),其中集合共m个特征(其中 n< =m)。然后根据这n个特征建立决策树。抽样特征的动作依次来重复k次,这n个特性经过不同随机组合建立起来k棵决策树(或者是数据的不同随机样本,又叫做自助法样本)。对每个决策树都传递随机变量来预测结果,即决策树中的终端叶子节点结果;存储所有预测的结果(目标),你就可以从k棵决策树中得到k种结果。计算每个预测目标的得票数再选择模式(最常见的目标变量)。换句话说,将得到高票数的预测目标作为随机森林算法的最终预测,如果是个回归树的话就通过加权平均的方式得到最终预测值,如果是分类树就得到具体的分类(哪一类分类最多)。
总结:核心思想咱们再来举个栗子,Arthur去北京旅游一周,拜访了一位一直在北京工作的老同学,朋友基于Arthur的预算、对于景点的偏好以及时间安排推荐了几个景点建议,这是景点的决策树的思想,老同学基于自己的经验和喜好给Arthur推荐了几个不错的经典。
之后,Arthur又问了很多在北京的前同事、同学讯问建议,他们根据Arthur其他的(有部分重合)诉求,例如历史底蕴、海拔等特征给出了其他的建议,然后Arthur最终选择了推荐次数最多的经典,这就是随机森林的算法思想。
3)随机森林当中的优缺点
优点:
抗过拟合能力:通过加权平均单个决策树的结果,降低过拟合的风险性。解决问题多元化:可以同时在随机森林中加载分类树和回归树,同时处理连续数值和离散的分类。效果稳定:即时是数据集中出现一个新的数据点,或者是一棵树分类效果有问题也不会影响到整个森林,除非是半数以上的决策树都出现了错误预测的问题。
缺点:
计算成本高、耗时长:比单个决策树更加的复杂,计算成本偏高;需要更多的样本和时间来做训练。
4)随机森林当中模型参数
和前面说的逻辑回归、线性回归以及决策树一样,选择合适的模型参数是帮助随机森林做预测效果的核心关键,同时也决定了模型预测的性能效果,我们拿sklearn当中的随机森林参数来举例,核心是为了解决上述说到的几个缺点。
①建模的速度
并行决策树运行数量,即使用处理器的数量,如果仅允许一个就输出1,如果希望计算速度能够更快可以设置多个并行决策树。随机数生成器:当模型具有一个确定的随机数,并且给定相同的超参数和相同的训练数据时,模型将始终产生相同的结果。是否计算袋外得分:袋外抽样是用来帮助随机森林做交叉验证的方式,样本的三分之一都不是用来训练模型的而只是用来评估性能的,这些样品被称之为袋外样品。
②预测能力
子模型的数量:在利用最大投票数或平均值来预测之前,你想要建立子树的数量,其实和前面决策树当中控制叶子节点的思路一样。子树的数量越多,越能提高性能,预测的准确性就越稳定,但是也会放缓计算过程。节点分裂时参与判断的最大特征数:随机森林允许单个决策树使用特征的最大数量。叶子节点最小样本数:内部节点再划分所需最小样本数。
二、总结
由于文章篇幅问题策略产品通俗易懂讲机器学习先讲到决策树和随机森林的思想,该系列的文章目的是在为转型策略产品,或者是已经从事策略产品、策略运营方向的同学通俗易懂的了解机器学习算法原理与思想。
如何求得最佳参数的过程,机器学习只是一个达成业务目标的高效方式,并不是目的本身,核心还是提升我们业务场景的效率和收入指标,策略产品是给我们提供了一个增加产品壁垒的方向和思考的方式。
本文由 @策略产品Arthur 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。 |