公司网站建站公司,厦门排名推广,如何给自己做网站,连云港做网站哪家好决策树(Decision Tree)常用于研究类别归属和预测关系的模型#xff0c;比如是否抽烟、是否喝酒、年龄、体重等4项个人特征可能会影响到‘是否患癌症’#xff0c;上述4项个人特征称作‘特征’#xff0c;也即自变量#xff08;影响因素X#xff09;#xff0c;‘是否患癌…决策树(Decision Tree)常用于研究类别归属和预测关系的模型比如是否抽烟、是否喝酒、年龄、体重等4项个人特征可能会影响到‘是否患癌症’上述4项个人特征称作‘特征’也即自变量影响因素X‘是否患癌症’称为‘标签’也即因变量被影响项Y。决策树模型时其可首先对年龄进行划分比如以70岁为界年龄大于70岁时可能更容易归类为‘患癌症’接着对体重进行划分比如大于50公斤为界大于50公斤时更可能划分为‘患癌症’依次循环下去特征之间的逻辑组合后比如年龄大于70岁体重大于50公斤会对应到是否患癌症这一标签上。
决策树是一种预测模型为让其有着良好的预测能力因此通常需要将数据分为两组分别是训练数据和测试数据。训练数据用于建立模型使用即建立特征组合与标签之间的对应关系得到这样的对应关系后模型后然后使用测试数据用来验证当前模型的优劣。通常情况下训练数据和测试数据的比例通常为9:1,8:2,7:3,6:4或者5:5比如9:1时指所有数据中90%作为训练模型使用余下10%作为测试模型好坏使用。具体比例情况似研究数据量而定无固定标准如果研究数据较少比如仅几百条数据可考虑将70%或者60%甚至50%的数据用于训练余下数据用于测试。上述中包括模型构建和模型预测两项如果训练数据得到的模型优秀此时可考虑将其进行保存并且部署出去使用此为计算机工程中应用SPSSAU暂不提供除此之外当决策树模型构建完成后可进行预测比如新来一个病人他是否会患癌症及患癌症的可能性有多高。
决策树模型可用于特征质量判断比如上述是否抽烟、是否喝酒、年龄、体重等4项该四项对于‘是否患癌症’的预测作用重要性大小可以进行排名用于筛选出最有用的特征项。
决策树模型的构建时需要对参数进行设置其目的在于构建良好的模型良好模型的标准通常为训练数据得到的模型评估结果良好并且测试数据时评估结果良好。需要特别注意一点是训练数据模型评估结果可能很好甚至准确率等各项指标为100%但是在测试数据上评估结果确很糟糕此种情况称为‘过拟合’。因而在实际研究数据中需要特别注意此种情况。模型的构建时通常情况下参数设置越复杂其会带来训练数据的模型评估结果越好但测试效果却很糟糕因而在决策树构建时需要特别注意参数的相关设置接下来会使用案例数据进行相关说明。 1 背景
使用经典的‘鸢尾花分类数据集’进行案例演示其数据集为150个样本包括4个特征属性4个自变量X分别是花萼长度花萼宽度花瓣长度花瓣宽度标签为鸢尾花卉类别共包括3个类别分别是刚毛鸢尾花、变色鸢尾花和弗吉尼亚鸢尾花下称A、B、C三类。
2 理论
决策树模型的原理上其第1步是找出最优的特征和其分割点比如影响是否患癌症的特征最可能是年龄并且分割点可能是70岁小于70岁可能归为‘不患癌症’70岁及以上可能归为‘患癌症’。此第1步时会涉及到2个专业名词分别是‘节点分裂标准’和‘节点划分方式’。第2步是找出次优的特征和其分割点继续进行拆分。一直循环下去。
关于决策树模型时通常涉及到以下参数值如下 节点分裂标准其指模型找到特征优先顺序的计算方式共有两种分别是gini系数和entropy系数二者仅为计算标准的区别功能完全一致一般情况下使用gini系数。
特别提示
节点分裂标准的数学原理为如果按某特征及其分割点后比如年龄这个特征并且70岁这个分割点后分成两组时一组为患癌症一组不患癌症如果‘分的特别开’特别纯混杂性特别小比如一组为患癌症确实全部都患问卷一组不患癌症确实都不患癌症那么这个特征就是优秀的节点分裂标准正是用于衡量特征的优劣。
节点划分方式包括两种一是best法即完全按照节点分裂标准进行计算另一种是random随机法随机法会减少过拟合现象但通常默认使用best法。
节点分列最小样本比如大于等于70岁划分为一组如果发现70岁及以上时患癌症的样本量特别小说明不能继续划分分组一般情况下该值应该越大越好过小的话容易带来过拟合现象。
叶节点最小样本量比如大于等于70岁划分为一组那么这个组别时最小的样本量需要多少SPSSAU默认是2一般情况下该值越大越可能减少过拟合现象该值越小越容易导致过拟合。
树最大深度比如上述先按年龄划分接着小于70岁时再按次优特征比如体重进行划分接着再按次次优特征比如是否吸烟进行划分此处则出现划分的层次即权最大深度该值可以自行指定当层次越多树最大深度时此时模型越为复杂拟合效果通常更好但也可能带来过拟合现象因而可结合特征数量及输出等调整该参数值确保模型相对简单但拟合效果良好时。
3 操作
本例子操作如下 训练集比例默认选择为:0.8即80%150*0.8120个样本进行训练决策树模型余下20%即30个样本(测试数据)用于模型的验证。需要注意的是多数情况下会首先对数据进行标准化处理处理方式一般使用为正态标准化此处理目的是让数据保持一致性量纲。当然也可使用其它的量纲方式比如区间化归一化等。
接着对参数设置如下 节点分裂标准默认为gini系数该参数值只是计算分裂标准的方式不需要设置节点划分方式为best法即为结合特征的优劣顺序进行分类划分如果为了设置参数对比需要考虑建议可对该参数值进行切换为random即随机特征的优先顺序用于对比模型训练效果。
节点分列最小样本量默认为2即可叶节点最小样本量默认为1即可。需要注意的是如果数据量较大时建议将该2个参数值尽量大以减少过拟合现象但该2个参数值越大时通常训练模型的拟合效果越差。具体应该以测试数据的拟合效果为准因为训练模型容易出现过拟合现象。树最大深度这个参数时其代表决策树最多有几层的意思该参数值设置越大时训练模型拟合效果通常越好但可能带来过拟合情况本案例出于演示需求先设置为4层。另提示树最大深度会受到节点分裂最小样本量、叶节点最小样本量的影响并非设置为4它一定就会为4。
4 SPSSAU输出结果
SPSSAU共输出7项结果依次为基本信息汇总决策树结构图特征模型图和特征权重图训练集或测试集模型评估结果测试集结果混淆矩阵模型汇总表和模型代码如下说明 上述表格中决策树结构图用于展示决策树构建的具体过程通过决策树结构图可查看到模型构建的具体步骤特征模型图和特征权重图可用于查看特征的相对重要性对比情况模型评估结果包括训练集或测试集其用于对模型的拟合效果判断尤其是测试集的拟合效果非常重要因而SPSSAU单独提供测试集结果混淆矩阵用于进一步查看测试集数据的效果情况模型汇总表格将各类参数值进行汇总并且在最后SPSSAU附录核心的决策树构建代码需要提示的是SPSSAU机器学习算法模块直接调用sklean包进行构建因而研究者可使用核心代码进行复现使用等。
5文字分析 决策树结构图中第1个矩阵称为‘根节点’下面为子节点不能再细分的为‘叶子节点’。树最大深度当前设置为4上图中除‘根节点’外为4层。针对每个节点根节点或叶子节点其包括四项分别是‘划分特征及分割点’gini系数值当前节点的样本量不同类别的样本量。如下表格说明 上述决策树结构图时第1个点使用X[2]接着使用X[3]接着使用X[1]X[4]接着使用X[2]等括号里面数字表示放入模型的第几个X。那么这几个X的综合重要性情况如何可查看特征权重图如下 花萼宽的重要性度量值为0.5726其对模型的作用力度最大其次是花瓣长为0.3555。相对来看花萼长和花瓣宽这两项的重要性相对较弱如果是进行特征筛选可考虑只留下最重要的两项即可。
解读完决策树结构图和特征重要性图后已经理解决策树运行原理其实质上是不断地对各个特征进行循环划分下去根深度越深时其划分出来后通常拟合效果越好。但训练数据拟合效果好并不一定代表测试数据上也好训练数据拟合效果很容易‘造假’即过拟合现象。因而接下来对模型拟合效果进行说明。 上表格中分别针对训练集和测试集提供四个评估指标分别是精确率、召回率、f1-scrore、准确率以及平均指标和样本量指标等如下表格说明 一般来说f1-score指标值最适合因为其综合精确率和召回率两个指标并且可查看其平均值综合指标本案例为0.992接近于1非常高但训练数据指标拟合可以‘造假’即可能有过拟合现象最准确的是查看‘测试集数据’时的指标情况本案例时测试数据占比是20%即30个样本其平均综合f1-score值 为0.906可以简单理解为模型拟合优度为90.6%依旧比较高即使小于训练数据的0.992整体说明当前模型拟合良好即可用于特征筛选数据进一步预测使用等。
另需要提示当训练数据的拟合效果远好于测试数据时通常则为‘过拟合现象’但训练数据的拟合效果不好但测试数据拟合效果好时此种情况也不能使用可能仅仅是偶然现象。因而可使用的模型应该为“训练数据和测试数据上均有良好的拟合效果并且差别应该较小”。
进一步地可查看测试数据的‘混淆矩阵’即模型预测和事实情况的交叉集合如下图 ‘混淆矩阵’时右下三角对角线的值越大越好其表示预测值和真实值完全一致。上图中A类共11个其中10个预测准确还有1个被预测成C类 B类共13个11个预测准确但2个被预测为C类C类时全部预测准确。另外还可通过‘混淆矩阵’自行计算精确率、召回率和准确率等指标。 最后针对模型汇总表其展示构建决策树的各项参数设置包括针对数据进行标准化正态处理参数值为norm训练集占比节点分裂标准等指标值。并且将测试集合上的模型评估结果汇总在一个表格里面。最后SPSSAU输出使用python中slearn包构建本次决策树模型的核心代码如下
model DecisionTreeClassifier(criteriongini, max_depth4, min_samples_leaf1, min_samples_split2, splitterbest)
model.fit(x_train, y_train)
6 剖析
涉及以下几个关键点分别如下
决策树模型时是否需要标准化处理? 一般建议是进行标准化处理通常使用正态标准化处理方式即可。训练集比例应该选择多少? 如果数据量很大比如1万那么训练集比例可以较高比如0.9如果数据量较小此时训练集比例选择较小预留出较多数据进行测试即可。保存预测值 保存预测值时SPSSAU会新生成一个标题用于存储模型预测的类别信息其数字的意义与模型中标签项(因变量Y)的数字保持一致意义。参数如何设置? 如果要进行参数设置建议针对‘节点划分方式’切换best和random节点分列最小样本量往上调叶节点最小样本量往上调树最大深度可考虑设置相对较小值。设置后分别将训练拟合效果测试拟合效果进行汇总和对比调整参数找出相对最优模型。另建议保障训练集和测试集数据的f1-score值在0.9以上。SPSSAU中决策树具体算法是什么? 决策树的具体算法通常包括ID3, C4.5, C5.0 和CART等SPSSAU当前借助sklearn包进行决策树其算法为CART优化版具体可点击查看。https://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cartSPSSAU进行决策树模型构建时自变量X特征项中包括定类数据如何处理? 决策树模型时本身并不单独针对定类数据处理如果有定类数据建议对其哑变量处理后放入关于哑变量可点击查看。http://spssau.com/front/spssau/helps/otherdocuments/dummy.htmlSPSSAU中决策树剪枝优化方式是什么? 决策树剪枝主要有两种方式分别是前置剪枝和后置剪枝当前SPSSAU只提供前置剪枝方式。SPSSAU中决策树模型合格的判断标准是什么? 机器学习模型中通常均为先使用训练数据训练模型然后使用测试数据测试模型效果。通常判断标准为训练模型具有良好的拟合效果同时测试模型也有良好的拟合效果。机器学习模型中很容易出现‘过拟合’现象即假的好结果因而一定需要重点关注测试数据的拟合效果。针对单一模型可通过变换参数调优与此同时可使用多种机器学习模型比如使用随机森林等综合对比选择最优模型。SPSSAU进行决策树时提示数据质量异常
当前决策树模型支持分类任务需要确保标签项因变量Y为定类数据如果为定量连续数据也或者样本量较少或者非会员仅分析前100个样本时可能出现无法计算因而提示数据质量异常。