机器学习基础03——决策树算法
决策树算法的基本概念
-
决策树算法是一种树型结构,包括决策节点(内部节点),分支和叶节点三部分。
-
决策节点:代表某个测试,通常对应于待分类对象的某个属性(属性结构的有向边)
-
叶节点:存放某个类标号值,表示一种可能的分类9结果。
-
分支:表示某个决策节点的不同取值。
决策树是一种典型的分类方法
首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。
本质上决策树是通过一系列规则对数据进行分类的过程。
决策树的优点
-
推理过程容易理解,决策推理过程可以表示成If Then形式;
-
推理过程完全依赖于属性变量的取值特点;
-
可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性,减少变量的数目提供参考。
利用决策树算法对红酒集数据进行预测
-
#计算深度为1时的训练集准确率
-
import numpy as np
-
import matplotlib.pyplot as plt
-
from sklearn import tree
-
from sklearn import datasets
-
from sklearn.model_selection import train_test_split
-
wine=datasets.load_wine()
-
X=wine.data
-
y=wine.target
-
#将数据分割为测试集和训练集
-
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=33)
-
#配置决策树,此处深度设置为1
-
clf = tree.DecisionTreeClassifier(max_depth = 1)
-
clf.fit(X_train,y_train)
-
score_train=round(clf.score(X_train,y_train),2)
-
print(f'训练集的得分为:{score_train}')
-
#计算不同深度的情况下,决策树的准确率
-
depth=[1,3,5,7,9]
-
train=[]
-
test=[]
-
for i in depth:
-
clf = tree.DecisionTreeClassifier(max_depth = i)
-
clf.fit(X_train,y_train)
-
score_train=round(clf.score(X_train,y_train),2)
-
train.append(score_train)
-
score_test=round(clf.score(X_test,y_test),2)
-
test.append(score_test)
-
print(f'决策树的深度为{i}时,训练集的得分为:{score_train},测试集的得分为:{score_test}')
-
plt.plot(depth,train)
-
plt.plot(depth,train,marker="x",color="r",label = "training score")
-
plt.plot(depth,test,marker="o",color="g",label = "testing score")
-
plt.legend()
-
plt.show()
-
#根据上图可知,深度为5时,测试集和训练集的准确率较高,画出深度为5的决策树模型
-
clf = tree.DecisionTreeClassifier(max_depth = 5)
-
clf.fit(X_train,y_train)
-
tree.plot_tree(decision_tree=clf,filled=True)
-
plt.show()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggceea
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01