决策树——分类——鸢尾花(调用api)

2023-10-28

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import  datasets
from sklearn import  cross_validation
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.metrics import  f1_score,precision_score,recall_score,accuracy_score,classification_report
导入鸢尾花数据:
def load_data():
    iris=datasets.load_iris()
    X_train=iris.data
    y_train=iris.target
    return cross_validation.train_test_split(X_train,y_train,test_size=0.25,random_state=0,stratify=y_train)
def test_DecisionTreeClassifier(*data):
    X_train,X_test,y_train,y_test=data
    clf=DecisionTreeClassifier()
    clf.fit(X_train,y_train)
    
    y_predict=clf.predict(X_test)
    
    print('training:%f'%(clf.score(X_train,y_train)))
    print('test:%f'%(clf.score(X_test,y_test)))
    
    print(classification_report(y_test,y_predict))

测试上一段的代码:

X_train,X_test,y_train,y_test=load_data()#产生用于分类问题的数据集
test_DecisionTreeClassifier(X_train,X_test,y_train,y_test)
def test_DecisionTreeClassifier_criterion(*data):
    '''
    随criterion参数的影响
    衡类分类的质量,支持的标准有‘gini’,代表是Gini impurity(不纯度)与‘entropy’代表的是information gain(信息增益)
    :param data: 可变参数,他是一个元组
    :return 0
    '''
    X_train,X_test,y_train,y_test=data
    criterions=['gini','entropy']
    for criterion in criterions:
        clf = DecisionTreeClassifier(criterion=criterion)
        clf.fit(X_train,y_train)
        y_predict=clf.predict(X_test)
        
        print(classification_report(y_test,y_predict))
        print('critertion:%s'%criterion)
        print('training:%f'%(clf.score(X_train,y_train)))
        print('test:%f'%(clf.score(X_test,y_test)))
test_DecisionTreeClassifier_criterion( X_train,X_test,y_train,y_test)
def test_DecisionTreeClassifier_splitter(*data):
    '''
    测试DecisionTreeClassifier的预测性能随划分类型的影响
    splitter:一种用来在节点中选择分类的策略,支持的策略有‘best’,选择最好的分类,‘random’选择最好的随机分类
    :param data: 可变参数,他是一个元组
    :return 0
    '''
    X_train,X_test,y_train,y_test=data
    splitters=['best','random']
    for splitter in splitters:
        clf = DecisionTreeClassifier(splitter=splitter)
        clf.fit(X_train,y_train)
        
        print('splitter:%s'%splitter)
        
        y_predict=clf.predict(X_test)
        
        print(classification_report(y_test,y_predict))
        print('training:%f'%(clf.score(X_train,y_train)))
        print('test:%f'%(clf.score(X_test,y_test)))
test_DecisionTreeClassifier_splitter( X_train,X_test,y_train,y_test)
def test_DecisionTreeClassifier_depth(*data,maxdepth):
    '''
    测试DecisionTreeClassifier 的预测性能随max_depth参数的影响
    表示树的最大深度,如果是None,则节点会一直拓展直到所有叶子都是纯的或者所有的叶子节点都包含少于Min_sample_
    :param data: 可变参数,他是一个元组
    :param maxdepth:一个整数,用于测试DecisionTreeClassifier的max_depth参数
    :return 0
    '''
    X_train,X_test,y_train,y_test=data
    depths=np.arange(1,maxdepth)
    training_scores=[]
    testing_scores=[]
    for depth in depths:
        clf = DecisionTreeClassifier(max_depth=depth)
        clf.fit(X_train,y_train)
        training_scores.append(clf.score(X_train,y_train))
        testing_scores.append(clf.score(X_test,y_test))
        
        #绘图
    fig=plt.figure()
    ax=fig.add_subplot(1,1,1)
    ax.plot(depths,training_scores,label='training score',marker='o')
    ax.plot(depths,testing_scores,label='testing score',marker='*')
    ax.set_xlabel('maxdepth')
    ax.set_ylabel('score')
    ax.set_title('Decision Tree Classification')
    ax.legend(framealpha=0.5,loc='best')
    plt.show()
test_DecisionTreeClassifier_depth(X_train,X_test,y_train,y_test,maxdepth=10)       






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

决策树——分类——鸢尾花(调用api) 的相关文章

随机推荐

  • 远程注册表访问

    远程注册表访问 注册表访问控件 Registry Access控件 是一个用VC编写的Server Component 它封装了对注册表的所有操作 通常用来扩展VB或其它编程工具的注册表访问功能 系统管理员可以把它嵌入ASP页面中 从而实现
  • QT笔记- 在指定目录创建自定义类型的文件

    函数 过程分为两步 指定包含目录的文件名 和 创建文件 使用的类是QFile类 用到的函数如下 QFile QFile const QString name bool QFile open QIODevice OpenModeFlag mo
  • N元线性函数拟合的C++实现

    一元线性方程可以看做是多元函数的特例 现在用矩阵形式表述多元函数情况下 最小二乘的一般形式 设拟合多项式为 各店到这条曲线的距离之和 即偏差平方和如下 对等式右边求ai的偏导数 得到 把这些等式表示成矩阵的形式 就可以得到下面的矩阵 3 进
  • 【Python开发】Flask开发实战:个人博客(四)

    Flask开发实战 个人博客 四 本篇博客将是 Flask开发实战 个人博客 的最后一篇 本篇文章将会详细介绍博客后台的编写 为了支持管理员管理文章 分类 评论和链接 我们需要提供后台管理功能 通常来说 程序的这一部分被称为管理后台 控制面
  • 程序运行时的存储结构

    程序运行时的存储结构 目标程序在目标机器环境下运行时 只是在自己的运行时的存储空间内完成执行 通常 在有操作系统的情况下 程序在自己的逻辑存储空间内存储和运行 因此 编译程序在生成目标代码时应该明确程序的所有对象在逻辑存储空间是如何存储的
  • 安装完Ubuntu 17.10后要做的几件事

    前几天Ubuntu 17 10终于出来了 正好前几天我电脑重装系统 顺便留了一个分区用来装Linux 所以就在我电脑上安装了Ubuntu 17 10 安装过程就不说了 图形化安装程序 基本安装过几次就熟悉了 所以重点 还是安装完成之后的美化
  • 【Golang 面试算法二叉树 手动建树】

    Golang 面试算法二叉树 手动建树 前言 代码实现 前言 面试中有很多有关二叉树的题目 且需要手动建树 这里记录一下如何用Golang来快速构建一个二叉树 代码实现 我们知道二叉树可以扁平化到数组中 当前节点的左右子节点的在数组中的下标
  • Allegro输出光绘文件规范

    光绘输出操作规范 1 1添加钻孔表 添加钻孔表的具体步骤为 1 通过屏幕右边的Visibility选项的Views列表 将Drill层打开 2 将Visibility选项中的PIN和Via选项都选中 见下图所示 1 2添加钻孔文件 参数设好
  • pyTorch onnx 学习(二)

    添加自定义的onnx operations 在pyTorch中定义的网络图以及其运算 在onnx中不一定支持 因此 需要自定义的添加operators 如果onnx支持则可以直接使用 一下是支持的网络以及运算 add nonzero alp
  • Android定制实现上网限制iptables

    随着智能手机和平板的普及 现在的孩子几乎人手一部手机或平板 所以常常能看到一些孩子抱着手机玩游戏或是浏览网页 一玩就是一整天 家长们不免担心自己的孩子是不是会浏览不适合他们看的网页 是不是玩的时间太长 导致他们对其他的事情 比如运动 学习和
  • Windows pytesseract image_to_osd Invalid resolution 0 dpi. Using 70 instead. Too few characters报错及解决

    Windows pytesseract image to osd Invalid resolution 0 dpi Using 70 instead Too few characters报错及解决 1 安装 python3 7 pip in
  • otsu算法_Otsu 灰度图像阈值算法及实现

    人工智能导论课的第一次作业 文末提供 HTML 文件源码 可直接体验 一 简介 我们要做的 其实就是将一张 彩色 图片 转成黑白图片 二值图 二值图 只有黑色或白色 000 或 fff 0 或 255 看看效果图就基本了解了 左原图 右图经
  • Shell Script—多行注释

    在Shell脚本中 没有专门的多行注释 但可以使用一些技巧来实现多行注释的效果 以下是几种实现多行注释的方式 1 使用 使用多个 字符号 在每一行的最前面添加 字符 即可实现注释 bin sh 这是一段示例代码 此处使用了多行注释 注释语法
  • HIVE厂牌艺人_说唱厂牌 Vol.2:洛杉矶天才厂牌Odd Future Records的开始到结束

    We re F kin Radical been F kin Awesome我们太TMD激进 太TMD耀眼Talked a lotta sh t so far words you re at a loss说着一大堆胡话 让你们都不知所措了
  • resnet18实现cifar10分类

    实验步骤 搭建resnet18网络 数据集加载 模型训练和改进 分析评估 Kaggle提交 网络构建 实验初期拟采用torchvision中实现的resnet18作为网络结构 为了方便修改网络结构 于是重新实现了resnet18网络 res
  • 大数据电影可视化系统

    作者简介 大数据专业硕士在读 CSDN人工智能领域博客专家 阿里云专家博主 专注大数据与人工智能知识分享 专栏推荐 目前在写一个CV方向专栏 后期会更新不限于目标检测 OCR 图像分类 图像分割等方向 虽然付费但会长期更新且价格便宜 感兴趣
  • Conda、Git、pip设置代理教程 解决Torch not compiled with CUDA enabled问题 pip缓存坑 No module named “Crypto“

    Conda设置代理 总结 pip config set global proxy http 127 0 0 1 7890 git config global http proxy http 127 0 0 1 7890 git config
  • mysql密码错误_mysql密码正确却提示错误, 不输入密码反而能登录

    今天部署阿里云服务器 发现之前可以连接的mysql服务器突然连接不上了 密码我确认是正确的 但登录时就是显示密码错误 很崩溃 差点气得我就想重装mysql了 好在经过几番苦寻找到了以下能解决我问题的资料 成功解决了我的问题 万分感谢 便借鉴
  • 15.2 CVPR 会议的时间

    http www cvpapers com cvpr2014 html 表里的P代表paper deadline http iris usc edu Information Iris Conferences html 下面这张表早晚得过期
  • 决策树——分类——鸢尾花(调用api)

    import numpy as np from sklearn tree import DecisionTreeClassifier from sklearn import datasets from sklearn import cros