决策树分类的一个入门示例
2017-08-11 23:41
190 查看
https://www.shiyanlou.com/courses/863 参考教程
节点划分算法:
ID3,利用信息增益进行节点划分,选取信息增益最大的特征作为划分依据,进行节点分裂,不断迭代,直到信息增益足够小或者为0
C4,5,利用信息增益比进行划分
ID3,C4,5共同缺点是容易造成过拟合over-fitting,因此要进行节点修剪
决策树修剪:即优化误差函数:从叶子节点出发,向根节点收缩,如果去掉划分节点的特征后可以使误差函数变小,即删去该节点的分支;
CART算法:上述算法,要先生成决策树,然后修剪,效率低;
因此有一种一步到位的方法:CART算法,同时兼顾决策树的生成和修剪,可以应用在分类和回归问题上;CART在生成分类树使用基尼指数(Gini index)最小化,在生成回归树使用平方损失函数最小化;
决策树进行鸢尾花分类
使用决策树一些关键步骤:
特征选取:信息增益越大,该特征越重要节点划分算法:
ID3,利用信息增益进行节点划分,选取信息增益最大的特征作为划分依据,进行节点分裂,不断迭代,直到信息增益足够小或者为0
C4,5,利用信息增益比进行划分
ID3,C4,5共同缺点是容易造成过拟合over-fitting,因此要进行节点修剪
决策树修剪:即优化误差函数:从叶子节点出发,向根节点收缩,如果去掉划分节点的特征后可以使误差函数变小,即删去该节点的分支;
CART算法:上述算法,要先生成决策树,然后修剪,效率低;
因此有一种一步到位的方法:CART算法,同时兼顾决策树的生成和修剪,可以应用在分类和回归问题上;CART在生成分类树使用基尼指数(Gini index)最小化,在生成回归树使用平方损失函数最小化;
决策树中的一个典型的数据–鸢尾花
from sklearn.tree import DecisionTreeClassifier from sklearn import datasets from sklearn.cross_validation import train_test_split from 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乱序程度 # 模型训练 # 导入决策树,所有参数为默认,还可以引入损失函数(信息熵,基尼指数); # 树深度;叶上最少样本数量,进行裁剪;节点的分 4000 裂策略 dt_model = DecisionTreeClassifier() # 用决策树训练 dt_model.fit(feature_train, target_train) # 使用测试数据测试 predict_results = dt_model.predict(feature_test) # 利用测试数据测试 print predict_results print target_test # 以下两种评比测试结果,传入参数有区别 scores = dt_model.score(feature_test, target_test) print accuracy_score(predict_results, target_test)
相关文章推荐
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 决策树分类的一个入门示例
- 一个小例子带你轻松Keras图像分类入门
- Hiberante集合映射的一个入门示例
- LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏
- (转)Web Service入门简介(一个简单的WebService示例)
- TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作
- LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏
- Web Service入门简介(一个简单的WebService示例)
- python常用函数示例和knn分类的一个实例之海伦约会系统
- OpenCV 入门示例之四:一个简单的变换
- MLiA 贝叶斯分类总结及决策树的一个小问题