返回 导航

Python / AI

hangge.com

Python - 机器学习算法库Scikit-Leran使用详解6(决策树分类算法)

作者:hangge | 2022-09-05 13:06

七、决策树分类算法

1,基本介绍

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

2,一个简单的决策树分类算法样例

(1)下面对 Sklearn 自带的葡萄酒数据集进行决策树分类算法应用。
(1)sklearn 库提供了 4 个决策树算法:
  • DecisionTreeClassifier():这是一个经典的决策树分类算法
  • ExtraTreeClassifier():该算法属于决策树分类算法。不同于 DecisionTreeClassifier() 算法,ExtraTreeClassifier() 选择“特征维度”作为判别条件时具有随机性,它首先从特征集合中随机抽取 n 个特征维度来构建新的集合,然后再从新的集合中选取“判别条件”。
  • DecisionTreeRegressor():表示用决策树算法解决回归问题
  • ExtraTreeRegressor():该算法同样具有随机性,它与 ExtraTreeClassifier() 随机过程类似,它主要解决机器学习中的回归问题。
(2)4 种方法都可以使用 criterion 参数,该参数具有如下两个可选值:
  • gini:即基尼指数,用于创建 CART 分类决策树(默认值)
  • entropy:即信息增益,用于创建 ID3 分类决策树。
#导入 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)运行结果如下:
评论

全部评论(0)

回到顶部