文章目录
导入数据,数据探索,wine有178个样本数据,13个特征,目标值分为3类
# coding: utf-8
# In[1]:
##导入依赖的包,数据采用红酒数据集
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
##数据探索
wine = load_wine()
wine.data.shape

模型训练
将数据集拆分为0.8的训练集和0.2的测试集
2.1 不带任何参数的默认决策树训练
#将数据转换为df格式:
import pandas as pd
pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)
##生成训练集和测试集
Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.2)
##构建决策树模型 gini
clf = tree.DecisionTreeClassifier()
clf = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest) #返回预测的准确度
score
0.9444444444444444
2.2决策树中用于衡量特征重要性的标准采用entropy
"criterion"是决策树中用于衡量特征重要性的标准。它有两种可选值:“gini"和"entropy”。"gini"表示使用基尼系数来计算特征的重要性,"entropy"表示使用信息增益来计算特征的重要性。在实际应用中,这两种标准都可以使用,具体要看数据集和问题的特点来选择哪种标准更适合。一般来说,如果数据集中的类别分布比较平均,那么使用"Gini"标准更合适;如果数据集中的类别分布不平衡,那么使用"Entropy"标准更合适。
##构建决策树模型 gini
clf = tree.DecisionTreeClassifier(criterion="entropy")
clf = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest) #返回预测的准确度
score
0.9722222222222222
决策树可视化
##打印决策树
feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
import graphviz
dot_data = tree.export_graphviz(clf
,out_file = None
,feature_names= feature_name
,class_names=["琴酒","雪莉","贝尔摩德"]
,filled=True
,rounded=True
)
graph = graphviz.Source(dot_data)
graph

graphviz下载地址
https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi
参考:https://blog.youkuaiyun.com/qq_42257666/article/details/121688656

显示决策树各个特征重要性
##显示决策树各个特征重要性
clf.feature_importances_
[*zip(feature_name,clf.feature_importances_)]

决策树参数优化
3.1决策树中用于衡量特征重要性的标准采用entropy,random_state=30
##打印预测的准确度
clf = tree

最低0.47元/天 解锁文章

4150

被折叠的 条评论
为什么被折叠?



