原创机器学习在SAS中运行随机森林数据分析报告论文附代码数据.docx
- 文档编号:4955032
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:11
- 大小:389.61KB
原创机器学习在SAS中运行随机森林数据分析报告论文附代码数据.docx
《原创机器学习在SAS中运行随机森林数据分析报告论文附代码数据.docx》由会员分享,可在线阅读,更多相关《原创机器学习在SAS中运行随机森林数据分析报告论文附代码数据.docx(11页珍藏版)》请在冰豆网上搜索。
原创机器学习在SAS中运行随机森林数据分析报告论文附代码数据
机器学习:
在SAS中运行随机森林数据分析报告
为了在SAS中运行随机森林,我们必须使用PROCHPFOREST指定目标变量,并概述天气变量是“类别”还是“定量”。
实例1
为了进行此分析,我们使用了目标(Repsone变量),该目标是分类的(SAS语言中标称的),如下面的图像代码中所描述的黄色和红色:
运行代码后,我们得到了一系列表格,这些表格将详细分析数据。
例如,模型信息让我们知道,随机选择了3个变量来测试每个节点或每个树中可能的分割(黄色)。
我们还可以看到,运行的最大树数为100,如蓝色下划线所示。
该模型信息还告诉我们,“袋中部分”设置为默认值的60%,使OBB的比率为40%。
请注意,“修剪分数”默认设置为“0”,因为将其最接近设置为“1”,然后树木将具有的最低生长水平。
换句话说是不修剪。
HPFOREST自动仅使用在任何观察值下均没有缺失记录的有效变量。
但是,我们还可以看到,在研究样本的213个国家中,有213个被利用。
这是因为我已经利用了一组没有缺失值的县。
接下来,我们可以看到模型生成带有“基线拟合统计量”的表。
就本研究中的数据而言,我们可以看到该模型识别出38%的误分类,换句话说是62%的准确分类。
这表示大部分样本已在每个随机选择的样本中正确分类。
在下表中分析森林的适合度时,我们可以看到误分类率已经达到了最低点,树号为100.这表明在OOB样本中使用该模型进行测试时,误分类率仅在22%。
最后,我们看到SASPOCHPFOREST为我们提供了“损失减少变量的重要性”表。
下表概述了每个变量如何有助于模型的可预测性的重要性等级。
如下图所示,酒精变量排名最高。
现在,以下内容将帮助我们理解如何阅读表格:
∙规则数:
告诉我们使用变量的拆分规则数
∙每个数据计算两次:
∙Gini:
这是在“袋装”阶段计算的数据
∙GiniOOB:
这是在“OutofBag”阶段中计算出的数据
∙拟合统计告诉我们,OOB数据的偏差较小,因此,数据通过OOBGini度量进行排序
∙就预测自杀率高于正常水平而言,这些变量被列为高度重要性(顶部)和最低重要性(底部)。
∙从下表中我们可以看出,最容易预测模型自杀率高于正常模型的变量是酒精消费量,就业率和城市率。
通过上面的练习,我们可以看到随机森林是一种数据挖掘算法,可以选择重要的解释变量,这些变量可以用于确定响应变量(目标变量)的结果,无论是分类变量还是定量变量。
此外,此练习还允许我们结合使用分类变量和定量变量。
总之,这个森林让我们知道哪些变量很重要,但彼此之间没有关系。
实例2:
缺失值和估算值
本示例使用SAS样本库中的房屋净值数据来说明使用缺失值和估算值之间的区别。
数据丢失的非随机模式可以帮助预测目标。
当缺失值由训练数据中的推定值代替时,PROCHPFOREST无法使用此模式。
下面的语句通过两次运行PROCHPFOREST来说明这一点:
一次在原始数据上运行,一次在数据缺失的标称值已被变量的模式替换而缺失的间隔值已被变量的均值替换后的数据。
该Sampsio.Hmeq数据集包含虚拟抵押数据,其中每个案例代表房屋抵押贷款的申请人。
所有申请人都有现有抵押。
BAD对于最终违约或严重违约的申请人,二进制目标等于1。
九个间隔输入可用于建模。
JOB并且REASON是唯一的标称输入。
对于模式JOB和REASON分别是OTHER和DEBTCON。
prochpimputedata=sampsio.hmeqout=imout;
inputmortduevalueyojclageninqclnodebtincderogdelinq;
imputemortduevalueyojclageninqclnodebtincderogdelinq/method=mean;
run;
datajob_reason;
setsampsio.hmeq;
ifjob=''thenjob="Other";
ifreason=''thenreason="DebtCon";
run;
dataimout;
mergeimoutjob_reason;
run;
prochpforestdata=imoutvars_to_try=all;
inputim:
/level=interval;
inputreasonjob/level=nominal;
targetbad/level=binary;
odsoutput
VariableImportance=imvi
FitStatistics=imfit(rename=(Ntrees=TreesMiscall=ImMiscallMiscoob=ImMiscoob));
run;
prochpforestdata=sampsio.hmeqvars_to_try=all;
inputmortduevalueyojclageninqclnodebtincderogdelinq/level=interval;
inputreasonjob/level=nominal;
targetbad/level=binary;
odsoutput
Baseline=bs
VariableImportance=vi
FitStatistics=fit(rename=(Ntrees=Trees));
run;
procsqlnoprint;
selectvalueinto:
MiscBaselinetrimmedfrombs
whereStatistic='MisclassificationRate';
quit;
datafitstats;
mergeimfitfit;
MiscBaseline=&MiscBaseline;
labelTrees='NumberofTrees';
labelMiscAll='FullData';
labelMiscoob='OOB';
labelImMiscAll='FullData-Impute';
labelImMiscoob='OOB-Impute';
labelMiscbaseline='Baseline';
run;
procsgplotdata=fitstats;
title"MisclassificationRateWithandWithoutImputedValues";
seriesx=treesy=Miscbaseline/lineattrs=(Pattern=SolidColor=black);
seriesx=Treesy=MiscAll/lineattrs=(Pattern=SolidThickness=2);
seriesx=Treesy=Miscoob/lineattrs=(Pattern=ShortDashThickness=2);
seriesx=Treesy=ImMiscAll/lineattrs=(Pattern=ShortDashThickness=2);
seriesx=Treesy=ImMiscoob/lineattrs=(Pattern=MediumDashDotDotThickness=2);
yaxislabel='MisclassificationRate';
run;
datavi;
setvi;
keepVariableNRulesGiniGiniOOBRank;
Rank=_n_;
run;
procsortdata=vi;
byVariable;
run;
dataimvi;
setimvi;
keepVariableRankImputedNRulesGiniGiniOOB;
ifsubstr(Variable,1,3)='IM_'thenVariable=substr(Variable,4);
RankImputed=_n_;
labelRankImputed="Rank(Imput)";
renameNRules=RulesImputed;
labelNRules="Rules(Imputed)";
renameGini=GiniImputed;
labelGini="Gini(Imputed)";
renameGiniOOB=GiniOOBImputed;
labelGiniOOB="OOBGiniReduction(Impute)";
run;
procsortdata=imvi;
byVariable;
run;
datavi;
mergeviimvi;
byVariable;
renameNRules=Rules;
run;
procsortdata=vi;
byrank;
run;
datat1(keep=VariableRulesRulesImputedRankImputed)
t2(keep=VariableGiniGiniImputedGiniOOBGiniOOBImputed);
setvi;
run;
procprintdata=t1;
run;
procprintdata=t2;
run;
datadebtinc_miss;
setsampsio.hmeq;
ifdebtinc=.thendebtinc_is_missing='MISSING';
elsedebtinc_is_missing='NOTMISSING';
run;
procfreqdata=debtinc_miss;
tablesdebtinc_is_missing*bad/nocol;
run;
输出7.5.1显示有或没有估算缺失值的错误分类率和袋外错误分类率。
没有任何模型,错误分类率等于0.1995。
用推算值训练的模型的出袋率不是更好。
原始数据的出库率要好得多,等于基线率的一半。
输出7.5.1:
估算缺失值的影响
输出7.5.2显示每个模型使用每个变量的次数。
“规则”列显示使用原始数据的次数;RankImputed列显示使用估算数据的次数。
“规则”列中的数字与“规则插入”列中的数字相差很大,这表明缺少值的变量比具有估算值的变量具有更多区别信息。
变量的顺序是使用原始数据的模型中重要性顺序。
RankImpute列显示使用插补值的模型的重要性顺序。
DEBTINC当使用原始数据时,是最重要的变量,而在使用估算值时,是最重要的变量。
插补会极大地改变这些数据的特性。
输出7.5.2:
可变重要性排名
有和没有推定值的分类错误率
Obs
Variable
Rules
RulesImputed
RankImputed
1
DEBTINC
2194
8540
7
2
DELINQ
1715
5480
4
3
DEROG
1909
3723
3
4
REASON
1078
1473
1
5
JOB
1671
2228
2
6
CLAGE
3816
7311
9
7
NINQ
3202
6003
5
8
YOJ
3492
6925
6
9
CLNO
4282
7657
8
10
MORTDUE
4238
8840
10
11
VALUE
8611
17885
11
输出7.5.3显示了每个变量的重要性的袋内和袋外Gini度量。
PROCHPFOREST仅使用树中的训练数据来计算袋中度量,并且仅将树中的袋中数据用于袋中度量。
自付费用量度是对变量对预测新观测值的贡献的更好估计。
负值表示该变量平均会使预测变差。
GiniOOB列显示它的DEBTINC重要性是下一个变量的两倍。
但是,当估算缺失值时,GiniOOB的略为负DEBTINC,表明DEBTINC使预测稍差。
输出7.5.3:
可变重要性排名
有和没有推定值的分类错误率
MisclassificationRateWithandWithoutImputedValues
Obs
Variable
Gini
GiniOOB
GiniImputed
GiniOOBImputed
1
DEBTINC
0.127531
0.11252
0.041793
-0.02517
2
DELINQ
0.020504
0.01246
0.019190
-0.01290
3
DEROG
0.012098
0.00142
0.012566
-0.00921
4
REASON
0.002568
-0.00112
0.005097
0.00032
5
JOB
0.005247
-0.00120
0.009309
-0.00121
6
CLAGE
0.029162
-0.00157
0.034663
-0.02860
7
NINQ
0.014559
-0.00521
0.019456
-0.01763
8
YOJ
0.018500
-0.00802
0.028476
-0.02356
9
CLNO
0.019504
-0.00845
0.030647
-0.02737
10
MORTDUE
0.021067
-0.01055
0.036690
-0.03043
11
VALUE
0.042275
-0.01187
0.065912
-0.05417
输出7.5.4显示DEBTINC目标的每个值缺失或不缺失的观察计数BAD。
DEBTINC在21%的观察中缺失。
如果DEBTINC缺失,则BAD等于1 的观察值的比例(表明申请者拖欠了)为62%。
如果DEBTINC不缺席,那么这个比例仅为8.6%。
在此示例DEBTINC中BAD,缺少的值具有很高的预测性。
估算缺失值会破坏预测能力。
输出7.5.4:
DEBTINC_IS_MISSING的BAD应急表
有和没有推定值的分类错误率
MisclassificationRateWithandWithoutImputedValues
TheFREQProcedure
Frequency
Percent
RowPct
Table of debtinc_is_missing by BAD
debtinc_is_missing
BAD
0
1
Total
MISSING
481
8.07
37.96
786
13.19
62.04
1267
21.26
NOTMISSING
4290
71.98
91.41
403
6.76
8.59
4693
78.74
Total
4771
80.05
1189
19.95
5960
100.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原创 机器 学习 SAS 运行 随机 森林 数据 分析 报告 论文 代码