[机器学习实战-分类-决策树]-以鸢尾花分类实验为例

整套流程:
1.数据获取,划分训练集测试集
2.模型训练->模型预测->模型评估
3.模型的保存与加载
4.模型可视化
iris数据集简介:共150条数据,三个类(分别:Setosa,Versicolour,Virginica。每个类50条数据),4个维度特征(分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度)
数据源:https://archive.ics.uci.edu/ml/datasets/iris

"""1.数据获取,划分训练集测试集"""
from sklearn import datasets
from sklearn.model_selection import train_test_split

# 数据获取
iris = datasets.load_iris() # 加载 iris 数据集
iris_feature = iris.data    # 特征数据
iris_target = iris.target   # 分类数据
print('类别:',iris.target_names)
print('特征:',iris.feature_names)

# 划分训练集测试集: test_size测试集占比, random_stat为数据混乱程度
feature_train, feature_test, target_train, target_test = train_test_split(iris_feature, iris_target, test_size=0.33, random_state=42)
print(f'划分: 数据集{len(iris_target)}条(训练集{len(target_train)}条,测试集{len(target_test)}条)')
类别: ['setosa' 'versicolor' 'virginica']
特征: ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
划分: 数据集150条(训练集100条,测试集50条)
"""2.模型训练->模型预测->模型评估"""
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 模型训练
dt_model = DecisionTreeClassifier() # 所以参数均置为默认状态
dt_model.fit(feature_train,target_train) # 使用训练集训练模型
# 模型预测
predict_results = dt_model.predict(feature_test) # 使用模型对测试集进行预测
# 模型评估
print('精确率(Precision):',accuracy_score(predict_results, target_test))
精确率(Precision): 1.0
"""3.模型的保存与加载"""
import joblib

# 保存模型:用于以后预测
joblib.dump(dt_model, 'dt_model.pkl')
# 加载模型
new_dt_model = joblib.load('dt_model.pkl')

[注].模型可视化需安装graphviz软件,安装时勾选添加到Path,安装后命令行执行dot -c
官网下载地址:http://www.graphviz.org/

"""4.模型可视化"""
import graphviz
from sklearn import tree

dot_data = tree.export_graphviz(dt_model,
                                feature_names=['sepal length','sepal width','petal length','petal width'], # 特征名称
                                class_names=['setosa', 'versicolor', 'virginica'], # 目标变量的类别名
                                filled=True, rounded=True,
                                special_characters=True)
graph = graphviz.Source(source=dot_data,filename='iris_dt_model.gv',format='png',)
graph.render(cleanup=True) # 保存模型可视化为png图片
'iris_dt_model.gv.png'

[至此完结] Andy:2020-07-19 Q597966823

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值