決策樹是日常建模中使用最普遍的模型之一,在SAS中,除了可以通過EM模塊建立決策樹模型外,還可以通過SAS代碼實現。決策樹模型在SAS系統中對應的過程為Proc split或Proc hpsplit,兩者基本一樣,后者效率更高,但在SAS help都查不到這兩個過程步,本文參考相關資料主要介紹Proc split過程。其語法結構為:
Proc split options;
Code options;
Decision decdata options;
Describe options;
Freq variable;
In|input variables/options;
Priors probabilities;
Prune node-identifier;
Score options;
Target variable;
1)在proc split中,data=指定分析數據集; outimportance=指定輸出數據集,包括自變量的重要性;outleaf=指定輸出數據集,包括各葉節點的統計指標;outmatrix=指定數據集,包括描述性統計指標;outseq=指定輸出數據集,包括子樹的統計指標;outtree=指定輸出數據集,包括描述樹的統計指標;leafsize=指定一個葉節點包含的最少觀測數;maxbranch=指定一個節點的最大分枝數;maxdepth=指定最大的數深度;splitsize=指定一個節點分割的最小觀測數;subtree=指定選擇子樹的方法。
proc split data=other.train outimportance=test_1 outleaf=test_2 outmatrix=test_3 outseq=test_4 outtree=test_5;
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 split data=other.train leafsize=50 maxbranch=3 maxdepth=6assess=impurity criterion=chisq;
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 file='c:\users\edcba123\desktop\rule_2.txt';
Score data=other.train out=test;
Priors proportional;
Run;