决策树是日常建模中使用最普遍的模型之一,在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;

SAS-决策树模型的更多相关文章

  1. 决策树模型 ID3/C4.5/CART算法比较

    决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是“完 ...

  2. 决策树模型比较:C4.5,CART,CHAID,QUEST

    (1)C4.5算法的特点为: 输入变量(自变量):为分类型变量或连续型变量. 输出变量(目标变量):为分类型变量. 连续变量处理:N等分离散化. 树分枝类型:多分枝. 分裂指标:信息增益比率gain ...

  3. chapter02 三种决策树模型:单一决策树、随机森林、GBDT(梯度提升决策树) 预测泰坦尼克号乘客生还情况

    单一标准的决策树:会根每维特征对预测结果的影响程度进行排序,进而决定不同特征从上至下构建分类节点的顺序.Random Forest Classifier:使用相同的训练样本同时搭建多个独立的分类模型, ...

  4. ML——决策树模型

    决策树模型 优点:高效简单.易于理解,可以处理不相关特征. 缺点:容易过拟合,训练集在特征上是完备的 决策树过程:特征选择.划分数据集.构建决策树.决策树剪枝 决策树选择最优的划分特征,将数据集按照最 ...

  5. 用决策树模型求解回归问题(regression tree)

    How do decision trees for regression work? 决策树模型既可以求解分类问题(对应的就是 classification tree),也即对应的目标值是类别型数据, ...

  6. 机器学习之使用sklearn构造决策树模型

    一.任务基础 导入所需要的库 import matplotlib.pyplot as plt import pandas as pd %matplotlib inline 加载sklearn内置数据集 ...

  7. Python 实现基于信息熵的 ID3 算法决策树模型

    版本说明 Python version: 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:21:07) [MSC v.1900 32 bit (Int ...

  8. R_针对churn数据用id3、cart、C4.5和C5.0创建决策树模型进行判断哪种模型更合适

    data(churn)导入自带的训练集churnTrain和测试集churnTest 用id3.cart.C4.5和C5.0创建决策树模型,并用交叉矩阵评估模型,针对churn数据,哪种模型更合适 决 ...

  9. 吴裕雄 python 机器学习——分类决策树模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...

  10. 吴裕雄 python 机器学习——回归决策树模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...

随机推荐

  1. ElasticSearch CPU和内存占用高的优化记录

    公司最近使用ElasticSearch作为数据报表汇总引擎.上线三个月累计数据800万,但是今天突然大面积出现查询超时,上服务器查看服务运行情况,发现cpu使用率高达300% mem 使用率也到了90 ...

  2. 转 Mac 下自带的中文输入法不显示汉字提示问题

    原文 https://blog.csdn.net/moxi_wang/article/details/50721326 当时聊天的时候不知道那个手指头按错了什么键 导致Mac自带的中文输入法不能提示显 ...

  3. 根据某字段将其他字段进行拼接的两种方法(SYS_CONNECT_BY_PATH及wm_concat)

    秘书姐姐说想知道她发起的所有流程,现在都到谁审批了.由于一条流程当前审批人可能有多个,故需根据单据编号(djbh)将审批人拼接到一个字段中. 说明: wfn审批历史记录表,djbh 单据编号,pk_c ...

  4. hello.java分析

    如下图源码所示: 该段代码声明了一个entity实体类,该类有一个变量name,对该变量写了对应的get和set方法.类中还有一个空的构造方法hello(). @RequestScoped用于指定一个 ...

  5. 【笔记】 laravel 的路由

    路由简介 : 请求对应着路由,将用户的请求转发给相应的程序进行处理 建立URL与程序之间的映射 Laravel中的请求类型:get.post.put.patch.delete   Route::get ...

  6. .net第四章内容总结

    4.2)   mdi 多文档界面 创建子窗体的childForm.text书上的做法childformnumber不存在 于是我自定义一个childforNumber起始为1: 在窗体下面显示所有已经 ...

  7. 如何让input框显示在一行?

    案例: <input type="float:left" value="aaaa"> <input type="float:left ...

  8. 经典问题----最短路径(Floyd弗洛伊德算法)(HDU2066)

    问题简介: 给定T条路,S个起点,D个终点,求最短的起点到终点的距离. 思路简介: 弗洛伊德算法即先以a作为中转点,再以a.b作为中转点,直到所有的点都做过中转点,求得所有点到其他点的最短路径,Flo ...

  9. frost_vex_01

    int inc = 0; //整数inc等于0 while(inc < 6){ //inc在小于6的范围内递增 if(rand(@ptnum + inc + ch("seed" ...

  10. Linux----------mysql基础

    目录 一.数据库介绍 1.1 数据库的优点 1.2 数据库的基本功能 1.3数据库的类型 1.4 关系型数据的组成 1.5 关系型数据库的常用组件 1.6 SQL语句 1.7 mysql命令使用 1. ...