机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类

问题如下:

使用sklearn的决策树算法对葡萄酒数据集进行分类,要求:

①划分训练集和测试集(测试集占20%)

②对测试集的预测类别标签和真实标签进行对比

③输出分类的准确率

④调整参数比较不同算法(ID3,C4.5,CART)的分类效果。

代码实现:

  1. 导入依赖包

    #导入相关库
    import sklearn
    from sklearn.model_selection import train_test_split
    from sklearn import tree                                 #导入tree模块
    from sklearn.datasets import load_wine
    from math import log2
    import pandas as pd
    import graphviz
    import treePlotter
    
  2. 导入数据集

    #导入数据集
    wine = load_wine()
    X = wine.data   #X
    Y = wine.target #Y
    features_name = wine.feature_names
    print(features_name)
    pd.concat([pd.DataFrame(X),pd.DataFrame(Y)],axis=1)
    #打印数据
    

  3. 划分数据集,数据集划分为测试集占20%;

    #划分数据集,数据集划分为测试集占20%;
    x_train, x_test, y_train, y_test = train_test_split(X, Y,test_size=0.2)
    # print(x_train.shape)    #(142, 13)
    # print(x_test.shape)     #(36, 13)
    
  4. 导入模型,进行训练

    #采用C4.5算法进行计算
    #获取模型
    model = tree.DecisionTreeClassifier(criterion="entropy",splitter="best",max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=None,random_state=None,max_leaf_nodes=None,class_weight=None);
    model.fit(x_train,y_train)
    score = model.score(x_test,y_test)
    y_predict = model.predict(x_test)
    print('准确率为:',score)
    #准确率为: 0.9444444444444444
    
  5. 对测试集的预测类别标签和真实标签进行对比

    pd.concat([pd.DataFrame(x_test),pd.DataFrame(y_test),pd.DataFrame(y_predict)],axis=1)
    #打印数据,对测试集的预测类别标签和真实标签进行对比
    


最后两列为真实标签和预测类别标签

  1. 调整参数比较不同算法(ID3,C4.5,CART)的分类效果

    #采用CART算法进行计算
    #获取模型
    model = tree.DecisionTreeClassifier(criterion="gini",splitter="best",max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=None,random_state=None,max_leaf_nodes=None,class_weight=None);
    model.fit(x_train,y_train)
    score = model.score(x_test,y_test)
    y_predict = model.predict(x_test)
    print('准确率为:',score)
    #准确率为: 1.0
    
  2. 画出最后预测的树

    feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']dot_data = tree.export_graphviz(model,out_file=None,feature_names=feature_name,class_names=['二锅头','苦荞','江小白'],filled=True,rounded=True)
    graph = graphviz.Source(dot_data)
    graph
    #graph.render('tree')
    

机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类相关推荐

  1. scikit-learn决策树算法(鸢尾花数据集、餐饮饭店销量)

    文章目录 实验三.scikit-learn决策树算法 一.实验目的 1. 熟悉掌握决策树的原理 2. 使用scikit-learn库中的对应函数实现决策树分类. 二.能力图谱 三.实验工具 1. An ...

  2. FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理

    分类技术(或分类法)是一种根据输入数据建立分类模型的系统方法,分类法的例子包括决策分类法,基于规则的分类法,神经网络,支持向量机和朴素贝叶斯分类法.这些技术都使用一种学习算法(learning alg ...

  3. 机器学习算法(4)—— 决策树算法

    决策树算法 1 决策树介绍 2 信息熵 3 决策树划分依据 3.1 信息增益 3.2 信息增益率 3.3 基尼指数 3.4 小结 4. cart 剪枝 4.1 为何要 cart 剪枝 4.2 常用的剪 ...

  4. 【机器学习】这份分类决策树算法介绍请收好!

    摘要: 决策树在机器学习算法中是一个相对简单的算法,如何不能进行适当的剪枝就容易造成模型的过拟合.决策树算法也是当前很多集成学习算法的基础,集成算法的效果往往比单独使用决策树算法效果更好. 关键词: ...

  5. 利用决策树算法在鲍鱼数据集上对年龄进行预测

    在上一篇文章中,通过调取sklearn库中的tree模块来构建在鲍鱼数据集上的决策树,并对测试集鲍鱼的年龄进行预测,但是,通过调库的方式只能处理数值型的属性,若数据集中既包含连续型属性和离散型属性,则 ...

  6. 决策树算法:对鸢尾花进行分类

    文章目录 一.什么是决策树 二.对鸢尾花进行分类 三.决策树可视化 三.决策树算法总结 一.什么是决策树 不用语言描述,直接看图 关于是否去上课,首先看的是是否能起床,然后课程,然后人数,然后是否点名 ...

  7. 机器学习Sklearn实战——决策树算法

    sklearn-str类型数据量化操作 OrdinalEncoder import numpy as np import pandas as pd from sklearn.neighbors imp ...

  8. 机器学习算法(3:决策树算法)

    一.决策树简介 决策树是附加概率结果的一个树状的决策图,是直观的运用统计概率分析的图法.机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,一颗决策树是一棵有向无环树,它由若干个节点 ...

  9. 基于sklearn的决策树算法

    1.决策树介绍 决策树简单的理解为if-then的集合,其优点主要有分类速度快.可读性等.决策树的生成主要可分为三个步骤:特征的选择.决策树的生成.决策树的剪枝. 1.1特征选择 对于结点的选择,总得 ...

最新文章

  1. 理解学习this指向问题
  2. Numpy Axis
  3. 多线程中Local Store Slot(本地存储槽)[转]
  4. a标签download属性无效_HTML从零开始——链接标签
  5. 用字符串表达式访问JSON数据(java,fastjson)
  6. 关于从EXCEL中导入到SQL server中的问题
  7. PHP之cookie免登录
  8. linux中删除特殊文件
  9. Product of Array Except Self
  10. android 技术点记录
  11. centos7.0配置php环境,如何在centos7中配置一个php开发环境
  12. RS232和RS485通讯接口的区别
  13. DXP-2004软件安装
  14. opencv如何隐藏窗口
  15. MailServer配置Foxmail
  16. 一个大学生的人生随笔
  17. 在windows环境下搭建mac os
  18. 2022年第一季度的十个Web3项目
  19. BRISK特征提取算法 .
  20. 阈值分割:基本全局阀值法、上下阀值法、迭代法

热门文章

  1. 【推荐系统】协同过滤浅入(基于用户/项目/内容/混合方式)
  2. 请收下,700+页PDF社区精化!
  3. LeetCode376 摇摆序列
  4. NDK制作一个安卓执行程序
  5. 【vue+a-form+字体图标展示】在form表单中加入svg字体图标列表,新增操作详解
  6. [BUUCTF]PWN——judgement_mna_2016(32位fmt)
  7. 原子性、可见性、有序性解决方案
  8. 《大长今》分集剧情介绍(上)
  9. 智能存储 | 视频 DNA ,独一无二的安全标识
  10. 搭建hadoop 集群,出现 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).