python决策树运用

什么是决策树?

决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。

决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。

决策树的目的(个人理解)

算出每一种情况发生的概率,从而进行最后的预测
里面涉及了一些优化方法

决策树相关算法

ID3:
ID3算法由Ross Quinlan发明,建立在“奥卡姆剃刀”的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)。ID3算法中根据信息增益评估和选择特征,每次选择信息增益最大的特征作为判断模块建立子结点。
C4.5:
C4.5算法用信息增益率来选择属性,继承了ID3算法的优点。

决策树的实际运用

数据:
在这里插入图片描述
代码:

import pandas as pd
#数据处理
file="E:/text.csv"
data=pd.read_csv(file,encoding="gbk")
x=data.iloc[:,0:3].as_matrix()
y=data.iloc[:,3].as_matrix()
for i in range(len(x)):
    for j in range(len(x[0])):
        if x[i][j]=='是' or x[i][j]=='多':
            x[i][j]=1
        else:
            x[i][j]=0
for i in range(len(y)):
    if y[i]=='高':
        y[i]=1
    else:
        y[i]=0
#格式转换
xf=pd.DataFrame(x)#框架化
yf=pd.DataFrame(y)
x2=xf.as_matrix().astype(int)
y2=yf.as_matrix().astype(int)
#决策树
from sklearn.tree import DecisionTreeClassifier as DTC
dtc=DTC(criterion="entropy")
dtc.fit(x2,y2)
#可视化
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO
with open("E:/dtc.dot",'w') as file:
    export_graphviz(dtc,feature_names=["shixi","time","chuxiao"],out_file=file)

在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述
结果中的value是最终结果的类别
entropy是权值
samples是其夫节点判断结果的样本数
每一个框的第一个值是我们对数据处理后的一个判断。(就像判断一个人的年龄<30,如果是就根据指示跳到下一层,依次类推)
逐层判断,最终得到预测值

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值