教学课件13.集成机器学习模型+ 财务舞弊预测.pptx
《教学课件13.集成机器学习模型+ 财务舞弊预测.pptx》由会员分享,可在线阅读,更多相关《教学课件13.集成机器学习模型+ 财务舞弊预测.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教材配套资源页完整PPT课件教学课件13.集成机器学习模型+ 财务舞弊预测1by 张敏 & 王宇韬第13章集成机器学习模型+ 财务舞弊预测2目 录0113.1 随机森林模型的基本原理和代码实现0203第一讲 随机森林模型的基本原理和代码实现13.2 GBDT算法的原理介绍13.3 XGBoost算法原理0413.4案例实战:基于集成机器学习模型的财务舞弊模型13.1.1 集成模型简介集成学习模型是机器学习非常重要的一部分。集成学习是使用一系列的弱学习器(或称之为基础模型)进行学习,并将各个弱学习器的结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。集成学习模型有两种常见的算法:
2、Bagging算法和Boosting算法。Bagging算法的典型机器学习模型为本章所讲的随机森林模型,而Boosting算法的典型机器学习模型则为下两章会讲到的AdaBoost、GBDT、XGBoost和LightGBM模型。1.Bagging算法Bagging的想法是采用类似于“民主投票”的方式,即每一个基础模型都有一票,最终结果通过所有基础模型投票,少数服从多数的原则产生预测结果。其原理如下图13-1所示:从原始训练数据中(假设共有10000条数据),随机有放回地抽取10000次数据构成一个新的数据集(因为是随机有放回抽样,所以可能出现某一条数据多次被抽中,也有可能某一条数据一次也没有被
3、抽中),每次使用一个训练样本训练一个基础模型。这样进行有放回的随机抽取n次后,训练结束时我们就能获得n个由不同的数据集训练的基础模型,也称之为n个弱学习器,根据这n个弱学习器的结果,我们可以获得一个更加准确合理的结果。具体来说,在分类问题中,是利用n个基础模型投票方式获取最终结果;而在回归问题中,则是取n个基础模型的平均值作为输出。2.Boosting算法Boosting算法的本质是将弱学习器提升为强学习器,它和Bagging的区别在于,Bagging对待所有的基础模型一视同仁。而Boosting则做到了对于基础模型的“区别对待”,通俗来讲,Boosting算法注重“培养精英”和“重视错误”。
4、在训练过程中,“培养精英”,即每一轮对于预测结果较为准确的基础模型,会给予它一个较大的权重,表现不好的基础模型则会降低它的权重。这样在最终预测时,“优秀模型”的权重是大的,相当于它可以投出多票,而“一般模型”只能在投票时投出一票或不能投票。同时,“重视错误”,即在每一轮训练后改变训练数据的权值或概率分布,通过提高那些在前一轮被基础模型预测错误样例的权值,减小前一轮预测正确样例的权值,来使得分类器对误分的数据有较高的重视程度,从而提升模型的整体效果。其原理如图所示:因为本章主要讲解基于Bagging算法的随机森林模型,这里Boosting算法只是讲解了其核心知识点,在下一章讲解AdaBoost模
5、型的时候会对Boosting算法有更加详细的介绍。13.1.2 随机森林模型的基本原理随机森林(Random Forest)是一种经典的Bagging模型,其弱学习器为决策树模型。如下图13-3所示,随机森林模型会在原始数据集中随机抽样,构成n个不同的样本数据集,然后根据这些数据集搭建n个不同的决策树模型,最后根据这些决策树模型的平均值(针对回归模型)或者投票(针对分类模型)情况来获取最终结果。为了保证模型的泛化能力(或者说通用能力),随机森林在建立每棵树的时候,往往会遵循两个基本原则:数据随机和特征随机。1.数据随机:随机地从所有数据当中有放回地抽取数据作为其中一棵决策树的数据进行训练。举例
6、来说,有1000个原始数据,有放回的抽取1000次,构成一组新的数据(因为是有放回抽取,有些数据可能被选中多次,有些数据可能不被选上),作为某一个决策树的数据来进行模型的训练。2.特征随机:如果每个样本的特征维度为M,指定一个常数kM,随机地从M个特征中选取k个特征,在使用Python构造随机森林模型时,默认取特征的个数k是M的平方根: 随机森林在 bagging 的基础上,再次对特征做了一次随机选择,比如对于自助采样后的每一个子数据集(总共 m 个子数据集),我们并不会像决策数那样用到所有的特征,随机森林会从所有的特征中随机选择一个包含 k(k1.5的值,都预测为:(0+2+2+4)/4=2
7、。此时的残差 如下表所示:x12345y00224f(x)02222残差0-2002此时的均方误差MSE如下所示:仿照阈值v=1.5的方法,我们可以计算出这种情况下4种切法的均方误差MSE值,如表:由上表可知,当v=2.5时均方误差MSE取得最小值,此时第一颗决策树 见图:补充知识点:用Python求均方误差通过mean_squared_error()函数可以快速求得均方误差,代码如下:v=1.5v=2.5v=3.5v=4.51.60.530.930.8(2)查看此时的残差在上面我们已经求得了第一颗决策树 ,因此我们可以获得其对应的残差如下表:x12345y00224f(x)008/38/38
8、/3残差00-2/3-2/34/3有了残差之后,下面需要做的就是构建决策树来拟合残差,此时整个系统的均方误差MSE为0.53。2.拟合残差获得第二个决策树模型有了第一颗决策树 的残差值后,我们需要拟合的就是下面的表,这时的目标变量就是这里残差,根据x和残差我们需要拟合一个回归决策树 。x12345残差00-2/3-2/34/3(1)寻找合适的初始切分点通过和上面同样的计算方法,我们可以计算出4种切法下的均方误差MSE值,结果如表:由上表可知,当v=4.5时均方误差MSE取得最小值,此时第二颗决策树 为图:(2)查看此时的残差此时对于残差的预测值(T(x))及残差的残差值(残差 - T(x))如
9、下表13-8所示:注意这个残差的残差也即系统的残差,这个在下一步骤:集成模型时会得以验证。此时该拟合残差的决策树模型的均方误差MSE值为0.088,这个其实也是整个系统的均方误差MSE值,这个同样也会在下一步骤:集成模型时会得以验证。v=1.5v=2.5v=3.5v=4.50.530.530.460.088x12345残差00-2/3-2/34/3T(x)-1/3-1/3-1/3-1/34/3残差的残差1/31/3-1/3-1/30(3)集成模型用图形来表示的话如下图:有了集成模型 后,我们便可以求得此时系统的残差(y-f(x)),如下表x2.50是x4.5 否是8/3-1/34/3否x123
10、45y00224f(x)-1/3-1/37/37/34残差1/31/3-1/3-1/30可以看到,这里的残差和上一步骤获得的残差的残差是一样的,同时我们用如下代码可以求得这时候系统的均方误差MSE值:可以得到此时系统的均方误差MSE值为0.088,这个和上一步骤获得的均方误差MSE值是一致的。有了新模型的残差后,我们便可以继续构造新的决策树来拟合这个残差,当满足系统的均方误差MSE值达到指定要求,或者说迭代次数达到指定条件时,便停止迭代形成最终模型。最终模型如下图:新的拟合残差的决策树们x2.50是x4.5 否是8/3-1/34/3否如果设定迭代次数为2次(实际应用中模型默认取100次),或者
11、认为均方误差MSE值0.088已经足够小,那么此时最终模型就如下所示:因为GBDT是不停的拟合新模型的残差,因此随着新的迭代,整个系统的残差会越来越小,或者更精确地说系统的均方误差MSE值会越来越小,从而使得模型更加准确。补充知识点实际应用中,GBDT(Gradient Boosting Decision Tree)梯度提升树使用损失函数的负梯度在当前模型的值作为残差近似值(上面定义的残差为y-f(xi))。如图13-12,负梯度为:其实这个负梯度在特定损失函数的情况下,就是上面定义的残差(y-f(xi)),如图,令损失函数为(关于损失函数的更多知识点,可以参考本章最后的补充知识点):此时对损
12、失函数求梯度:此时残差 等于负梯度,也就是说,当损失函数是平方函数时,负梯度就是残差。不过当损失函数非平方函数时,负梯度只是残差的近似值,并不完全等于残差。13.2.4 GBDT算法的简单代码实现GBDT模型既可以做分类分析,也可以做回归分析,分别对应的模型为GBDT分类模型(GradientBoostingClassifierr)及GBDT回归模型(GradientBoostingRegressor)。GBDT分类模型的基模型是分类决策树模型,GBDT回归模型的基模型则是回归决策树模型。GBDT分类模型简单代码演示如下所示:其中X是特征变量,其共有2个特征;y是目标变量;第5行引入模型;第6
13、行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:其中X是特征变量,其共有2个特征;y是目标变量,有两个分类:0和1;第5行引入模型;第6行通过fit()函数训练模型,并设置random_state参数为123(该数字没有特殊含义,可以换成其他数字),使得每次运行结果一致;最后1行通过predict()函数进行预测,预测结果如下:GBDT回归模型简单代码演示如下所示:其中X是特征变量,其共有2个特征;y是目标变量;第5行引入模型;第6行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:接下来我们将讲解基于GBDT算法的升
14、级版本的Boosting算法:XGBoost和LightGBM算法之一,这两个算法可以说是目前机器学习竞赛中的明星算法,在商业实战中也有非常广泛的应用场景。这两种算法运行速度快,预测准确度高,且支持并行操作,极大的提高了机器学习的效率和效果,无论在分类模型还是回归模型都有很大的作用,因此本章针对这个模型,同样会分别讲解一个分类模型及一个回归模型方便大家理解。目 录0113.1 随机森林模型的基本原理和代码实现0203第三讲 XGBoost算法原理13.2 GBDT算法的原理介绍13.3 XGBoost算法原理0413.4案例实战:基于集成机器学习模型的财务舞弊模型13.3 XGBoost算法原
15、理XGBoost算法是由华盛顿大学的陈天奇博士(本科就读于上海交通大学的 ACM 班)开发并开源给大家使用的,其官方文档地址为:https:/xgboost.readthedocs.io,在官方文档中有很多算法细节和使用方法,由于官方文档是英文的,这里讲解一个查看英文文档的便捷方法:下载谷歌浏览器(https:/ XGBoost算法核心思想XGBoost算法某种程度上可以说是上一节讲解的GBDT算法的改良版,其本质都是Boosting算法中拟合残差的思想:如下图13-15所示为之前讲解GBDT算法提到的信用卡额度的预测模型,其中初始决策树预测后不完全准确,会产生一些残差,因此会用新的决策树来拟
16、合该残差,新的决策树又会产生新的残差,这时再构造新的决策树来拟合新的残差如此迭代下去直至符合设定条件为止。有的读者可能有疑问了,既然XGBoost算法的核心思想和GBDT算法都是Boosting算法中拟合残差的思想,那么其优势到底在什么地方呢?这个我们在下一节进行讲解。月收入20000元年龄25岁35000元B,D是否10000元A是20000元B否残差B=-5000,D=5000残差A=-2000残差C=5000年龄30岁月收入15000元5000元C,D是否-3000元A是-5000元B否残差C=0,D=0残差A=1000残差B=0新的拟合残差的决策树们新的拟合残差的决策树们初始决策树初始
17、决策树拟合残差的决策树拟合残差的决策树13.3.2 XGBoost算法数学原理概述(了解)由于XGBoost算法的数学原理涉及非常多的高等数学和线性代数的知识,本书不过多展开,对于普通读者,了解核心思想和简单代码实现即可阅读案例实战了,在本书随书所赠材料中,也会有陈天奇博士所著XGBoost论文和相关PPT供感兴趣的读者参考,这里我们主要从文字的角度讲解XGBoost算法数学原理的一些核心知识点。作为GBDT算法的高效实现,XGBoost算法在如下两个方面做了优化:1.算法本身的优化:XGBoost算法的损失函数,除了本身的损失,还加上了正则化部分,可以防止过拟合,泛化能力更强。XGBoost
18、算法的损失函数是对误差部分采用二阶泰勒展开,相较于GBDT算法的损失函数只对误差部分做负梯度(一阶泰勒)展开,更加准确。2.算法运行效率的优化:对每个弱学习器,如决策树建立的过程做并行选择,找到合适的子树节点分裂特征和特征值,从而提升运行效率。其中算法本身的优化是重点也是难点,其数学推导非常复杂,感兴趣的读者可以查看陈天奇博士的相关论文(如图),本书将着重介绍其代码实现及案例实战。13.3.3 XGBoost算法的简单代码实现XGBoost模型既可以做分类分析,也可以做回归分析,分别对应的模型为XGBoost分类模型(XGBClassifier)及XGBoost回归模型(XGBRegresso
19、r)。XGBoost模型的安装办法可以采用PIP安装法,以Windows操作系统为例,Win+R快捷键调出运行框,输入cmd后,在弹出界面中输入代码后Enter键回车运行即可:其中X是特征变量,其共有2个特征;y是目标变量;第4行代码使用array数组类型的数据做演示,因为XGBoost分类模型的特征变量不支持直接输入list列表类型的数据,可以传入array数组格式的数据或者DataFrame二维表格格式的数据;第7行引入模型;第8行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:XGBoost回归模型简单代码演示如下所示:其中X是特征变量,其共有2个特
20、征;y是目标变量;第5行引入模型;第6行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:目 录0113.1 随机森林模型的基本原理和代码实现0203第四讲 案例实战:基于集成机器学习模型的财务舞弊模型13.2 GBDT算法的原理介绍13.3 XGBoost算法原理0413.4案例实战:基于集成机器学习模型的财务舞弊模型13.4案例实战:基于集成机器学习模型的财务舞弊模型实战永远是理解模型最好的方法,下面我们以第二十一章中公司财务舞弊的数据作为样本(过采样处理之后),分别训练三个模型,并比较三个模型的表现。对于三个模型来说,读取和处理数据部分的代码是相同的:
21、13.4.1 基于随机森林模型的财务舞弊模型首先来应用随机森林模型,构造模型并拟合的方法在第一节已经介绍过了:这里的模型设置弱分类器决策树的个数:n_estimators参数为20(感兴趣的读者也可以设置成其他数字),随机种子参数:random_state参数为123(该值无特殊含义,主要使每次运行结果一致),其他所用的参数是默认值,我们可以输出准确度值和AUC值来看一下模型的拟合效果:得到的准确度结果为:再来看AUC值:得到的结果为: 0.816658955971933这一结果比我们单独用决策树得到的结果好一些(第二十一章中决策树调参之前AUC值为0.6608),这其实也是正常的,下面我们按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件13.集成机器学习模型+ 财务舞弊预测 教学 课件 13. 集成 机器 学习 模型 财务 舞弊 预测
限制150内