《金融大数据分析》-课件 第9章 集成学习_第1页
《金融大数据分析》-课件 第9章 集成学习_第2页
《金融大数据分析》-课件 第9章 集成学习_第3页
《金融大数据分析》-课件 第9章 集成学习_第4页
《金融大数据分析》-课件 第9章 集成学习_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章

集成学习金融大数据学习学习目标了解集成学习方法的概念,以及该类方法的作用掌握如何使用自助法生成独立样本理解袋装法,随机森林,以及提升法的使用方法理解这类学习方法的训练过程掌握如何使用程序实现集成学习集成学习简介集成学习可以将众多模型的预测进行综合以达到减少过拟合问题的目的。集成学习(以提升法为代表),可以将许多弱模型结合起来以达到提高模型表现的作用。该类模型可以有效解决欠拟合问题。集成学习不限于决策树,但是在决策树这一类模型中有着最广泛的应用。包括三大类方法:1.袋装法2.随机森林3.提升法自助法如果我们原样本中有𝑀个数据点,那么我们每次随机生成的样本是从原样本中也随机抽取𝑀个数据点而得到的。随机生成新样本的过程中,我们对原样本进行𝑀次抽取,每次抽取一个数据点。因此,原样本的某些数据点可能会在新样本中出现多次。但是有些数据点可能根本不会出现。因此,我们𝐵个随机生成的样本都有𝑀个数据点,但是跟原样本都会有所不同。袋装法袋装法(bagging)是一种基于自助法(bootstrap)的集成学习方法。该方法可叠加于用于各种机器学习模型之上(比如线性回归,逻辑回归等)。用B个随机生成的样本来训练决策树。得到B个决策树模型。用回归树来预测连续变量,可以直接对这B个模型取平均数。误差估计袋装法的误差估计在每个自助法得到的随机样本中,我们平均用到原数据中2/3的数据点。因此,平均每个随机样本会有1/3的原数据没有被用到。这些没有被用于训练的数据点被称为袋外数据(比如随机样本1)中,数据4为袋外数据。误差估计接下来,我们在每个随机样本中训练模型,并用该模型来预测袋外数据。我们通过对每个随机样本中对其袋外数据进行预测,这样平均原数据中的每个数据点都会得到大约𝐵/3个模型的预测。最后,我们综合这𝐵/3个模型的预测(通过对于回归树取平均值或对于分类树采用模型投票),可以对模型预测的准确性进行判断。这种方法相较于交叉验证法的优势是计算成本较低。随机森林简介随机森林是对袋装法的一种改进方法。袋装法是通过自助法生成不同的随机样本,并在随机样本上训练决策树。随机森林则是在每次对树进行分裂的过程中,只选取一部分特征来进行分裂。一般来说,我们在每次分裂过程中,在总共𝑚个特征中,随机选取𝑘个特征,并使用这k个特征对树进行分裂。随机森林简介这在随机森林模型,我们要求𝑚>𝑘。所以有些特征并不会被用到。通常来说,我们随机选取特征的数量𝑘约等于所有特征数据的平方根。因此,我们每一步对树的分裂操作都只能用到一小部分特征。随机森林简介随机森林相较于袋装法的优势在于该方法可以让每次生成的决策树更加多样,因而使他们的预测也更加多样。这样的多样性有助于减小模型预测的方差。𝑘越小,那么我们生成的决策树就会更加多样。如果𝑘=𝑚,那么随机森林就等同于袋装法。随机森林训练步骤我们将重复𝐵次如下操作,在第𝑖次循环中,我们进行:1.从原始数据集𝐷中随机采样一个自助数据集𝐷𝑖2.使用𝐷𝑖构建决策树𝑇𝑖,具体步骤如下:(a)对于树的每一个节点,随机选择𝑘个特征(b)使用所选特征基于某一度量(例如,基尼系数,交叉熵)来确定最佳分割点(c)使用最佳分割点来分割节点(d)递归地重复以上步骤来构建完整的树提升法类似于袋装法,提升法(Boosting)同样可以叠加使用与不同的监督学习模型之上。提升法对决策树模型的表现可以带来显著的提升。提升法与袋装法不同之处是袋装法每次都在随机样本上生成一个独立的决策树,而提升法中每次生成的新的决策树都是基于之前决策树的表现。提升法主要解决的问题不是过拟合而是欠拟合。滥用提升法有可能会造成模型的过拟合。提升法执行步骤1.我们首先将作如下初始化:(a)残差𝑟(𝑖)∶=𝑦(𝑖)。在开始模型训练之前,残差等于目标变量本来的值(b)初始假设函数𝑓(𝑥)=02.对以下步骤进行𝐵次循环,在第𝑏步,我们进行如下工作(a)用特征𝑥与残差𝑟来训练决策树模型,得到𝑓(𝑏)(b)将假设函数进行如下更新:𝑓(𝑥)∶=𝑓(𝑥)+𝜆𝑓(𝑏)(𝑥)(c)将残差进行如下更新:𝑟(𝑖)∶=𝑟(𝑖)−𝜆𝑓(𝑏)(𝑥(𝑖)))提升法特点首先,提升法不需要生成随机样本。第二,除了第一次生成的决策树,之后每次生成的决策树都不是对原数据或随机样本数据的拟合,而是对原数据与模型拟合的残差进行拟合。也就是说,每次循环中,我们都试图找到一个新的决策树可以减小之前模型预测与实际数据的距离。提升法特点在提升法中,有个重要的参数是𝜆,又叫收缩参数。这个参数控制学习的速率,一般被设为0.1(但如同其他的超参数一样,需要根据具体问题进行调整)。𝜆越小(即很高的𝐵参数)我们可能需要使用更大数量的树来对模型进行拟合。提升法特点如果我们处理的是分类问题,那么模型𝑓(𝑥)输出的不是正分类概率,而是对数赔率。这是因为用线性方式来叠加概率并不合适。我们可以使用逻辑函数使其转化为正分类概率:提升法特点因为提升法能有效对数据进行拟合,因此我们也需要考虑该方法可能产生过拟合的问题。在实际操作中,许多算法都加入了剪枝等方法来对提升法中所用到的决策树模型进行简化。从而达到减小过拟合的效果。常用的提升法我们已经介绍了提升法的总体思路。在实际应用中,机器学习的研究发现有许多方法能对提升法产生优化。因此,现在也有一系列的改进后的提升法可供选择。以下我们将简单介绍经常用到的提升法,但是我们不会对其具体技术细节进行介绍。在之后的编程学习中,我们会用到下面的某些方法。常用的提升法1.AdaBoost(自适应提升算法):优点:简单易实现,能够处理高维数据和复杂的分类问题。缺点:对噪声和异常值敏感,可能导致过拟合。2.XGBoost(极限梯度提升算法):优点:高效并且准确,具有自动处理缺失值的能力,支持并行处理。有防止过拟合机制。缺点:对超参数敏感。常用的提升法LightGBM(轻量级梯度提升算法):优点:速度快,内存占用低,适用于大规模数据集,支持类别特征。缺点:对数据中的噪声和异常值敏感。4.CatBoost(类别梯度提升算法):优点:对类别特征有良好的处理能力,不需要显式地进行特征转换。缺点:训练时间可能较长,需要调整一些特定的超参数。集成学习法的优缺点集成学习方法可以有效降低模型过拟合的程度,从而产生良好的预测表现。另一些集成学习则主要是降低欠拟合的问题。这一类模型使用范围广泛,经常可以取得很好的表现。但是,集成学习会使模型的可解释性丢失,让我们更加难以得知何种因素让模型得到其预测的结果。集成学习法的优缺点比如,在决策树中,我们可以直接通过对决策树的节点上的样本分类条件进行分析得知哪些特征影响了模型对数据的分类结果。但是,如果我们使用集成学习法,那么分类的结果是由多个决策树得到的,而每个决策树上的判断条件也有很大差异。因此,我们无法简单的判定哪些分类条件影响最终的数据输出。集成学习程序:随机森林导入库使用pandas存储数据导入sklearn库model_selectionsklearn模块的train_test_split,用于划分训练集和测试集importpandasaspd导入sklearn库ensemble模块的RandomForestRegressor,用于创建随机森林回归模型fromsklearn.model_selection

import

train_test_splitfromsklearn.ensemble

import

RandomForestRegressor集成学习程序:随机森林导入库导入sklearn库metrics模块中的mean_squared_erro用于计算模型的均方误差导入xgboost库XGBRegressor类,用于创建XGBoost回归模型fromsklearn.metricsimportmean_squared_errorfromxgboostimportXGBRegressor集成学习程序:随机森林数据读取及处理读取名为’ols_training.csv’的CSV文件中的数据,并将其存储在data变量中[2]:data=pd.read_csv("ols_training.csv")接下来从清理后的数据中选择特征变量,包含三个特征’pps’,‘bm’,‘roa’,并将其保存在X中从清理后的数据中选择目标变量’eps_basic’,并将其保存在y中[3]:X=data[['pps','bm','roa']]y=data['eps_basic']集成学习程序:随机森林数据读取及处理将数据集划分为训练集和测试集,测试集占总数据的20%,训练集占总数据的80%,随机种子设为42以使结果可重复其中,将用于训练的特征变量数据存储在X_train中,用于测试的特征变量数据存储在X_test中,用于训练的目标变量数据存储在y_train中,用于测试的目标变量数据存储在y_test中[4]:X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)集成学习程序:用随机森林预测创建一个随机森林回归模型对象rf_model,设置森林中树的数量为100,节点分裂所需的最小样本数为10,随机种子设为42以使结果可重复。每次我们选取√𝑚个特征来细分样本(max_feature=‘sqrt’)。rf_model=RandomForestRegressor(n_estimators=100,min_samples_split=10,random_state=42,max_features='sqrt')集成学习程序:用随机森林预测使用fit方法对X_train和y_train进行随机森林回归分析rf_model.fit(X_train,y_train)使用训练好的模型对测试集特征变量进行预测,并将结果储存在y_pred中y_pred_rf=rf_model.predict(X_test))集成学习程序:用随机森林预测计算测试数据和预测结果的均方误差,并将结果保存在mse中mse_rf=mean_squared_error(y_test,y_pred_rf)打印均方误差print("MeanSquaredError:",mse_rf)集成学习程序:使用xgboost算法创建一个XGBoost回归模型对象xgb_model,设置弱学习器数量为100,学习率为0.1,最大深度为3,随机种子为42以使结果可重复xgb_model=XGBRegressor(n_estimators=100,learning_rate=0.1,max_depth=3,random_state=4)使用fit方法对X_train和y_train进行XGBoost回归分析xgb_model.fit(X_train,y_train)集成学习程序:使用xgboost算法使用训练好的模型对测试数据进行预测,并将结果保存在y_pred_xgb中y_pred_xgb=xgb_model.predict(X_test)计算测试数据和预测结果的均方误差,并将结果保存在mse_xgb中mse_xgb=mean_squared_error(y_test,y_pred_xgb)print("MeanSquaredError:",mse_rf)集成学习程序:结果分析可见,集成算法在EPS预测这个任务上有着非常良好的表现。随机森林与xgboost算法都在验证数据集上取得了较小的误差。相较于回归树算法,我们的误差下降相当明显。这样的结果很好的说明了集成学习的优势。习题:知识理解1.请阐述随机森林与袋装法的最主要区别。2.请阐述随机森林与提升法的主要区别。3.请阐述如何通过改变随机森林每次选取的特征个数𝑘来减少过拟合问题。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论