Python - 机器学习算法库Scikit-Leran使用详解6(决策树分类算法)
作者:hangge | 2022-09-05 13:06
七、决策树分类算法
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 分类决策树。
#导入 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)