提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
#博学谷IT学习技术支持#
一、决策树
决策树是一种树形模型,也是一种十分常用的分类和回归方法。在本章节,我们将要学习决策树的构建原理,具体内容如下:
了解决策树算法的基本思想
掌握 ID3 决策树的构建原理
掌握 C4.5 决策树的构建原理
掌握 CART 决策树的构建原理
了解剪枝的作用
二、决策树介绍
有的同学可能在大学学习过一门课程叫《数据结构》,里面有一个重要的结构就是“树”,和现实生活中的树一样,树的主要由四部分树根、树干、树枝、树叶组成,今天的决策树也是一种树结构,大家学习的时候可以想象现实生活中的树来来理解。
决策树算法是一种监督学习算法,英文是Decision tree。
决策树思想的来源非常朴素,试想每个人的大脑都有类似于if-else这样的逻辑判断,这其中的if表示的是条件,if之后的then就是一种选择或决策。程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。
基于鸢尾花数据绘制图像
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:,2:]
y = iris.target
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.scatter(X[y==2,0],X[y==2,1])
plt.show()
训练决策树模型
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2,criterion="entropy")
tree.fit(X,y)
依据模型绘制决策树的决策边界
#找到模型的决策边界,并绘制图像(此方法所用到的api不需要掌握,能够调用就行)
def plot_decision_boundary(model,axis):
x0,x1 = np.meshgrid(
np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)).reshape(-1,1),
np.linspace(axis[2],axis[3],int((axis[3]-axis[2])*100)).reshape(-1,1)
)
X_new = np.c_[x0.ravel(),x1.ravel()]
y_predict = model.predict(X_new)
zz = y_predict.reshape(x0.shape)
from matplotlib.colors import ListedColormap
custom_map = ListedColormap(["#EF9A9A","#FFF59D","#90CAF9"])
plt.contourf(x0,x1,zz,linewidth=5,cmap=custom_map)
plot_decision_boundary(tree,axis=[0.5,7.5,0,3])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.scatter(X[y==2,0],X[y==2,1])
plt.show()
树模型可视化
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plot_tree(tree,filled=True)
plt.show()
三、小结
决策树算法:
是非参数学习算法
可以解决分类(多分类)问题
可以解决回归问题:落在叶子节点的数据的平均值作为回归的结果
决策树API:
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import plot_tree
构建决策树的三个步骤:
特征选择:选取有较强分类能力的特征
决策树生成
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了决策树