Sklearn 机器学习包 下|学习笔记

简介: 快速学习 Sklearn 机器学习包 下

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践 Sklearn 机器学习包 下】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15518


Sklearn 机器学习包 下

 

内容介绍

一、最近邻算法实现聚类

二、分类器的类别

三、评估模型的 K-Fod 交叉验证法

四、评估模型的指标

五、ROC 曲线

六、混淆矩阵

七、本节小结

 

上节课程学习了如何导入及查看数据、如何划分训练集与测试集,并使用了简单的鸢尾花数据集进行分类算法,其中使用的为最近邻的分类算法,本节课程将使用一个新的数据集学习如何使用Sklearn 进行聚类。

 

一、最近邻算法实现聚类

 

image.gif首先导入数据,此次导入的为make 类型的数据,选择的为make_blobs,观察此数据集的参数,samples 表示样本的数量1000,centers 表示原始数据的类别数20,random_state=123 表示随机种子数等于123 。

image.gif然后对数据进行检查,打印X 的前十列可以看出是一个元组的类型,再对y 进行观察,之前提到过数据总共有二十个类别,此处显示0-19也就是二十类,然后想要将二十类的数据聚成两类,一类是b另一类为r,此处使用no.take 函数,将二十类数据进行划分,函数的意思为:当y 小于十时,对应类别为r ;当y 大于等于十时,对应类别为b 。

原始数据的前五个分别是8、9、16、5、12,若使用此规则进行划分,再进行打印一下,划分之后对应的类别为r、r、b、r、b。

image.gif下一部分为数据格式化的内容,此部分不一一进行介绍,希望同学们课后可以认真学习此部分内容。

接下来画出分成两类数据的图形:

可以看出聚类的效果并不理想,因为聚类最好的效果不是簇与簇之间的距离越小越好,而是簇与簇之间的距离越大越好,显然图片所呈现的数据并不能符合聚类想要的要求,因此接下来将引用一些分类器实现数据的聚类划分。


二、分类器的类别

image.gif首先使用的为最近邻的分类器,此处选用的邻距为五个,意思为划分为六类,然后需要使用X与y 对模型进行训练fit 。模型训练完成之后,需要使用预测器对真实的数据进行预测:

image.gif

直接使用之前的.predict 即可,还能观察到每个数据对应类别的概率,此处显示的是前五个数据分别属于第一类与第二类的概率,最终结果选择概率较大的一方。接下来绘制决策边界,上图可以直接看出两类数据的分布情况。上面使用的最近邻分类器实现对数据的聚类,同时还可以选择决策树算法、随机森林算法、支持向量机算法及多层感知器算法进行处理数据辅助决策。

这些算法与最近邻算法十分相似,都是使用X与y 对模型进行训练,然后再使用测试集对此进行评估,然后还可以绘画决策边界供用参考。区别是在导入时有所不同,依次为决策树分类器、随机森林分类器、支持向量机分类器、多层感知器的分类器,这些模型是学习数据挖掘时十分重要及经典的模型,而Sklearn 对此实现及推论也十分适用。希望同学们能在课后学习巩固学习算法的原理,加深印象。

以上内容为训练数据及预算数据的操作,接下来讲解模型的评估和选择。

首先需要从Sklearn 的指标中选择一个需要进行评估的损失函数,此示例选择为zero_one_loss零一损失,此函数十分简单,即预测数据若为正确则为1,否则错误为0。Sklearn 还有许多的损失函数,例如零翻损失等,同学们可以课后对此进行了解。

image.gif之后需要评估训练误差及测试误差也比较简单,此示例将真实的y 值与预测的y 值进行对比即可,上图中显示有训练误差及测试误差。目前已经学会使用算法和模型对数据进行评估的方法,那么当选择大部分的数据进行训练、使用小部分的数据进行评估时,可能会出现模型评估不准确的问题,对此可以使用交叉验证的方法进行解决。

 

三、评估模型的 K-Fod 交叉验证法

本次介绍K-Fod 交叉验证,就是将数据分成K份,然后将K-1份数据进行训练,使用一份数据进行验证评估,最后得到K个误差,将此K个误差取平均值则可得到最终的结果误差。

image.gif以上为K-Fod 交叉验证的代码,此处将K设置为无,最终的误差为scores :平均值加减标准差std 。

 

四、评估模型的指标

接下来对模型进行评估时需要评估指标,评估指标在数据挖掘中是十分重要的内容,希望同学们能够认真理解并将理论与实践相结合。介绍的第一个指标为分类的准确性,准确性为正确预测的比例,此处显示正确预测的比例为84%,虽然图示效果并不是特别理想,但是准确率达到了84%,因此在现实情况下此指标往往不能反映真实的情况,故此需要引入其他指标召回率及F值。

image.gif学习数据挖掘之后对此非常熟悉,TP 是预测正确的正类,FP 是预测错误的负类,FN是预测错误的正类,TN是预测正确的反类。此三者指标的实现代码如下:

image.gifPrecision_score 为准确度,recall_score 为召回率,fbeta_score 为F值,值得注意的是,F值的大小约等于P值和R值的平均值,故此也可以通过三者之间的关系进行检查计算。

 

五、ROC 曲线

接下来要介绍的指标为ROC 曲线,横坐标为真阳率,纵坐标为假阳率,此曲线越靠近左上角,说明模型的准确率就越高。从此曲线中同样可以看出模型效果,若要比较多个模型效果,可以将它们画在同一坐标轴上,使得更加清晰直观。

 

六、混淆矩阵

image.gif接下来讲解一个重要概念——混淆矩阵。此处的行是真实值,列为预测值,因此此处的86为TP,19为FN,13为FP,22为TN。因为此处的行是真实值,列为预测值,但若在考试中或者遇到其他问题时,行是预测值、列为真实值时,情况就会有所改变,因此同学们在学习过程中需要对应清楚,否则容易混淆。

 

七、本节小结

本节课主要通过一个make 类型的数据使用最近邻算法实现了简单的聚类,同时介绍了决策树、随机森林及多层感知器的使用。然后学习了评估模型的K-Fod 交叉验证的方法以此防止一次评估的不准确问题,最后学习了评估模型的一些指标,包括精确度、召回度、F值以及FOC 曲线。

希望同学们课后能够认真学习本节课程内容,由于时间缘故,里面有许多内容不能进行详细展开讲解,同学们可以去网上检索查找相应的资源,学会自学才能成长。

相关文章
|
1天前
|
机器学习/深度学习 数据采集 人工智能
机器学习之sklearn基础教程
【5月更文挑战第9天】Sklearn是Python热门机器学习库,提供丰富算法和预处理工具。本文深入讲解基础概念、核心理论、常见问题及解决策略。内容涵盖模型选择与训练、预处理、交叉验证、分类回归、模型评估、数据集划分、正则化、编码分类变量、特征选择与降维、集成学习、超参数调优、模型评估、保存加载及模型解释。学习Sklearn是迈入机器学习领域的关键。
14 3
|
3天前
|
机器学习/深度学习 数据采集 算法
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
25天前
|
算法框架/工具 TensorFlow 机器学习/深度学习
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)
157 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)(2)
|
25天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)
46 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(九)(1)
|
25天前
|
机器学习/深度学习 人工智能 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
34 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
|
25天前
|
异构计算 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
25 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(3)
|
25天前
|
算法 机器学习/深度学习 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
44 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(2)
|
25天前
|
机器学习/深度学习 算法 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
42 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(1)
|
25天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
47 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
|
机器学习/深度学习 算法 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
18 0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)