Python - 机器学习算法库Scikit-Leran使用详解6(决策树分类算法)
七、决策树分类算法
1,基本介绍
(1)决策树(Decision Tree)又称为判定树,是一种典型的分类方法,它是一种以树结构(包括二叉树和多叉树)形式来表达的预测分析模型。
(2)决策树算法一种基于 if-then-else 规则的有监督学习算法。它首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。
(3)常见的决策树算法有 ID3, C4.5 和 CART 等。

2,一个简单的决策树分类算法样例
(1)下面对 Sklearn 自带的葡萄酒数据集进行决策树分类算法应用。
(1)sklearn 库提供了 4 个决策树算法:
- DecisionTreeClassifier():这是一个经典的决策树分类算法
- ExtraTreeClassifier():该算法属于决策树分类算法。不同于 DecisionTreeClassifier() 算法,ExtraTreeClassifier() 选择“特征维度”作为判别条件时具有随机性,它首先从特征集合中随机抽取 n 个特征维度来构建新的集合,然后再从新的集合中选取“判别条件”。
- DecisionTreeRegressor():表示用决策树算法解决回归问题
- ExtraTreeRegressor():该算法同样具有随机性,它与 ExtraTreeClassifier() 随机过程类似,它主要解决机器学习中的回归问题。
(2)4 种方法都可以使用 criterion 参数,该参数具有如下两个可选值:
- gini:即基尼指数,用于创建 CART 分类决策树(默认值)
- entropy:即信息增益,用于创建 ID3 分类决策树。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #导入 sklearn 提供的葡萄酒数据 from sklearn.datasets import load_wine #导入skleran 提供的决策树分类器 from sklearn.tree import DecisionTreeClassifier #导入skleran 提供的分割数据集的方法 from sklearn.model_selection import train_test_split #导入pandas import pandas as pd #加载数据集 iris = load_wine() #分割数据集训练集,测试集 x_train,x_test,y_train,y_test = train_test_split(iris[ 'data' ],iris[ 'target' ],random_state = 0 ) #创建一个决策树分类器模型 model = DecisionTreeClassifier() #训练模型 model.fit(x_train,y_train) #训练后用测试集对模型进行评分 print ( "模型评分:" ,model.score(x_test,y_test)) print ( '-----------------------------------------------------' ) print ( '测试集前5条数据特征值:' ) print (pd.DataFrame(x_test).head( 5 )) print ( '-----------------------------------------------------' ) print ( '测试集前5条数据目标值:' ) print (pd.DataFrame(y_test).head( 5 )) print ( '-----------------------------------------------------' ) #使用模型预测 y_predict = model.predict(x_test) print ( '使用模型预测测试集前5条数据的目标值:' ) print (pd.DataFrame(y_predict).head( 5 )) |
(2)运行结果如下:
