使用Python评估基于决策树的提升算法性能外文翻译资料

 2022-01-07 10:01

使用Python评估基于决策树的提升算法性能

Akhil Kadiyal Ashok Kumar

托莱多大学土木与环境工程系 Toledo,OH 43606;akumar@utnet.utoledo.edu

首次发布: 2018年3月1日 https://doi.org/10.1002/ep.12888

摘要:随着计算机科学和技术领域的快速发展,通过在不同数据集上应用机器学习算法来识别可扩展解决方案的范围得到了增加。本文逐步演示了使用Python应用程序评估用于预测公共汽车内二氧化碳浓度的基于决策树的gbm,lightgbm,xgboost和adaboost算法的性能的方法。本研究中检验的四种提升算法中,在运行性能测量的预测模型评估的基础上,XGBOOST能够提供更好的结果。读者可以采用本文中讨论的方法(包括python代码)来成功解决他们自己的数据科学问题。copy;2018 美国化学工程师协会Environ Prog,37:618-623,2018

关键词:Anaconda; Python; numpy; scikit-learn; spyder; gbm; lightgbm; xgboost; adaboost; data science; indoor air quality; biodiesel; public transportation buses

  1. 背景介绍

数据科学可以被称为跨学科领域,通过应用相关的数学、计算、科学方法有助于从可用的广泛多维信息数据库(结构化,半结构化和非结构化)中提取有意义联系或模式见解[1,2],使用先进的分析平台和编程语言来处理不同规模和类型的大型数据库对于从相关数据中获得有意义的见解至关重要。有助于在商业和研究领域内制定新战略或改进现有战略。本项研究演示了一个这样的应用程序,其中,采用多个Python机器学习库包(scikit-learn,lightgbm和xgboost)来评估Anaconda(windows)平台上四种广泛使用的增强算法的性能。Kadiyala和Kumar 2简要总结了与Python编程语言和Anaconda平台技术方面的发展。

提升算法是一组有监督的机器学习集成算法,旨在减少偏差和方差[3],同时将弱学习算法转换为强学习算法[4],以提高预测准确性。这项研究检验了四种提升算法,即gbm,lightgbm,xgboost,adaboost。gbm框架的工作机制主要基于一个三阶段过程,包括损失函数的优化(例如,回归问题的平方误差,分类问题的对数损失),弱学习算法的使用(例如,决策树) ,以及利用梯度下降程序的附加模型的应用。lightgbm是gbm的变体,它的不同之处在于决策树的分裂采用的是leaf-wise分裂策略,而不是与其他提升算法采用的常规的depth-wise分裂策略。xgboost是gbm的另一种变体,旨在提高与速度和性能相关的提升树算法的计算资源的限制。adaboost的工作基于新的弱学习算法的顺序添加,以确保更加注重捕获更复杂的模式。分配给预测实例的权重与进行预测的复杂程度成比例。

本研究采用了综合结构化室内空气质量(IAQ)数据库,该数据库是对使用生物柴油(BD20)运行的托莱多地区交通管理局(TARTA)公共汽车(ID:506)进行实验性实际案例研究而获得的。完整的设计和项目实施的具体情况详见参考文献[5,6]。本项研究中使用的数据库是由Kadiyala和Kumar在2007年5月8日至2007年6月29日所构建的数据库。[1,2,7 - 15]。表1列出了所有对公共汽车内二氧化碳(CO 2)浓度产生影响的自变量。该数据库总共有1271个完整的每小时数据点。还有其他一些研究使用不同的商业软件应用机器学习的方法预测公共汽车内空气质量[16 - 24]。但是,它们都没有评估提升算法的性能。

表1:对公共汽车内二氧化碳浓度(CO 2)有影响的自变量

Kadiyala和Kumar 2结合统计(回归)和机器学习(决策树)模型的开发,逐步展示了一种全面的方法来进行探索性数据分析和降维。本项研究是之前所做研究的延申,并逐步展示了在Anaconda(Windows)平台上使用使用TARTA IAQ案例,运用scikit-learn,lightgbm和xgboost库以评估四种机器学习集合算法(gbm,lightgbm,xgboost,adaboost)的性能的方法。对于在分析各自数据时缺乏对商业软件的完全访问权限管理人员和研究人员来说,这项研究将被会有价值的。

  1. 安装Anaconda(Python)库文件

根据用户计算机的操作系统和最新版本的Python(版本3.7)在Anaconda网站(https://www.anaconda.com/)上下载并安装相应的最新版Anaconda平台(版本4.4.0)25。安装成功后会提供使用者Anaconda Navigator,这是一个图形用户界面(GUI),可以在不使用命令行命令的情况下促进应用程序的启动,管理工具包和环境。Spyder是六个内置的Anaconda应用程序之一,提供科学的Python开发环境,便于高级代码编辑,交互式测试,调试等功能。用于评估四种基于决策树的提升算法的Python代码是通过使用Spyder程序完成的。便于使用命令行代码管理应用程序和工具包的Anaconda prompt程序(通过Windows“开始”菜单访问)用于安装相关的提升算法库。

在anaconda prompt窗口中输入以下命令。命令1提供了anaconda平台所有已安装的工具包的列表。默认情况下,大多数广泛使用的机器学习任务工具包(python,pandas,scikit-learn,numpy,matplotlib等)已经预先安装,并会在使用命令1后的输出列表中。 Scikit-learn包提供了一种评估gbm和adaboost算法的方法。由于lightgbm和xgboost不是预置的软件包,因此需要从外部资源安装。在anaconda prompt窗口中的输入命令2来安装lightgbm软件包。输入命令3以搜索xgboost包,将会输出为可供下载的对于不同操作系统和python版本的xgboost包与其作者名的列表。然后使用命令4根据作者名安装相应的xgboost包。默认情况下,使用命令3和4就可以成功安装xgboost。但是安装并没有成功,因为在anacoda(python v3.6)环境中“xgboost”安装存在某些兼容性问题。xgboost包的成功安装需要通过一系列步骤,包括(i)安装Git,将xgboost从Github克隆到本地文件夹,(ii)安装MinGW以在本地文件夹中创建编译器, (iii)将编译器路径添加到“Path”系统变量,(iv)子模块的编译,以及(v)xgboost的python工具目录的移动。关于这些步骤的其他细节详见参考文献[26]。xgboost包成功安装后,评估四种增强算法的环境就搭建好了。

gt; conda list hellip;(1)

gt; conda install –c conda‐forge lightgbm hellip;(2)

gt; anaconda search –t conda xgboost hellip;(3)

gt; conda install –c author name xgboost hellip;(4)

  1. 梯度提升算法(GBM)

虽然gbm算法能够处理混合数据类型(具有异构特征),具有良好的预测能力,并且对异常值具有健壮性(具有健壮的损失函数),但由于提升的连续性[27],它们无法并行化。这项研究采用了使用scikit-learn中的Gradient Boosting Regressor 对公共汽车内二氧化碳浓度建模。一些参数,例如loss(损失函数)、learning_rate(每棵树对最终结果的学习影响的大小)、n_estimators(要建模的连续树的数量),subsamole(用于拟合单独的基础学习算法的样本的片段),criterion(测量分割质量的函数),min_samples_split(拆分内部节点所需的最小样本数),min_samples_leaf(叶子节点中所需的最小样本数),min_weight_fraction_leaf(定义叶子节点中所占全部样本的最小加权分数),max_depth(各个回归估计量的最大深度),min_impurity_decrease(结点切片减少不纯度的最小值)。

命令行5,6,7,8和9用于导入gbm预测模型开发相关的工具包。命令10用于从没有标题的Excel工作表中读取12个自变量数据(1271times;12)。命令11用于从没有标题的Excel工作表读取将要预测的目标变量CO 2的数据(1271times;1)。命令12创建一个以12个独立变量为列名的列表。命令13将列表转换为numpy数组格式。命令14用于将数据切分成训练子集和测试子集。请注意,在任何机器学习任务中,测试集都需要独立于训练集。在该研究中,测试集为样本的25%。命令14中的random_state表示用来获取机器学习任务的重复结果的种子数。命令15定义了本研究中为gbm模型开发选择的通用参数。其余参数保留为默认选项。命令16用于使用指定参数初始化gbm开发。命令17用于检查的gbm模型开发的拟合度。命令18打印已开发完的gbm参数。命令19提供测试数据的gbm预测值,该值可用于使用操作性能测量的模型评估。命令20和21分别为已开发完成的二氧化碳浓度GBM模型提供均方误差(MSE)和R- sqquare(R2)统计。开发完成的公共汽车内gbm模型的MSE和R 2值分别为9586.58和0.56。

import numpy as np hellip;(5)

from sklearn.cross_validation import train_test_split hellip;(6)

from sklearn import ensemble hellip;(7)

import matplotlib.pylab as plt hellip;(8)

from sklearn.metrics import mean_squared_error, r2_score hellip;(9)

Xthinsp;=thinsp;np.genfromtxt(“b20yesCO2data.csv”, delimiter=“,”) hellip;(10)

Ythinsp;=thinsp;np.genfromtxt(“b20yesCO2target.csv”, delimiter=“,”) hellip;(11)

names=[lsquo;INDOOR TEMP(F)rsquo;, lsquo;INDOOR RH(%)rsquo;, lsquo;Ambient Temp (F)rsquo;, lsquo;Ambient RHrsquo;, #39;Wind Speedrsquo;, lsquo;HourlyPreciprsquo;, lsquo;Passengersrsquo;, lsquo;Carsrsquo;, lsquo;Trucksrsquo;, lsquo;Run/Closersquo;, lsquo;Idle/Openrsquo;, lsquo;Idle/Closersquo;] hellip;(12)

feature_namesthinsp;=thinsp;np.asarray(names) hellip;(13)

X_train, X_test, Y_train, Y_testthinsp;=thinsp;train_test_split(X, Y, test_sizethinsp;=thinsp;0.25, random_statethinsp;=thinsp;7850) hellip;(14)

paramsthinsp;=thinsp;{lsquo;n_estimatorsrsquo;: 500, lsquo;max_depthrsquo;: 5, lsquo;min_samples_splitrsquo;: 2, lsquo;learning_ratersquo;: 0.01, lsquo;lossrsquo;: lsquo;lsrsquo;} hellip;(15)

gbmthinsp;=thinsp;ensemble.GradientBoostingRegressor (**params) hellip;(16)

gbm.fit(X_train, Y_train) hellip;(17)

print(gbm) hellip;(18)

Y_predthinsp;=thinsp;gbm.predict(X_test) hellip;(19)

print(“MSE on test set: %.4f” % mean_squared_ error(Y_test, Y_pred)) hellip;(20)

print(“R‐Square on the test set: %.4f” % r2_ score(Y_test, Y_pred)) hellip;(21)

命令22创建一个浮点型numpy数组。命令23确定了每次迭代的损失函数。命令24用于指代绘图。命令25表示一行中将有两个子图,当前图是第一个图。命令26指定图的标题。命令27和28分别生成训练集和测试集偏差的图。命令29,30,31分别指定图例位置,x轴标签和y轴标签。

test scorethinsp;=thinsp;np.zeros((params[lsquo;n_estimatorsrsquo;],), dtypethinsp;=thinsp;np.float64) hellip;(22)

for i, Y_pred in enumerate(gbm.staged_predict(X_test)): test score[i]thinsp;=thinsp;gbm.loss_(Y_test, Y_pred) hellip;(23)

plt.figure(figsize=(12, 6)) hellip;(24)

plt.subplot(1, 2, 1) hellip;(25)

plt.title(lsquo;Deviancersquo;) hellip;(26)

plt.plot(np.arange(params[lsquo;n_estimatorsrsquo;])thinsp; thinsp;1, gbm.train_score_, lsquo;b‐lsquo;, label=#39;Training Set Deviancersquo;) hellip;(27)

plt.

全文共17123字,剩余内容已隐藏,支付完成后下载完整资料


英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[1931]

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。