当前位置:文档之家› R语言-决策树算法知识讲解

R语言-决策树算法知识讲解

R语言-决策树算法知识讲解
R语言-决策树算法知识讲解

R语言-决策树算法

决策树算法

决策树定义

首先,我们来谈谈什么是决策树。我们还是以鸢尾花为例子来说明这个问题。

观察上图,我们判决鸢尾花的思考过程可以这么来描述:花瓣的长度小于

2.4cm的是setosa(图中绿色的分类),长度大于1cm的呢?我们通过宽度来判别,宽度小于1.8cm的是versicolor(图中红色的分类),其余的就是

virginica(图中黑色的分类)

我们用图形来形象的展示我们的思考过程便得到了这么一棵决策树:

这种从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。

前面我们介绍的k-近邻算法也可以完成很多分类任务,但是他的缺点就是含义不清,说不清数据的内在逻辑,而决策树则很好地解决了这个问题,他十分好理解。从存储的角度来说,决策树解放了存储训练集的空间,毕竟与一棵树的存储空间相比,训练集的存储需求空间太大了。

决策树的构建

一、KD3的想法与实现

下面我们就要来解决一个很重要的问题:如何构造一棵决策树?这涉及十分有趣的细节。

先说说构造的基本步骤,一般来说,决策树的构造主要由两个阶段组成:第一阶段,生成树阶段。选取部分受训数据建立决策树,决策树是按广度优先建立直到每个叶节点包括相同的类标记为止。第二阶段,决策树修剪阶段。用剩余数据检验决策树,如果所建立的决策树不能正确回答所研究的问题,我们要对决策树进行修剪直到建立一棵正确的决策树。这样在决策树每个内部节点处进行属性值的比较,在叶节点得到结论。从根节点到叶节点的一条路径就对应着一条规则,整棵决策树就对应着一组表达式规则。

问题:我们如何确定起决定作用的划分变量。

我还是用鸢尾花的例子来说这个问题思考的必要性。使用不同的思考方式,我们不难发现下面的决策树也是可以把鸢尾花分成3类的。

为了找到决定性特征,划分出最佳结果,我们必须认真评估每个特征。通常划分的办法为信息增益和基尼不纯指数,对应的算法为C4.5和CART。

关于信息增益和熵的定义烦请参阅百度百科,这里不再赘述。

直接给出计算熵与信息增益的R代码:

1、计算给定数据集的熵

calcent<-function(data){

nument<-length(data[,1])

key<-rep("a",nument)

for(i in 1:nument)

key[i]<-data[i,length(data)]

ent<-0

prob<-table(key)/nument

for(i in 1:length(prob))

ent=ent-prob[i]*log(prob[i],2)

return(ent)

}

我们这里把最后一列作为衡量熵的指标,例如数据集mudat(自己定义的)

> mudat

x y z

1 1 1 y

2 1 1 y

3 1 0 n

4 0 1 n

5 0 1 n

计算熵

> calcent(mudat)

1

0.9709506

熵越高,混合的数据也越多。得到熵之后,我们就可以按照获取最大信息增益的方法划分数据集

2、按照给定特征划分数据集

为了简单起见,我们仅考虑标称数据(对于非标称数据,我们采用划分的办法把它们化成标称的即可)。

R代码:

split<-function(data,variable,value){

result<-data.frame()

for(i in 1:length(data[,1])){

if(data[i,variable]==value)

result<-rbind(result,data[i,-variable])

}

return(result)

}

这里要求输入的变量为:数据集,划分特征变量的序号,划分值。我们以前面定义的mudat为例,以“X”作为划分变量,划分得到的数据集为:

> split(mudat,1,1)

y z

1 1 y

2 1 y

3 0 n

> split(mudat,1,0)

y z

4 1 n

5 1 n

3、选择最佳划分(基于熵增益)

choose<-function(data){

numvariable<-length(data[1,])-1

baseent<-calcent(data)

bestinfogain<-0

bestvariable<-0

infogain<-0

featlist<-c()

uniquevals<-c()

for(i in1:numvariable){

featlist<-data[,i]

uniquevals<-unique(featlist)

newent<-0

for(jin 1:length(uniquevals)){

subset<-split(data,i,uniquevals[j])

prob<-length(subset[,1])/length(data[,1])

newent<-newent+prob*calcent(subset)

}

infogain<-baseent-newent

if(infogain>bestinfogain){

bestinfogain<-infogain

bestvariable<-i

}

}

return(bestvariable)

}

函数choose包含三个部分,第一部分:求出一个分类的各种标签;第二部分:计算每一次划分的信息熵;第三部分:计算最好的信息增益,并返回分类编号。

我们以上面的简易例子mudat为例,计算划分,有:

> choose(mudat)

[1] 1

也就是告诉我们,将第一个变量值为1的分一类,变量值为0的分为另一类,得到的划分是最好的。

4、递归构建决策树

我们以脊椎动物数据集为例,这个例子来自《数据挖掘导论》,具体数据集已上传至百度云盘(点击可下载)

我们先忽略建树细节,由于数据变量并不大,我们手动建一棵树先。

>animals<-read.csv("D:/R/data/animals.csv")

>choose(animals)

[1] 1

这里变量1代表names,当然是一个很好的分类,但是意义就不大了,我们暂时的解决方案是删掉名字这一栏,继续做有:

>choose(animals)

[1] 4

我们继续重复这个步骤,直至choose分类为0或者没办法分类(比如sometimes live in water的动物)为止。得到最终分类树。

给出分类逻辑图(遵循多数投票法):

至于最后的建树画图涉及R的绘图包ggplot,这里不再给出细节。

下面我们使用著名数据集——隐形眼镜数据集,利用上述的想法实现一下决策树预测隐形眼镜类型。这个例子来自《机器学习实战》,具体数据集已上传至百度云盘(点击可下载)。

下面是一个十分简陋的建树程序(用R实现的),为了叙述方便,我们给隐形眼镜数据名称加上标称:age,prescript,astigmatic,tear rate.

建树的R程序简要给出如下:

bulidtree<-function(data){

if(choose(data)==0)

print("finish")

else{

print(choose(data))

level<-unique(data[,choose(data)])

if(level==1)

print("finish")

else

for(i in1:length(level)){

data1<-split(data,choose(data),level[i])

if(length(data1)==1)print("finish")

else

bulidtree(data1)

}

}

}

运行结果:

>bulidtree(lenses)

[1] 4

[1]"finish"

[1] 3

[1] 1

[1]"finish"

[1]"finish"

[1] 1

[1]"finish"

[1]"finish"

[1] 2

[1]"finish"

[1] 1

[1]"finish"

[1]"finish"

[1]"finish"

这棵树的解读有些麻烦,因为我们没有打印标签,(程序的简陋总会带来这样,那样的问题,欢迎帮忙完善),人工解读一下:

首先利用4(tear rate)的特征reduce,normal将数据集划分为nolenses(至此完全分类),normal的情况下,根据3(astigmatic)的特征no,yes分数据集(划分顺序与因子在数据表的出现顺序有关),no这条分支上选择1(age)的特征pre,young,presbyopic划分,前两个得到结果soft,最后一个利用剩下的一个特征划分完结(这里,由于split函数每次调用时,都删掉了一个特征,所以这里的1是实际第二个变量,这个在删除变量是靠前的情形时要注意),yes这

条分支使用第2个变量prescript作为特征划分my ope划分完结,hyper利用age进一步划分,得到最终分类。

画图说明逻辑:

这里并没有进行剪枝,可能出现过拟合情形,我们暂不考虑剪枝的问题,下面的问题我想是更加迫切需要解决的:在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息。那么如何处理这些问题,C4.5算法不失为一个较好的解决方案。

二、C4.5算法

C4.5算法描述:

(1) 创建根节点N;

(2) IF T都属于同一类C,则返回N为叶节点,标记为类C;

(3) IF T_attributelist为空或T中所剩的样本数少于某给定值则返回N为叶节点,标记为T中出现最多的类;

(4) FOR each T_attributelist中的属性计算信息增益率information gain ratio;

(5) N的测试属性test_attribute=T_attributelist中具有最高信息增益率的属性;

(6) IF测试属性为连续型则找到该属性的分割阀值;

(7) FOR each 由节点N长出的新叶节点{

IF 该叶节点对应的样本子集T’为空

则分裂该叶节点生成一个新叶节点,将其标记为T中出现最多的类;

ELSE在该叶节点上执行C4.5formtree(T’,T’_attributelist),对它继续分裂;

}

(8) 计算每个节点的分类错误,进行树剪枝。

以鸢尾花数据为例子,使用C4.5算法得到的分类树见下图:

预测结果:

观察\预测 setosa versicolor virginica

setosa 50 0 0

versicolor 0 49 1

virginica 0 2 48

下面我们使用上面提到的隐形眼镜数据集,利用C4.5实现一下决策树预测隐形眼镜类型。

得到结果:

hard no lenses soft

hard 3 1 0

no lenses 0 14 1

soft 0 0 5

看起来还不错,不是吗?

(注:图片与预测表输出结果是已经经过剪枝的,所以可能和我们之前程序算出的有些不同)

这里我们再次实现一下脊椎动物数据集的例子(使用C4.5),得到的分类逻辑图(R的直接输出结果):

Give.Birth = no

| Live.in.Water = no

| | Can.Fly = no: reptiles (4.0/1.0)

| | Can.Fly = yes: birds (3.0)

| Live.in.Water = sometimes: amphibians (4.0/2.0)

| Live.in.Water = yes: fishes (2.0)

Give.Birth = yes: mammals (7.0/1.0)

这个分类与我们之前使用ID3分类得到的结果有所不同(搜索效率高了一些,准确率相当),使用信息增益倾向于多分类的贪心算法导致的不足在这里显示的淋漓尽致,更可以看出C4.5比ID3改进的地方绝不止能处理连续变量这一条。

三、 CART算法

CART算法描述

(1) 创建根节点N;

(2) 为N分配类别;

(3) IF T都属于同一类别OR T中只剩一个样本

则返回N为叶节点,为其分配类别;

(4) FOR each T_attributelist 中的属性

执行该属性上的一个划分,计算此次划分的GINI系数;

(5) N的测试属性test_attribute=T_attributelist中具有最小GINI系数的属性;

(6) 划分T得T1、T2两个子集;

(7) 调用cartformtree(T1);

(8) 调用cartformtree(T2);

以鸢尾花数据集为例,使用cart算法,得到决策树:

要实现C4.5算法,R提供了一个程序包RWeka,J48函数可以实现决策树的构建,至于cart算法,R中的tree包提供函数tree来实现决策树的构建。下面我们来简要介绍他们:

J48(formula, data, subset, na.action,

control = Weka_control(), options = NULL)

tree(formula, data, weights, subset,

na.action = na.pass, control = tree.control(nobs, ...),

method = "recursive.partition",

split = c("deviance", "gini"),

model = FALSE, x = FALSE, y = TRUE, wts = TRUE, ...)

split为划分指标,分为deviance(偏差)和”gini”(基尼)

control涉及树剪枝的各种凶残细节,有兴趣的可以通过阅读帮助文档解决。而且剪枝是一个十分复杂的过程,剪枝也是视需求而定的,C4.5是事后剪枝,id3也就是我们试图实现的建树,也可以去手动剪枝。

四、R内置命令实现

我们之前的C4.5的建树R代码如下:

鸢尾花一例:

library(RWeka)

library(party)

oldpar=par(mar=c(3,3,1.5,1),mgp=c(1.5,0.5,0),cex=0.3) data(iris)

m1<-J48(Species~Petal.Width+Petal.Length,data=iris) m1

table(iris$Species,predict(m1))

write_to_dot(m1)

if(require("party",quietly=TRUE))

plot(m1)

隐形眼镜一例:

lenses<-read.csv("D:/R/data/lenses.csv",head=FALSE) m1<-J48(V5~.,data=lenses)

m1

table(lenses$V5,predict(m1))

write_to_dot(m1)

if(require("party",quietly=TRUE))

plot(m1)

CART算法的鸢尾花例:

library(tree)

oldpar=par(mar=c(3,3,1.5,1),mgp=c(1.5,0.5,0),cex=1.2) ir.tr <- tree(Species~Petal.Width+Petal.Length, iris) ir.tr

plot(ir.tr)

text(ir.tr)

对于决策树的构建,R中个人用的比较多的是函数包rpart中的函数rpart与prune。具体介绍在之前的博文《R语言与机器学习中的回归方法学习笔记》中有提及,这里不再赘述。

决策树是一个弱分类器,我们从脊椎动物数据集就可以看到,没有办法完全分类,这时将弱学习器组合在一起的,根据多数投票法得到的强学习器是你可以进一步关注的,ada boost,bagging,random forest,这些内容你都可以了解一些(这些上一篇文章《R语言与机器学习中的回归方法学习笔记》有所涉猎,但也未详述)。

Further Reading:

关于C4.5的内容可以参阅yfx416的《C4.5决策树》

关于随机森林等内容可以参阅LeftNotEasy的《决策树模型组合之随机森林与GBDT》

关于学习器组合的内容可以参阅LeftNotEasy的《模型组合之Boosting与Gradient Boosting》

R语言-决策树算法知识讲解

R语言-决策树算法

决策树算法 决策树定义 首先,我们来谈谈什么是决策树。我们还是以鸢尾花为例子来说明这个问题。 观察上图,我们判决鸢尾花的思考过程可以这么来描述:花瓣的长度小于 2.4cm的是setosa(图中绿色的分类),长度大于1cm的呢?我们通过宽度来判别,宽度小于1.8cm的是versicolor(图中红色的分类),其余的就是 virginica(图中黑色的分类) 我们用图形来形象的展示我们的思考过程便得到了这么一棵决策树: 这种从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。 前面我们介绍的k-近邻算法也可以完成很多分类任务,但是他的缺点就是含义不清,说不清数据的内在逻辑,而决策树则很好地解决了这个问题,他十分好理解。从存储的角度来说,决策树解放了存储训练集的空间,毕竟与一棵树的存储空间相比,训练集的存储需求空间太大了。 决策树的构建 一、KD3的想法与实现 下面我们就要来解决一个很重要的问题:如何构造一棵决策树?这涉及十分有趣的细节。 先说说构造的基本步骤,一般来说,决策树的构造主要由两个阶段组成:第一阶段,生成树阶段。选取部分受训数据建立决策树,决策树是按广度优先建立直到每个叶节点包括相同的类标记为止。第二阶段,决策树修剪阶段。用剩余数据检验决策树,如果所建立的决策树不能正确回答所研究的问题,我们要对决策树进行修剪直到建立一棵正确的决策树。这样在决策树每个内部节点处进行属性值的比较,在叶节点得到结论。从根节点到叶节点的一条路径就对应着一条规则,整棵决策树就对应着一组表达式规则。 问题:我们如何确定起决定作用的划分变量。 我还是用鸢尾花的例子来说这个问题思考的必要性。使用不同的思考方式,我们不难发现下面的决策树也是可以把鸢尾花分成3类的。 为了找到决定性特征,划分出最佳结果,我们必须认真评估每个特征。通常划分的办法为信息增益和基尼不纯指数,对应的算法为C4.5和CART。 关于信息增益和熵的定义烦请参阅百度百科,这里不再赘述。 直接给出计算熵与信息增益的R代码:

人教版高中数学必修三第3讲:基本算法语句(学生版)

人教版高中数学基本算法语句 __________________________________________________________________________________ __________________________________________________________________________________ 1.理解学习基本算法语句的意义. 2.学会输入语句、输出语句和赋值语句,条件语句和循环语句的基本用法. 3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法. 1. 赋值、输入和输出语句 (1)赋值语句: 在表述一个算法时,经常要引入变量,并赋给该变量一个值。用来表明赋给某一个变量一个具体的确定值的语句叫做赋值语句。 在算法语句中,赋值语句是最基本的语句。 赋值语句的一般格式为:__________________。 赋值语句中的“=”号,称作赋值号,赋值语句的作用是先计算出赋值号右边表达式的值,然后把该值赋给赋值号左边的变量,使该变量的值等于表达式的值。 说明: ①赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或表达式; ②赋值语句中的赋值号“=”的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量; ③不能利用赋值语句进行代数式(或符号)的演算(如化简、因式分解等)。在赋值语句中的赋值号右边的表达式中的每一个“变量”都必须事先赋给确定的值。在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”; ④赋值号与数学中的等号的意义不同。赋值号左边的变量如果原来没有值,则在执行赋值语句后,获得一个值。如果原已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,

高中数学 1.3《基本算法语句》测试 苏教必修3

基本算法语句 同步练习 学力测评 双基复习巩固 1. 下列赋值语句正确的是 ( ) A .4←x B .p +q ←8 C .m =n ←2 D .s ←s 2+1 2. 下列程序运行的结果为 ( ) A .55 B .110 C .45 D .90 3. 给出以下问题: ①求面积为1的正三角形的周长; ②求键盘所输入的三个数的算术平均数; ③求键盘所输入的两个数的最小数; ④求函数2 2,3,(), 3. x x f x x x ?=? ?≥<当自变量取x 0时的函数值. 其中不需要用条件语句来描述算法的问题有 ( ) A .1个 B .2个 C .3个 D .4个 4. 下列问题所描述出来的算法,其中不包含条件语句的为 ( ) A .读入三个表示三条边长的数,计算三角形的面积 B .给出两点的坐标,计算直线的斜率 C .给出一个数x ,计算它的常用对数的值 D .给出三棱锥的底面积与高,求其体积 5. 下面程序的运行结果不为4的 ( ) 6. 设计一个计算1×3×5×7×9的算法.图中给出了程序的一部分,则在横线①上不能填入 下面的那一个数?答: ( ) A .9 B .9.5 C .10 D .10.5 7. 已知A (x 1,y 1),B (x 2,y 2)是平面上的两点,试设计一个程序,输入 A 、B 两点的坐标 , 输出其中点的坐标.现已给出程序的一部分,试在横线上填上适当的语句,把程序补充 S ←0 I ←1 While I ≤10 S ←S +2×I I ←I +1 End while Print S End (第2题) a ←3 b ←5 If b >a then c ←2a b + Print c Else Print b End if End A . a ←3 b ←4 If a >b then Print b Else a ←a +1 End if Print a End B . a ←3 b ←4 If a ≤b then c ←a +b Print c Else a ←a +b -3 End if Print a End C . a ←3 b ←5 c ←2a b + d ←3a b c ++ e ←4a b c d +++ Print e End D .

遥感复习重点讲解

名词概念 遥感广义:泛指一切无接触的远距离探测,包括对电磁场、力场、机械波(声波、地震波)等的探测。 定义:是从远处探测感知物体,也就是不直接接触物体,从远处通过探测仪器接收来自目标地物的电磁波信息,经过对信息的处理,判别出目标地物的属性。 遥感平台 :搭载传感器的载体。 传感器 :收集、探测、记录地物电磁波辐射信息的工具,是遥感技术系统中数据获取的关键设备。 遥感过程 :遥感信息的获取、传输、处理、及其判读分析和应用的全过程。 空间分辨率 :又可称地面分辨率,前者就记录的图像而言,后者就地表而言,其意义相同。能够详细区分最小单元的尺寸或大小,直接影响图像质量 与清晰度。 像元:是将地面信息离散化而形成的网格单元,单位为米(m)。 辐射畸变: 当太阳辐射相同时,图像上像元亮度值的差异直接反映了地物目标光谱反射率的差异。但实际测量时,辐射强度值还收到其他因素的影响而 发生改变。这一改变的部分就是需要改变的部分,故称为辐射校正。 几何畸变 :遥感图像在获取过程中由于多种原因导致景物中目标物相对位置的坐标关系图像中发生变化。(几何位置上发生诸如行列不均匀、像元大小 与地面大小对应不准确、地物形状不规则变化等畸变) 电磁波谱: 按电磁波波长的长短,依次排列制成的一个连续的带谱叫电磁波谱。绝对黑体: 如果一个物体对于任何波长的电磁辐射都全部吸收,则这个物体是绝对黑体。 大气窗口 :由于大气层的反射、散射和吸收作用,使得太阳辐射的各波段受到衰减的作用轻重不同,因而各波段的透射率也各不相同。我们就把受到大 气衰减作用较轻、透射率较高的波段叫大气窗口。 反射率 :地物的反射能量与入射总能量的比。 扫描成像 :是依靠探测元件和扫描镜头对目标地物以瞬时视场为单位进行的逐点、逐行取样,以得到目标地物电磁辐射特性信息,形成一定谱段的 图像。 摄影成像 瞬时视场角 :瞬时视场(IFOV),指遥感器内单个探测元件的受光角度或观测视野,单位为毫弧度(mrad)。IFOV越小,最小可分辨单元(可分像素)越小, 空间分辨率越高。 趋肤深度 :电磁波通过介质时,部分被吸收,强度要衰减。故将电磁波振幅减少1/e倍(37%)的穿透深度定义为趋肤深度H 色调 :地物电磁辐射能量在像片上的模拟记录,在黑白像片上表现为灰度,在彩色像上表现为色彩。 饱和度:(彩度、纯度、色度)指彩色的纯净程度,即彩色相对于光谱色的纯洁度。亮度(明度、光度)指色彩本身的明暗程度。 主成分分析 :是设法将原来众多具有一定相关性(比如P个指标),重新组合成

代价敏感决策树讲解

用于欺诈检测的一种代价敏感决策树方法 Yusuf Sahin a, Serol Bulkan b, Ekrem Duman c a Department of Electrical & Electronics Engineering, Marmara University, Kadikoy, 34722 Istanbul, Turkey b Department of Industrial Engineering, Marmara University, Kadikoy, 34722 Istanbul, Turkey c Department of Industrial Engineering, Ozyegin, Cekmekoy, 34794 Istanbul, Turkey 关键词:代价敏感建模信用卡欺诈检测决策树分类可变误分类代价 摘要:随着信息技术的发展,欺诈行为遍布世界各地,这导致了巨大的经济损失。虽然诸如CHIP&PIN等欺诈预防机制已经被开发应用于信用卡系统,但这些机制并不能阻止一些最常见的欺诈类型,比如在虚拟POS机上的信用卡欺诈使用,或者是所谓的在线信用卡欺诈邮购。所以,欺诈检测成为了一种必不可少的工具,并且可能是阻止此类欺诈类型的最佳方法。在此次研究中,提出了一种全新的代价敏感决策树方法,它将在每个非叶节点选择分裂属性时最小化误分类代价之和,其在现实世界信用卡数据集上的性能可以与那些众所周知的传统分类模型相比较。在这种分类方法中,误分类代价将取不同的值。结果表明,在给定的问题集上使用已知的性能指标,比如准确度和真阳性率,此代价敏感决策树算法胜过现有公知的方法,而且针对特定的信用卡欺诈检测领域,还新定义了一种代价敏感指标。因此,通过在欺诈检测系统中实施该方法,可以更好的减少由于欺诈交易造成的金融损失。 1.引言 欺诈可以被定义为为了取得财务或个人利益的非法或刑事欺骗。两种避免由于诈骗活动导致欺诈和损失的机制是欺诈预防以及欺诈检测系统。欺诈预防是以防止欺诈行为发生为目标的主动机制。欺诈检测系统在诈骗者越过欺诈预防系统并且开始一个欺诈交易时发挥作用。有关欺诈领域以及检测技术的综述可以在Bolton and Hand (2002), Kou, Lu, Sirwongwattana, and Huang (2004), Phua, Lee, Smith, and Gayler (2005), Sahin and Duman (2010)的研究中找到。其中最知名的欺诈领域是信用卡系统。可以通过许多方法进行信用卡欺诈,如简单盗窃,申请欺诈,伪造卡片,从未达卡问题(NRI)以及在线诈骗(在持卡人不存在的情况下)。在网络诈骗中,交易是通过远程完成的,并且只需要信用卡信息。由于网络的国际可用性和易用性,用户可以在互联网交易中隐藏自身位置以及身份,所以通过该媒介发生的欺诈行为正在快速增长。 信用卡欺诈检测有很多以前已经完成的研究。关于信用卡系统以及欺诈领域非技术性知识的一般背景可以分别从Hanagandi, Dhar, and Buescher (1996) and Hand and Blunt (2001)学习。在这个领域中,最常用的欺诈检测方法有规则归纳技术,决策树,人工神经网络(ANN),支持向量机(SVM),逻辑回归以及诸如遗传算法的启发式算法。这些技术可以单独使用,也可以通过集成以及元学习技术协同使用来构建分类器。大多数信用卡欺诈检测系统在使用监督算法,比如神经网络(Brause, Langsdorf, & Hepp, 1999; Dorronsoro, Ginel, Sanchez, & Cruz, 1997; Juszczak, Adams, Hand, Whitrow, & Weston, 2008; Quah & Sriganesh, 2008; Schindeler, 2006; Shen, Tong, & Deng, 2007; Stolfo, Fan, Lee, Prodromidis, & Chan, 1997; Stolfo, Fan, Lee, Prodromidis, & Chan, 1999; Syeda, Zhang, & Pan, 2002; Prodromidis, Chan, & Stolfo, 2000),ID3、C4.5和C&RT一类的决策树技术(Chen, Chiu, Huang, & Chen, 2004; Chen, Luo, Liang, & Lee, 2005;Mena, 2003;

人教新课标A版 高中数学必修3 第一章算法初步 1.2基本算法语句 1.2.3循环语句 同步测试(I

人教新课标A版高中数学必修3 第一章算法初步 1.2基本算法语句 1.2.3循环语句 同步测试(I)卷 姓名:________ 班级:________ 成绩:________ 一、单选题 (共15题;共30分) 1. (2分)下面的程序: 执行完毕后a的值为() A . 99 B . 100 C . 101 D . 102 2. (2分)设计一个计算1×3×5×7×9×11×13的算法.图中给出了程序的一部分,则在横线①上不能填入的数是() A . 13 B . 13.5

C . 14 D . 14.5 3. (2分)以下程序的功能是() S=1; for i=1:1:10 S=(3^i)*S; end S A . 计算3×10的值 B . 计算355的值 C . 计算310的值 D . 计算1×2×3×…×10的值 4. (2分)下列循环语句,循环终止时,i等于() A . 3 B . 4 C . 5 D . 6 5. (2分)有人编写了下列程序,则()

A . 输出结果是1 B . 能执行一次 C . 能执行10次 D . 是“死循环”,有语法错误 6. (2分)读下列两段程序: 甲:乙: 对甲、乙程序和输出结果判断正确的是() A . 程序不同,结果不同 B . 程序不同,结果相同 C . 程序相同,结果不同 D . 程序相同,结果相同 7. (2分)阅读程序框图,运行相应的程序,当输入x的值为-25时,输出x的值为()

A . -1 B . 1 C . 3 D . 9 8. (2分)在UNTIL语句的一般形式“LOOP UNTIL M”中,M表示() A . 循环变量 B . 循环体 C . 终止条件 D . 终止条件为真 9. (2分) (2019高一上·太原月考) 以下程序运行后的输出结果为()

《基本算法语句复习》教学设计

《基本算法语句复习》教学设计 教学目标 (1)进一步巩固基本算法语句:赋值语句、输入输出语句、条件语句、循环语句的概念,并掌握其结构; (2)会灵活应用基本算法语句编写程序. 教学重点 各种算法语句的表示方法、结构和用法. 教学难点 灵活应用各种算法语句编写程序. 教学过程 一、例题分析: 1.例题: 例1.编写函数221, 2.5 1, 2.5 x x y x x ?+≤?=?->??的算法,根据输入的x 的值,计算y 的值. 分析:这是分段函数,计算前,先对x 的值进行判断,再确定计算法则. 解:其算法步骤如下: 用算法语句可表示如下: S1 输入x ; S2 若 2.5x ≤,则2 1y x ←+, 否则,则2 1y x ←-; S3 输出y . 例2.试用算法语句表示:使2 2 2 21232006n +++ +>成立的最小正整数的算法过程. 解:本例需要用到循环结构,且循环的次数不定,因此可用“While 循环”语句, 具体描述: 例3.读入80个自然数,统计出其中奇数的个数,用伪代码表示解决这个问题的算法过程. 解:本题算法的伪代码如下: Read x If 2.5x ≤ Then 2 1y x ←+ Else 21y x ←- End If Print y End 0S ← 1I ← While S ≤2006 1I I =+ 2 S S I ←+ End While Print I End

0k ← For I From 1 To 80 Read n []22n n T ← - If 0T ≠ Then 1k k ←+ (Print n ) End If End For Print k End 变式:若本例中还要将所有奇数输出呢?以上伪代码该作何修改?(见题中括号) 例4.《中华人民共和国个人所得税法》第十四条有下表(部分) 个人所得税税率表—(工资、薪金所得使用) 级数 全月应纳税所得额 税率(%) 1 不超过500元部分 5 2 超过500元至2000元部分 10 3 超过2000元至5000元部分 15 4 超过5000元至20000元部分 20 …… 目前,上表中“全月应纳税所得额”是从月工资、薪金收入中减去800元后的余额.若工资、薪金的月收入不超过800元,则不需纳税. 某人月工资、薪金收入不超过20800元,试给出一个计算其月工资、薪金收入为x 元时应缴纳税款额的算法并用伪代码表示这个算法. 解:设月工资、薪金收入为x 元时应缴纳税款额为y 元,伪代码如下: Read x If 800x ≤ Then y ←0 Else If 8001300x <≤ Then y ←(x-800)*0.05 Else If 13002800x <≤ Then y ←500*0.05+(x-1300)*0.1 Else If 28005800x <≤ Then y ←500*0.05+1500*0.1+(x-2800)*0.15 Else If 580020800x <≤ Then y ←500*0.05+1500*0.1+3000*0.15+(x-5800)*0.2 End If Print y

人工智能实验报告天气决策树解读

昆明理工大学信息工程与自动化学院学生实验报告 (201 —201 学年第 1 学期) 课程名称:人工智能开课实验室:年月日 一、上机目的及内容 1.上机内容 根据下列给定的14个数据,运用Information Gain构造一个天气决策树。

(1)学习用Information Gain构造决策树的方法; (2)在给定的例子上,构造出正确的决策树; (3)理解并掌握构造决策树的技术要点。 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)设计并实现程序,构造出正确的决策树; (2)对所设计的算法采用大O符号进行时间复杂性和空间复杂性分析; 程序流程图:

三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件 四、实验方法、步骤(或:程序代码或操作过程) 源程序见同一文件夹下工程jueceshu。 以下为部分程序代码: DataPoint processLine(std::string const& sLine) { std::istringstream isLine(sLine, std::istringstream::in); std::vector attributes; while( isLine.good() ) { std::string rawfield; isLine >> rawfield; attributes.push_back( AttributeValue( rawfield ) ); } AttributeValue v = attributes.back(); attributes.pop_back(); bool type = v.GetType(); return DataPoint(attributes, type); } void main() { std::ifstream ifs("in.txt", std::ifstream::in); DataSet initDataset; while( ifs.good() ) { // TODO: need to handle empty lines. std::string sLine; std::getline(ifs, sLine); initDataset.addDataPoint( processLine(sLine) ); } std::list processQ; std::vector finishedDataSet; processQ.push_back(initDataset); while ( processQ.size() > 0 ) { std::vector splittedDataSets; DataSet dataset = processQ.front(); dataset.splitDataSet(splittedDataSets);

完整word版,决策树算法总结

决策树研发二部

目录 1. 算法介绍 (1) 1.1.分支节点选取 (1) 1.2.构建树 (3) 1.3.剪枝 (10) 2. sk-learn中的使用 (12) 3. sk-learn中源码分析 (13)

1.算法介绍 决策树算法是机器学习中的经典算法之一,既可以作为分类算法,也可以作为回归算法。决策树算法又被发展出很多不同的版本,按照时间上分,目前主要包括,ID3、C4.5和CART版本算法。其中ID3版本的决策树算法是最早出现的,可以用来做分类算法。C4.5是针对ID3的不足出现的优化版本,也用来做分类。CART也是针对ID3优化出现的,既可以做分类,可以做回归。 决策树算法的本质其实很类似我们的if-elseif-else语句,通过条件作为分支依据,最终的数学模型就是一颗树。不过在决策树算法中我们需要重点考虑选取分支条件的理由,以及谁先判断谁后判断,包括最后对过拟合的处理,也就是剪枝。这是我们之前写if语句时不会考虑的问题。 决策树算法主要分为以下3个步骤: 1.分支节点选取 2.构建树 3.剪枝 1.1.分支节点选取 分支节点选取,也就是寻找分支节点的最优解。既然要寻找最优,那么必须要有一个衡量标准,也就是需要量化这个优劣性。常用的衡量指标有熵和基尼系数。 熵:熵用来表示信息的混乱程度,值越大表示越混乱,包含的信息量也就越多。比如,A班有10个男生1个女生,B班有5个男生5个女生,那么B班的熵值就比A班大,也就是B班信息越混乱。 基尼系数:同上,也可以作为信息混乱程度的衡量指标。

有了量化指标后,就可以衡量使用某个分支条件前后,信息混乱程度的收敛效果了。使用分支前的混乱程度,减去分支后的混乱程度,结果越大,表示效果越好。 #计算熵值 def entropy(dataSet): tNum = len(dataSet) print(tNum) #用来保存标签对应的个数的,比如,男:6,女:5 labels = {} for node in dataSet: curL = node[-1] #获取标签 if curL not in labels.keys(): labels[curL] = 0 #如果没有记录过该种标签,就记录并初始化为0 labels[curL] += 1 #将标签记录个数加1 #此时labels中保存了所有标签和对应的个数 res = 0 #计算公式为-p*logp,p为标签出现概率 for node in labels: p = float(labels[node]) / tNum res -= p * log(p, 2) return res #计算基尼系数 def gini(dataSet): tNum = len(dataSet) print(tNum) # 用来保存标签对应的个数的,比如,男:6,女:5 labels = {} for node in dataSet: curL = node[-1] # 获取标签 if curL not in labels.keys(): labels[curL] = 0 # 如果没有记录过该种标签,就记录并初始化为0 labels[curL] += 1 # 将标签记录个数加1 # 此时labels中保存了所有标签和对应的个数 res = 1

高中数学专题讲义-基本算法语句

题型一:Basic语言(A版) 【例1】下列程序(QBASIC语言)运行时,循环体内语句执行的次数和输出的结果分别是()A.225 ,B.325 ,C.48,D.532 , 【例2】下边程序运行后的输出结果为() A.17B.19C.21D.23 【例3】对赋值语句的描述正确的是() ①可以给变量提供初值②将表达式的值赋给变量 ③可以给一个变量重复赋值④不能给同一变量重复赋值 A.①②③B.①②C.②③④D.①②④ 【例4】判断下列赋值语句是否正确:①5A =;②3 A B ==;③3 A A =+. 【例5】下列关于条件语句的叙述正确的是() A.条件语句中必须有ELSE和END IF B.条件语句中可以没有END IF C.条件语句中可以没有ELSE,但必须有END IF结束 D.条件语句中可以没有END IF,但必须有ELSE 典例分析 板块二.基本算法语句

【例6】下边方框中为一个求20个数的平均数的程序,则在横线上应填的语句为() A.i>20 B.i<20C.i>=20 D.i<=20 【例7】已知有两位同学的成绩在录入时被弄混,他们的成绩分别为A,B,试写出一个程序,将它们的分数调整过来. 【例8】将下列的程序补充完整 INPUT x IF x<=0 THEN y=x*x—1; ELSE y=-x*x-1; END IF PRINT y END 输入3 -,输出结果为_______;输入3,输出结果为_____. 【例9】在求1250 L时,下列程序中所缺少的一步是: +++ i=1 s=0; DO s=s+i i=i+1 LOOP UNTIL __________ PRINT s END 如果要用WHILE循环语句计算此式的值,请写出相应的程序. 【例10】写出下列程序的运行结果:______. i=0 s=0 WHILE i<=20 s=s+i i=i+1 WEND PRINT s

代价敏感决策树讲解

用于欺诈检测的一种代价敏感决策树方法 cba Yusuf Sahin , Serol Bulkan , Ekrem Duman a Kadikoy, Engineering, Marmara University, Department of Electrical & Electronics 34722 Istanbul, Turkey b Istanbul, University, Kadikoy, 34722 Department of Industrial Engineering, Marmara Turkey c Department of Industrial Engineering, Ozyegin, Cekmekoy, 34794 Istanbul, Turkey 可变误分类代价信用卡欺诈检测决策树分类关键词:代价敏感建模虽然诸如摘要:随着信息技术的发展,欺诈行为遍布世界各地,这导致了巨大的经济损失。等欺诈预防机制已经被开发应用于信用卡系统,但这些机制并不能阻止一些最常CHIP&PIN或者是所谓的在线信用卡欺诈邮购。POS机上的信用卡欺诈使用,见的欺诈类型,比如在虚拟在欺诈检测成为了一种必不可少的工具,并且可能是阻止此类欺诈类型的最佳方法。所以,它将在每个非叶节点选择分裂属性时此次研究中,提出了一种全新的代价敏感决策树方法,其在现实世界信用卡数据集上的性能可以与那些众所周知的传统分最小化误分类代价之和,在给定的问题集误分类代价将取不同的值。结果表明,类模型相比较。在这种分类方法中,此代价敏感决策树算法胜过现有公知的方比如准确度和真阳性率,上使用已知的性能指标,通过在欺因此,法,而且针对特定的信用卡欺诈检测领域,还新定义了一种代价敏感指标。诈检测系统中实施该方法,可以更好的减少由于欺诈交易造成的金融损失。 信用卡欺诈检测有很多以前已经完成引言1.关于信用卡系统以及欺诈领域非技的研究。Hanagandi, 术性知识的一般背景可以分别从欺诈可以被定义为为了取得财务或个Dhar, and Buescher (1996) and Hand and 两种避免由于诈人利益的非法或刑事欺骗。学习。在这个领域中,最常用(2001)骗活动导致欺诈和损失的机制是欺诈预防Blunt 的欺诈检测方法有规则归纳技术,决策树,以及欺诈检测系统。欺诈预防是以防止欺诈,),支持向量机(SVM)行为发生为目标的主动机制。欺诈检测系统人工神经网络(ANN逻辑回归以及诸如遗传算法的启发式算法。在诈骗者越过欺诈预防系统并且开始一个也可以通过集成以欺诈交易时发挥作用。有关欺诈领域以及检这些技术可以单独使用,大多and Hand 及元学习技术协同使用来构建分类器。的综述可以在Bolton 测技术比and 数信用卡欺诈检测系统在使用监督算法,(2002), Kou, Lu, Sirwongwattana, Brause, Langsdorf, & Hepp, and 如神经网络(Huang (2004), Phua, Lee, Smith, Cruz, & Gayler (2005), Sahin and Duman (2010)1999; Dorronsoro, Ginel, Sanchez, & Whitrow, 1997; Juszczak, Adams, Hand, 的研究中找到。其中最知名的欺诈领域是信Weston, 2008; Quah & Sriganesh, 2008; 用卡系统。可以通过许多方法进行信用卡欺Schindeler, 2006; Shen, Tong, & Deng, 诈,如简单盗窃,申请欺诈,伪造卡片,从2007; Stolfo, Fan, Lee, Prodromidis, & 未达卡问题(NRI)以及在线诈骗(在持卡Lee, 1997; Stolfo, Fan, 人不存在的情况下)。在网络诈骗中,交易Chan, Zhang, 1999; Syeda, 是通过远程完成的,并且只需要信用卡信Prodromidis, & Chan,

决策树方法讲解

一、科学经营决策方法 一般分为定性决策方法和定量决策方法。 一、定性决策方法 定性决策方法,也称主观决策法。定性决策方法主要有:头脑风暴法、德尔菲法、名义小组技术和淘汰法。(掌握) (一)头脑风暴法(掌握)——又称为思维共振法 在典型的头脑风暴法会议中,决策者以一种明确的方式向所有参与者阐明问题,使参与者在完全不受约束的条件下,敞开思路,畅所欲言。在提出方案的过程中,不允许任何批评。 对预测有很高的价值。其缺点和弊端——受心理因素影响较大,易屈服于权威或大多数人的意见,而忽视少数派的意见。 (二)德尔菲法(掌握) 由美国著名的兰德公司首创并用于预测和决策的方法。该法采用匿名方式征询专家意见,进行决策。 运用德尔菲法的关键在于:第一,选择好专家;第二,决定适当的专家人数,一般10~50人较好;第三,拟订好意见征询表。 (三)名义小组技术(熟悉) 在集体决策中,如对问题的性质不完全了解并且意见分歧严重,可采用名义小组技术。其特点是背靠背,独立思考。 由小组成员对提出的全部观点或方案进行投票,根据投票结果,确定最终的决策方案。但企业决策者最后仍有权决定是接受还是拒绝这一方案。 (四)淘汰法(熟悉) 即先根据一定条件和标准,把全部备选方法筛选一遍,把达不到要求的方案淘汰掉,以达到缩小选择范围的目的。淘汰的方法有: (1)规定最低满意度,达不到满意度的方案予以淘汰。 (2)规定约束条件。 (3)根据目标主次筛选方案。 二、定量决策方法 定量决策方法是利用数学模型进行优选决策方案的决策方法。 定量决策方法一般分为确定型决策、风险型决策和不确定型决策三类。(掌握)(一)确定型决策方法 确定型决策方法是指在稳定可控条件下进行决策,只要满足数学模型的前提条件,模型就给出确定的结果。 确定性决策方法的构成:线性规划法和盈亏平衡点法。 1.线性规划法(熟悉) 线性规划是在线性等式或不等式的约束条件下,求解线性目标函数的最大值或最小值的方法。 运用线性规划建立数学模型的步骤是:(1)确定影响目标的变量;(2)列出目标函数方程;(3)找出实现目标的约束条件;(4)找出使目标函数达到最优的可行解,即为该线性规划的最优解。 某企业生产两种产品,A产品每台利润l00元,B产品每台利润l80元,有关生产资料如下表所示,试求企业利润最大时两种产品的产量。 A、B产品生产用料

高中数学第一章算法初步1-2基本算法语句1-2-1输入语句输出语句和赋值语句优化练习新人教A版必修3

高中数学第一章算法初步1-2基本算法语句1-2-1输入语句输出语句和赋值语句优化练习新人教A版必修3 [课时作业] [A组学业水平达标] 1.下列给出的输入语句和输出语句中,正确的是( ) ①INPUT a,b,c,d,e ②INPUT X=1 ③PRINT A=4 ④PRINT A. ①② B.②③ C.③④ D.①④ 解析:输入语句和输出语句中不能用赋值语句,因此②③错误. 答案:D 2.设A=10,B=20,则可以实现A,B的值互换的程序是( ) A.B.A=10 B=20 C=A B=C C.D.A=10 B=20 C=A D=B B=C A=B 解析:A中程序执行后A=B=10,B中程序执行后A=B=10,C中程序执行后A=20,B=10,D中程序执行后A=B=10. 答案:C 3.将两个数a=7,b=8交换,使a=8,b=7,下面语句中正确的一 组是( )

A. B.c=b b=a a=c C.D.a=c c=b b=a 解析:将两个变量的值互换时,要使用中间变量. 答案:B 4.运行如图所示的程序,输出的结果是( ) A.1 B.2 C.3 D.4 解析:程序执行时首先赋值a=1,b=2,然后将a+b的值赋值给a, 此时a=3,输出a即输出3. 答案:C 5.下面的程序输出的结果是( ) A.10 B.8 C.2 D.-2 解析:该程序运行过程中A,B的值变化如下:A=10,B=2,A=10- 2=8. 答案:B 6.x=5 y=6 PRINT x+y END 上面程序运行时输出的结果是__________. 解析:经过计算输出11. 答案:11 7.已知一段程序如下:若输入的是3,则运行结果是________.

斯坦福探索深度神经网络可解释性 决策树是关键

斯坦福探索深度神经网络可解释性决策树是关键 深度学习的热潮还在不断涌动,神经网络再次成为业界人士特别关注的问题,AI 的未来大有可期,而深度学习正在影响我们的日常生活。近日斯坦福大学给我们分享咯一则他对深度神经网络可解释性的探索的论文,我们去看看他是如理解的吧! 近日,斯坦福大学计算机科学博士生Mike Wu 发表博客介绍了他对深度神经网络可解释性的探索,主要提到了树正则化。其论文《Beyond Sparsity:Tree RegularizaTIon of Deep Models for Interpretability》已被AAAI 2018 接收。 近年来,深度学习迅速成为业界、学界的重要工具。神经网络再次成为解决图像识别、语音识别、文本翻译以及其他困难问题的先进技术。去年十月,Deepmind 发布了AlphaGo 的更强版本,从头开始训练即可打败最优秀的人类选手和机器人,表明AI 的未来大有可期。在业界,Facebook、谷歌等公司将深度网络集成在计算pipeline 中,从而依赖算法处理每天数十亿比特的数据。创业公司,如Spring、Babylon Health 正在使用类似的方法来颠覆医疗领域。深度学习正在影响我们的日常生活。 但是深度学习是一个黑箱。我第一次听说它时,就对其工作原理非常费解。几年过去了,我仍然在探索合理的答案。尝试解释现代神经网络很难,但是至关重要。如果我们打算依赖深度学习制造新的AI、处理敏感的用户数据,或者开药,那么我们必须理解这些模型的工作原理。 很幸运,学界人士也提出了很多对深度学习的理解。以下是几个近期论文示例: Grad-Cam(Selvaraju et. al. 2017):使用最后卷积层的梯度生成热力图,突出显示输入图像中的重要像素用于分类。 LIME(Ribeiro et. al. 2016):使用稀疏线性模型(可轻松识别重要特征)逼近DNN 的预测。 特征可视化(Olah 2017):对于带有随机噪声的图像,优化像素来激活训练的DNN 中的特定神经元,进而可视化神经元学到的内容。 Loss Landscape(Li et. al. 2017):可视化DNN 尝试最小化的非凸损失函数,查看架构/

用决策树法进行方案优选

用决策树法进行方案优选 期望值决策方法,除用决策益损表分析外,也可采用决策树法进行分析,这种决策方法的思路如树枝形状,所以,称为决策树。 (1)决策树的结构。决策树是以方块和圆点作为结点,并由直线连接而形成一种树枝状结构,图中符号说明如下: □——表示决策结点,由它引出的若干条树枝,每枝代表一个方案。 ○——表示状态结点,由它引出的若干条树枝,每枝代表一个自然状态,并在其上写明自然状态及其概率。 △——表示每种自然状态相应的益损值 一般决策问题具有多个方案,每个方案可能有多种状态。因此,图形从左向右,由简到繁组成为一个树枝网状图。 应用树枝图进行决策的过程是:由右向左,逐步后退。根据右端的益损值和状态枝上的概率,计算出同一方案的不同状态下的期望益损值,然后根据不同方案的期望益损值的大小进行选择。方案的舍弃称为修枝,舍弃的方案只需在枝上画出“//”的符号,即表示修枝的意思。最后决策结点只留下一条树枝,就是决策的最优方案。 例题1:某土建承包公司确定今后6年内机械设备的投资计划。公司有两种方案: (1)投资1050万元购买大型车队 (2)投资350万元购买小型车队 经理估计能签到大宗合同的概率是0.6,而只能签到少量合同的概率是0.4。假如购置大型车队又签到大宗合同,在今后6年中,每年收入为400万元;假如购置大型车队而只能签到少量合同,每年收入为100万元。假如购置小型车队而又可签到大宗合同,由于车队的限制,每年收入为200万元;假如购置小型车队而只签到少量合同,则每年收入为120万元。 当购置大型车队只签到少量合同,那么在两年后公司要决定如何处理已有设备。他有四种选择: (1)公司将不用的设备出租,估计能出租全部闲置设备的概率是0.7,在出租的4年内每年平均收入350万元;只能出租部分闲置设备的概率是0.3,4年内平均每年净收入150万元。 (2)现将设备暂时存放在库房里不用,等到以后工程合同多时使用。估计这段时间内有1/2的机会签到更多合同,这时前两年的收入150万元,后两年每年获利为250万元; 如果在这段时间只能签到少数的工程合同,那4年每年内收入100万元。 (3)及时出售多余的设备,估计可得500万元,另外保留的机械每年能获100万元。(4)马上全部卖掉所有车队,估计可得800万元。 如果当初决定购置小型车队又签到大宗合同,那么在作出最初决策后的12个月内,经理不得不对未来行动作出决策。有三种选择: (1)再购置更多的设备,花费700万元,获得满意合同收入的概率是0.6,余下的5年内每年平均收入400万元;另一方面是合同签订不太理想,其概率是0.4,5年内每年平均收入为150万元。 (2)租借更多的设备,有三种可能结局:一是能以优惠的合同条件从其他单位租借到完全符合要求的设备,发生的概率是0.2,估计5年内每年可得净收入300万元。二是租到租金较高又不完全符合要求的设备,发生的概率是0.5,估计5年内收入每年

决策树算法介绍

3.1 分类与决策树概述 3.1.1 分类与预测 分类是一种应用非常广泛的数据挖掘技术,应用的例子也很多。例如,根据信用卡支付历史记录,来判断具备哪些特征的用户往往具有良好的信用;根据某种病症的诊断记录,来分析哪些药物组合可以带来良好的治疗效果。这些过程的一个共同特点是:根据数据的某些属性,来估计一个特定属性的值。例如在信用分析案例中,根据用户的“年龄”、“性别”、“收入水平”、“职业”等属性的值,来估计该用户“信用度”属性的值应该取“好”还是“差”,在这个例子中,所研究的属性“信用度”是一个离散属性,它的取值是一个类别值,这种问题在数据挖掘中被称为分类。 还有一种问题,例如根据股市交易的历史数据估计下一个交易日的大盘指数,这里所研究的属性“大盘指数”是一个连续属性,它的取值是一个实数。那么这种问题在数据挖掘中被称为预测。 总之,当估计的属性值是离散值时,这就是分类;当估计的属性值是连续值时,这就是预测。 3.1.2 决策树的基本原理 1.构建决策树 通过一个实际的例子,来了解一些与决策树有关的基本概念。 表3-1是一个数据库表,记载着某银行的客户信用记录,属性包括“姓名”、“年龄”、“职业”、“月薪”、......、“信用等级”,每一行是一个客户样本,每一列是一个属性(字段)。这里把这个表记做数据集D。 银行需要解决的问题是,根据数据集D,建立一个信用等级分析模型,并根据这个模型,产生一系列规则。当银行在未来的某个时刻收到某个客户的贷款申请时,依据这些规则,可以根据该客户的年龄、职业、月薪等属性,来预测其信用等级,以确定是否提供贷款给该用户。这里的信用等级分析模型,就可以是一棵决策树。在这个案例中,研究的重点是“信用等级”这个属性。给定一个信用等级未知的客户,要根据他/她的其他属性来估计“信用等级”的值是“优”、“良”还是“差”,也就是说,要把这客户划分到信用等级为“优”、“良”、“差”这3个类别的某一类别中去。这里把“信用等级”这个属性称为“类标号属性”。数据集D中“信用等级”属性的全部取值就构成了类别集合:Class={“优”,

H信息系统项目管理师考点分析之八:决策树分析

信息系统项目管理师考点分析之八:决策树分析 一、决策树分析讲解 决策树分析采用决策树图表进行分析,它描述了每一种可能的选择和这种情况发生的概率。如下图: 其中: 矩形图代表决策点,表示需要在这点上作出选择; 圆形图代表每一种选择的收益点。 P代表概率,P=0.6,表示概率为60%; 各点的投入值如下: M->N调研论证阶段,投入40万; P->Q如采用设计开发方式,需投入260万,如成功则获利600万,失败则罚款100万。 P->R如采用设备更新,需投入160万,如成功则获利600万,失败则罚款100万。 期望值的计算方法:各概率分支的【(获利值-当前整条路径的投入值)*概率值】之和。 根据上面的计算方法,Q、R和N三个收益点的期望值计算如下: Q点收益的期望值=(600-260-40)*0.8+(-100-260-40)*0.2=160 R点收益的期望值=(600-160-40)*0.5+(-100-160-40)*0.5=50 N点收益的期望值计算不同于Q和R点,因为后面决策点P,这种情况,通常我们取后面决策点期望值最大的参与计算,如下: N点收益的期望值=160(这里取Q点)*0.4+(-40)*0.6=40。 结论:通过对Q、R、N点的计算,选择Q点为最佳方案。 注:从历年试题看,实际考试题目要比例题简单。 二、其他软考真题 ●某公司希望举办一个展销会以扩大市场,选择北京、天津、上海、深圳作为候选会址。获利情况除了会址关系外,还与天气有关。天气可分为晴、多云、多雨三种。通过天气预报,估计三种天气情况可能发生的概率为0.25、0.50、0.25,其收益(单位:人民币万元)情况见下表。使用决策树进行决策的结果为(61)。(2009年上半年)

相关主题
文本预览
相关文档 最新文档