菜菜的scikit-klearn课1.0:

Scikit-learn (`sklearn`) 教程 除了使用提供的标准模型外,你还可以通过继承和自定义自己的估计器。# 创建并使用自定义分类器。 阅读详情

应用decision的总体流程

from sklearn import tree         #导入需要的模块
clf = tree.DecisionTreeClassifier()   #实例化
clf = clf.fit(X_train,y_train)       #用训练集数据训练模型
result = clf.score(X_test,y_test)     #导入测试集,从接口中调用需要的信息
调参

通过设置 tree.DecisionTreeClassifier里,树的最大深度 ,以及特征切割方法都可以来探索最好的模型

clf = tree.DecisionTreeClassifier(criterion="entropy"
                ,random_state=30
                ,splitter="random"
                ,max_depth=3
                ,min_samples_leaf=10
                ,min_samples_split=10
                )
案例分析

最后通过一个小例子,制造三种类型的数据集:月亮形,二分类形,圆形。然后再使用决策树来分类。
代码粘贴在最后,先讲重点学习的地方:

按照分类,来画不同颜色的背景代码:

   #ravel()能够将一个多维数组转换成一维数组
    #np.c_是能够将两个数组组合起来的函数
    #在这里,我们先将两个网格数据降维降维成一维数组,再将两个数组链接变成含有两个特征的数据,再带入决策
    #树模型,生成的Z包含数据的索引和每个样本点对应的类概率,再切片,且出类概率
    Z = clf.predict_proba(np.c_[array1.ravel(),array2.ravel()])[:, 1]

    #np.c_[np.array([1,2,3]), np.array([4,5,6])]

    #将返回的类概率作为数据,放到contourf里面绘制去绘制轮廓
    Z = Z.reshape(array1.shape)
    
    
    ##############
    ax.contourf(array1, array2, Z, cmap=cm, alpha=.7)

只在第一行设置标题:

    #我们有三个坐标系,但我们只需要在第一个坐标系上有标题,因此设定if ds_index==0这个条件
    if ds_index == 0:
        ax.set_title("Decision Tree")

图片显示紧凑:

plt.tight_layout()
plt.show()

对比
在这里插入图片描述
没有紧凑的:
在这里插入图片描述

可以看到决策树,对于圆形的数据,分类没有其他的理想,对于二分类,表现还是不错的。

总结

在这里插入图片描述

问题

1.使用的graphviz画图,一直没有显示出来,各种问题

graph = graphviz.Source(dot_data)
graph

显示的是一个地址,还不会处理。

代码:

文件名字:descisionTree_wine.ipynb

#创建画布,宽高比为6*9
figure = plt.figure(figsize=(6, 9))
#设置用来安排图像显示位置的全局变量i
i = 1
#开始迭代数据,对datasets中的数据进行for循环
for ds_index, ds in enumerate(datasets):

    #对X中的数据进行标准化处理,然后分训练集和测试集
    X, y = ds
    X = StandardScaler().fit_transform(X)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4,
    random_state=42)

    #找出数据集中两个特征的最大值和最小值,让最大值+0.5,最小值-0.5,创造一个比两个特征的区间本身更大
    #一点的区间
    x1_min, x1_max = X[:, 0].min() - .5, X[:, 0].max() + .5
    x2_min, x2_max = X[:, 1].min() - .5, X[:, 1].max() + .5

    #用特征向量生成网格数据,网格数据,其实就相当于坐标轴上无数个点
    #函数np.arange在给定的两个数之间返回均匀间隔的值,0.2为步长
    #函数meshgrid用以生成网格数据,能够将两个一维数组生成两个二维矩阵。
    #如果第一个数组是narray,维度是n,第二个参数是marray,维度是m。那么生成的第一个二维数组是以
    #narray为行,m行的矩阵,而第二个二维数组是以marray的转置为列,n列的矩阵
    #生成的网格数据,是用来绘制决策边界的,因为绘制决策边界的函数contourf要求输入的两个特征都必须是二
    #维的
    array1,array2 = np.meshgrid(np.arange(x1_min, x1_max, 0.2),
            np.arange(x2_min, x2_max, 0.2))
    #接下来生成彩色画布
    #用ListedColormap为画布创建颜色,#FF0000正红,#0000FF正蓝
    cm = plt.cm.RdBu
    cm_bright = ListedColormap(['#FF0000', '#0000FF'])

    #在画布上加上一个子图,数据为len(datasets)行,2列,放在位置i上
    ax = plt.subplot(len(datasets), 2, i)
    

    #到这里为止,已经生成了0~1之间的坐标系3个了,接下来为我们的坐标系放上标题
    #我们有三个坐标系,但我们只需要在第一个坐标系上有标题,因此设定if ds_index==0这个条件
    if ds_index == 0:
        ax.set_title("Input data")

    #将数据集的分布放到我们的坐标系上
    #先放训练集
    ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train,
       cmap=cm_bright,edgecolors='k')
    #放测试集
    ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test,cmap=cm_bright, alpha=0.6,edgecolors='k')
              #为图设置坐标轴的最大值和最小值,并设定没有坐标轴
    ax.set_xlim(array1.min(), array1.max())
    ax.set_ylim(array2.min(), array2.max())
    ax.set_xticks(())
    ax.set_yticks(())

    #每次循环之后,改变i的取值让图每次位列不同的位置
    i += 1

    #至此为止,数据集本身的图像已经布置完毕,运行以上的代码,可以看见三个已经处理好的数据集

    #############################从这里开始是决策树模型##########################

    #迭代决策树,首先用subplot增加子图,subplot(行,列,索引)这样的结构,并使用索引i定义图的位置
    #在这里,len(datasets)其实就是3,2是两列
    #在函数最开始,我们定义了i=1,并且在上边建立数据集的图像的时候,已经让i+1,所以i在每次循环中的取值
    #是2,4,6
    ax = plt.subplot(len(datasets),2,i)

    #决策树的建模过程:实例化 → fit训练 → score接口得到预测的准确率
    clf = DecisionTreeClassifier(max_depth=5)
    clf.fit(X_train, y_train)
    score = clf.score(X_test, y_test)

    #绘制决策边界,为此,我们将为网格中的每个点指定一种颜色[x1_min,x1_max] x [x2_min,x2_max]
    #分类树的接口,predict_proba,返回每一个输入的数据点所对应的标签类概率
    #类概率是数据点所在的叶节点中相同类的样本数量/叶节点中的样本总数量
    #由于决策树在训练的时候导入的训练集X_train里面包含两个特征,所以我们在计算类概率的时候,也必须导入
    #结构相同的数组,即是说,必须有两个特征
    #ravel()能够将一个多维数组转换成一维数组
    #np.c_是能够将两个数组组合起来的函数
    #在这里,我们先将两个网格数据降维降维成一维数组,再将两个数组链接变成含有两个特征的数据,再带入决策
    #树模型,生成的Z包含数据的索引和每个样本点对应的类概率,再切片,且出类概率
    Z = clf.predict_proba(np.c_[array1.ravel(),array2.ravel()])[:, 1]

    #np.c_[np.array([1,2,3]), np.array([4,5,6])]

    #将返回的类概率作为数据,放到contourf里面绘制去绘制轮廓
    Z = Z.reshape(array1.shape)
    
    
    ##############
    ax.contourf(array1, array2, Z, cmap=cm, alpha=.7)

    #将数据集的分布放到我们的坐标系上
    # 将训练集放到图中去
    ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright,
       edgecolors='k')
    # 将测试集放到图中去
    ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright,
       edgecolors='k', alpha=0.6)

    #为图设置坐标轴的最大值和最小值
    ax.set_xlim(array1.min(), array1.max())
    ax.set_ylim(array2.min(), array2.max())
    #设定坐标轴不显示标尺也不显示数字
    ax.set_xticks(())
    ax.set_yticks(())

    #我们有三个坐标系,但我们只需要在第一个坐标系上有标题,因此设定if ds_index==0这个条件
    if ds_index == 0:
        ax.set_title("Decision Tree")

    #写在右下角的数字  
    ax.text(array1.max() - .3, array2.min() + .3, ('{:.1f}%'.format(score*100)),size=15, horizontalalignment='right')

    #让i继续加一
    i += 1
#plt.tight_layout()
plt.show()
菜菜sklearn课程讲义.rar 适合正在学习机器学习sklearn库的使用教程,关注即可下载哦~ 立即下载

相关推荐

史上最全的菜菜的sklearn学习[教程很详细].rar

史上最全的菜菜的sklearn学习[教程很详细

机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)

机器学习库Scikit-Learn

Triumph19的博客 4913

【机器学习】菜菜的sklearn课堂(1-12全课).zip

配套的相关资料,好东西。菜菜的课程,看了就知道是好东西了。 01 决策树课件数据源码 02随机森林 03数据预处理和特征工程 04主成分分析PCA与奇异值分解SVD 05逻辑回归与评分卡 06聚类算法Kmeans 07支持向量机上 08支持向量机下 09回归大家族:线性回归,岭回归,Lasso与多项式回归 010朴素贝叶斯 011XGBoost

scikit-learn学习

scikit-learn是python中常见的机器学习库,简写为sklearn sklearn包含很多机器学习方式 Classification 分类 Regression 回归 Clustering 非监督分类 Dimensionality reduction 数据降维 Model Selection 模型选择 Preprocessing 数据预处理 使用模型的步骤 导入模块 ...

酸乳乳酸的博客 315

菜菜的scikit-learn课堂源码及文档.rar

菜菜的scikit-learn课堂源码及文档 菜菜的scikit-learn课堂01 sklearn入门 & 决策树在sklearn中的实现.pdf 菜菜的scikit-learn课堂02 随机森林在sklearn中的实现.pdf 菜菜的scikit-learn课堂03 sklearn中的数据预处理和特征工程.pdf 菜菜的scikit-learn课堂04 sklearn中的降维算法PCA和SVD.pdf 菜菜的scikit-learn课堂05 sklearn中的逻辑回归.pdf 菜菜的scikit-learn课堂06 sklearn中的聚类算法K-Means.pdf 菜菜的scikit-learn课堂07 sklearn中的支持向量机SVM(一).pdf 菜菜的scikit-learn课堂08 sklearn中的支持向量机SVM - 案例直播课.pdf 菜菜的scikit-learn课堂09 sklearn中的线性回归大家族.pdf 菜菜的scikit-learn课堂10 sklearn中的朴素贝叶斯.pdf 菜菜的scikit-learn课堂11 sklearn与XGBoost.pdf 菜菜的scikit-learn课堂12 sklearn中的神经网络.pdf 预处理 - 数据.zip SVM live code.zip

高通Camera HAL3调试实战:如何用camxoverridesettings.txt高效抓取日志与dump图像数据

本文深入探讨了高通Camera HAL3调试中camxoverridesettings.txt文件的高效应用,重点介绍了如何通过该文件精准控制日志输出级别与dump图像数据,帮助开发者快速定位移动影像系统中的问题。文章详细解析了日志分级配置、图像数据捕获技巧及典型问题排查流程,为高通Camera HAL3项目开发提供了实用技术点。

weixin_30315905的博客 861

Python之Sklearn使用教程

1.Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点: 简单高效的数据挖...

谓之小一 17万+

MTK6769平台Type-C充电全解析:从硬件管脚到PD协议实战(Android15环境)

本文深入解析了MTK6769平台在Android 15环境下Type-C充电的完整链路。从硬件管脚(特别是核心的CC引脚)功能与连接,到USB-PD协议报文抓取与实战分析,并结合MTK平台PD芯片驱动与充电IC驱动的软件框架,提供了从硬件设计到软件调试的系统性解决方案和常见问题排查案例。

ol78901234的博客 309

菜菜的机器学习sklearn 课件_机器学习 Python scikit-learn 中文文档(3)使用 sklearn 介绍机器学习...

与官方文档完美匹配的中文文档,请访问 Python 机器学习包 - scikit-learn 0.20.2 documentation与官方文档完美匹配的中文文档,请访问 Python 机器学习包 - scikit-learn 0.20.2 documentation​www.studyai.cnLogo首页 安装 文档 案例Fork me on GitHubPreviousscikit-lear...

weixin_39774808的博客 504

论文阅读:Visual Relationship Detection with Language Priors

Visual Relationship Detection with Language Priors(ECCV2016) 文章   尽管大多数的relationship并不常见,但是它们的object和predicate却更频繁地独立出现。paper用这个insight分别独立训练训练object和predicate的模型,然后再进行组合来预测relationship。Visual relatio...

Kivee的博客 2877

保姆级教程:用Python从UCI下载波士顿房价数据集,手把手跑通线性回归、岭回归和Lasso

本文提供了一份保姆级教程,详细讲解如何用Python从UCI下载波士顿房价数据集,并手把手实现线性回归、岭回归和Lasso回归模型。内容涵盖数据获取、清洗、特征分析到模型构建与评估的全流程,特别适合机器学习初学者掌握波士顿房价预测这一经典案例。

weixin_34254848的博客 476

scikit-learn机器学习--特征处理

参考并推荐:菜菜的sklearn课堂:http://edu.cda.cn/course/982 目录 1.归一化:preprocessing.MinMaxScaler 1.1实战部分: 1.2实战部分:numpy实现归一化 2.标准化 preprocessing.StandardScaler 2.1实战部分 3.汇总 4.缺失值处理 4.1实战部分 4.2实战部分:panda...

刘宏宇的博客 2532

Redis中什么是Big Key(大key)问题?如何解决Big Key问题?

通俗易懂的讲,Big Key就是某个key对应的value很大,占用的redis空间很大,本质上是大value问题。key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。redis中这些Big Key对应的value值很大,在序列化/反序列化过程中花费的时间很大,因此当我们操作Big Key时,通常比较耗时,这就可能导致redis发生阻塞,从而降低redis性能。用几个实际的例子对大Key的特征进行描述:● 一个String类型的Key,它的值为5MB(数据过大); ● 一

weixiaohuai的博客 3万+

matlab数据无量纲化_sklearn中的数据预处理和特征工程

小伙伴们大家好~o( ̄▽ ̄)ブ,我是菜菜,我的开发环境是Jupyter lab,所用的库和版本大家参考:Python 3.7.1(你的版本至少要3.4以上Scikit-learn 0.20.0 (你的版本至少要0.19Numpy 1.15.3, Pandas 0.23.4, Matplotlib 3.0.1, SciPy 1.1.01 sklearn中的数据预处理和特征工程sklearn中包含众多...

weixin_30582289的博客 580

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 355

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 613

机器学习入门之sklearn介绍

机器学习入门之sklearn介绍 SKlearn简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。 SKlearn官网链接:http://scikit-learn.org/stable/index.html 在工...

qq_41954204的博客 586

【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值

ChatGPT 是由 OpenAI 开发的一种先进的大型语言生成模型,能够理解和生成准确、自然且连贯的文本。文本生成数据分析内容审核语义理解自然语言推理以及其他众多任务ChatGPT是一种基于GPT-3.5架构的大型语言模型,由OpenAI公司开发。该模型在自然语言处理领域有着广泛的应用,可以用于文本生成、文本分类、情感分析、问答系统等任务。本文将从模型的架构、训练方式、优缺点等方面对ChatGPT进行详细介绍。一、模型架构。

AI天才研究院 2万+

SKLearn分类树在合成数集上的表现

小伙伴们大家好~o( ̄▽ ̄)ブ,我是菜菜,这里是我的sklearn课堂 我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上 Scikit-learn 0.20.0 (你的版本至少要0.20 Graphviz 0.8.4 (没有画不出决策树哦,安装代码conda install python-graphviz Numpy 1.15.3,...

CDA数据分析师 381

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【机器学习实战】使用sklearn中的高斯朴素贝叶斯实现对手写数字数据集的分类

结果: sklearn菜菜

在热爱技术的路上一直前行。 1064

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

基于sklearn的决策树实现

sklearn 本文基于菜菜的机器学习教程。 文章目录sklearn决策树参数表示数据预处理分离特征(x)与标签(y)划分训练集与测试集建立模型基础代码交叉验证调参可视化 决策树 参数表示 决策树中有参数如下: DecisionTreeClassifier(criterion="gini" , splitter="best" , max_depth=None , min_samples_split=2

newsunson的博客 549

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

练习:使用 scikit-learn 的 kNN 分类算法实现水果识别器

使用k近邻距离算法创建一个水果识别器,根据水果的属性,判断该水果的种类

qq_38220914的博客 1381

菜菜的sklearn课堂——随机森林

1.概述 1.1 集成算法概述 集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。 1.2 sklearn中的集成算法 sklearn中的集成算法模块ensemble 类 类的功能 ensemble.AdaBoostClassifier AdaBoost分类 ensemble.AdaBoostRegressor Adaboost回归 ensemble.BaggingClassifier 装袋分类器 ensemble.Bagg

simliyzch的博客 3314

klearn基础学习(还没学完

klearn基础学习(还没学完

weixin_73897131的博客 265

【机器学习】klearn基础教程

scikit-learn(通常缩写为sklearn)是一个用于Python编程语言的强大机器学习库。它提供了各种分类、回归、聚类算法,以及数据预处理、降维和模型评估的工具。以下是sklearn的基础教程,帮助你开始使用它

weixin_51306394的博客 490
上一篇: 万门cpp:作业题目汇总
下一篇: 万门cpp课程作业:实现复数类
dlvector
博客等级 码龄10年 85粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值