利用SAS代码实现决策树模型
(2017-04-10 16:58:01)
Proc split
Code
Decision decdata
Describe
Freq
In|input
Priors
Prune
Score
Target
1)在proc
split中,data=指定分析数据集;
proc
in arpu mou gprs;
target liwang_flag;
run;
assess=指定模型评估方法,包括impurity、lift、profit、statistic。
criterion=指定决策树分割标准,针对二分类变量和分类变量,Chisq表示pearson卡方,probchisq表示pearson卡方的p值,为默认,entropy表示信息增益,eratio表示信息增益率,gini表示通过gini系数分割;针对定距、定比变量,variance,probe表示F-test的p值,为默认,F表F统计量。其中,ID3算法使用信息增益作为属性分割标准,C4.5、C5.0算法使用信息增益率作为属性分割标准,CART算法使用gini系数作为属性分割标准,CHAID算法使用卡方和F检验作为属性分割标准。
2)code生成data步代码,用来给观测计分,file=指定代码输出文件。
3)decision。
4)describe生成决策树规则的描述,file=指定描述输出文件。
5)freq表示给自变量赋予频数。
6)in或input指定自变量,可以申明多次,在“/”后的level=代表输入变量的类型,interval、ordinal、nominal,默认为interval,当自变量有多个类型时,可以申明多个input,然后后面用level指定变量类型。
7)priors指训练集中目标类的先验概率,与decision互斥,proportional(pro)指各类在训练集中的占比,或直接列出各类占比,如priors‘0’=0.6‘1’=0.4。
8)prune表示剪枝,与intree=和indmsplit=选项合用。
9)score进行计分,data=指定输入数据集,out=指定输出数据集。
10)target指定因变量,在“/”后,level=指定因变量类型,包括binary、nominal、ordinal、interval,默认为interval。
Proc
Input arpu mou gprs/level=interval;
Input product_flag/level=nominal;
Target liwang_flag/level=binary;
Code file='c:\users\edcba123\desktop\rule_1.txt';
Describe
Score data=other.train out=test;
Priors proportional;
Run;