决策树分类的一个入门示例
来源:互联网 发布:网络arp攻击怎么办 编辑:程序博客网 时间:2024/05/21 11:11
https://www.shiyanlou.com/courses/863 参考教程
决策树进行鸢尾花分类
使用决策树一些关键步骤:
- 特征选取:信息增益越大,该特征越重要
- 节点划分算法:
- ID3,利用信息增益进行节点划分,选取信息增益最大的特征作为划分依据,进行节点分裂,不断迭代,直到信息增益足够小或者为0
- C4,5,利用信息增益比进行划分
- ID3,C4,5共同缺点是容易造成过拟合over-fitting,因此要进行节点修剪
- 决策树修剪:即优化误差函数:从叶子节点出发,向根节点收缩,如果去掉划分节点的特征后可以使误差函数变小,即删去该节点的分支;
- CART算法:上述算法,要先生成决策树,然后修剪,效率低;
因此有一种一步到位的方法:CART算法,同时兼顾决策树的生成和修剪,可以应用在分类和回归问题上;CART在生成分类树使用基尼指数(Gini index)最小化,在生成回归树使用平方损失函数最小化;
决策树中的一个典型的数据–鸢尾花
from sklearn.tree import DecisionTreeClassifierfrom sklearn import datasetsfrom sklearn.cross_validation import train_test_splitfrom sklearn.metrics import accuracy_score# 这是决策树中的一个典型的数据--鸢尾花iris = datasets.load_iris()# 特征数据iris_feature = iris.data# 分类数据iris_target = iris.target#print iris_target# 此时数据是按不同的类别顺序排列的,将数据随机的分为训练集和测试集feature_train, feature_test, target_train, target_test = train_test_split(iris_feature, iris_target, test_size=0.33, random_state=56)# test_size测试数据占比,一般是70%训练,30%测试# random_state乱序程度# 模型训练# 导入决策树,所有参数为默认,还可以引入损失函数(信息熵,基尼指数);# 树深度;叶上最少样本数量,进行裁剪;节点的分裂策略dt_model = DecisionTreeClassifier()# 用决策树训练dt_model.fit(feature_train, target_train)# 使用测试数据测试predict_results = dt_model.predict(feature_test)# 利用测试数据测试print predict_resultsprint target_test# 以下两种评比测试结果,传入参数有区别scores = dt_model.score(feature_test, target_test)print accuracy_score(predict_results, target_test)
阅读全文
0 0
- 决策树分类的一个入门示例
- 决策树入门示例(Python)
- 决策树入门示例(Python)
- R完成--决策树分类 一个使用rpart完成决策树分类的例子如下:
- 基于决策树的分类
- 分类决策树的理解
- MLiA 贝叶斯分类总结及决策树的一个小问题
- 用于分类的决策树简介
- 决策树分类
- 分类:决策树
- 决策树分类
- 分类-决策树
- 决策树分类
- 分类决策树
- 分类决策树
- 分类决策树
- 一个简单的Hibernate入门示例
- Hiberante集合映射的一个入门示例
- Python中reduce与lambda的结合使用
- zoj3609----Modular Inverse (扩展欧几里德)
- JavaScript离线应用与客户端存储
- Unity3D shader(9)——vertex shader(phong光照和BlinnPhong光照)
- git学习
- 决策树分类的一个入门示例
- TensorFlow:Object_Detection_API在Windows10上的配置
- Mac系统隐藏和显示文件
- 用最简单快捷的方法用js写一个计算器
- HashMap的实现原理
- brctl网桥配置命令、网卡的链路聚合
- Log4j类详解(org.apache.log4j.Logger)
- hibernate学习笔记
- Spring的四种依赖注入方式实例