机器学习算法的一般流程|学习笔记

简介: 快速学习机器学习算法的一般流程

开发者学堂课程【高校精品课-华东师范大学-人工智能基础:机器学习算法的一般流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/920/detail/15579


机器学习算法的一般流程

 

内容介绍:

一、性能评估

二、算法评价

 

一、性能评估

模型选择考虑的因素有很多,包括问题类型、数据形式、数据规模、模型的泛化能力。算法模型的性能。

对模型的评价有很多方法,常用的指标有准确率(Accuracy)、错误率(Error rate)、精确率(Precision)、召回率(Recall)和均方误差等。不同的测量方法也会产生不同的判断结果。

(1)错误率(Error rate)

在分类任务中经常使用错误率与精确率对算法进行评价,分类错误的样本数占样本总数的比例称为错误率。

用 e 代表错误率。计算方法如下:e=分类错误的样本数/样本总数

我们来看这个表格动物分类器的分类结果,第一列是真实结果,第二列是预测结果。

 image.png

在预测结果当中,分别对猫、狗和兔子。得到了一个预测出来的只数。先看第一行,猫。当真实结果是猫的时候,预测结果是两只猫,零条狗,零只兔子,当真实结果是狗的时候,预测结果是一只狗一只兔子,当真实结果是两只兔子的时候,两只兔子都被预测成了猫,结果是两只猫,零条狗,零只兔子。

计算模型总的分类错误率:e=(1+2)/6=0.5及50%

模型对猫的分类错误率ecat:ecat=0/2=0

模型对狗的分类错误率edog:edag=1/2=0.5

模型对兔子的分类错误率erabbit:erabbit=2/2=1

(2)精确率、召回率和 F- measure 指数

精确率(precision)衡量的是查准率。可以表达系统的效用,召回率则衡量的是系统的查全率,可以表达系统的完整性。F- measure指数也称为f1指数,是精确率和召回率的调和平均值。

用公式表达如下:

精确率(p)=正确识别的个体总数/识别出来的个体总数

召回率(r)=正确识别出的个体总数/测试集中存在的个体总数

调和均值(f1)=2pr/(p+r)

 

二、算法评价

算法评价中使用准确率和召回率比较多

准确率(p)代表的是查准率=正确识别的个体总数/识别出来的个体总数

召回率(r)则代表是查全率=正确识别出的个体总数/测试集中存在的个体总数

image.png

例如对这个表格中两只猫,两条狗,两只兔子。他的预测分别为这个表格当中显示的结果

对猫进行预测时,实际有两只猫。预测结果中有两只猫、两只兔子被判断为猫,合计找到四只猫,其中两只预测准确,两只预测错误,则精确率p=2/4=0.5,而召回率r=2/2=1。调和均值 f1=2pr/(p+r)约等于0.667。

对狗进行预测时,实际有两条狗。预测结果中有一条狗被判断为狗,合计找到一条狗,这条狗预测正确。但另一条没找到。则精确率p=1/1=1。找到的都是对的,而召回率r=1/2=0.5只找到了一半,f1=2pr/(p+r)约等于0.667。

对兔子进行预测时,实际有两只兔子。预测结果中,一条狗被判断为兔子,合计找到一只兔子。但是判断错误,则精确率p=0/1=0,而召回率r=0/2=0,调和均值f1=2pr/(p+r)=0。这里要注意。根据这个公式计算,会出现0的问题,所以当P和r都为零时,f1直接为零。整理后识别的结果是这样的,

image.png

猫的准确率是0.5,召回率是1,调和均值是0.667。狗的识别准确率是1,召回率是0.5,调和均值是0.667。兔的准确率是0,召回率是0,调和均值是0。

假如一个模型预测出来。他得到了这样的结果。y_true 是代表增值,y_true=[0,1,2,2,2]。5个物体分别是零类、一类、二类、二类、二类。例如,苹果、西瓜、橘子、橘子、橘子。y_pred 代表预测出来的结果。y_pred=[0,0,2,2,1]。与真值有一定的差别。那么这个模型我们来看它的性能。

第一行,先看对零的预测。零的预测结果可以看这个图。

 image.png

圆圈内的是检出的,圆圈外的是没有检出。实心的是正确,空心的是误判。对零的预测结果,P=1/2=0.5。R=1/1=1。f1=2pr/(p+r)=0.667。

第二行是对一的预测。

image.png

可以看到图中P=0/1=0。R=0/1=0。其中的调和平均值f1也取0。第三行是对2的预测结果。

image.png

2的预测结果,可以看到这个图中P=2/2=1.r=2/3。调和平均值f1=2*(1*2/3)/(1+2/3)=0.8。 

下面我们使用一个实验来执行这个性能评估过程。

 image.png

我们使用 Classification_ report。第一行包含 Classification_ report 分类报告。y_true=[0,1,2,2,2]代表真值, y_pred=[0,0,2,2,1]代表预测结果。使用 Classification_ report 把 y_true 和 y_pred 作为参数放进来,Print打印结果,

我们运行一下:

image.png

对0的预测结果在第一行。precision 是0.5,recall 是1,f1指数是0.67。他的支持样本数是1。

第二行是对1的预测,Precision 是0,recall 是0。f1指数是0。他的支持样本数是1。第三行是对2的预测,Precision是1,recall 是0.67。f1指数是0.8。他的支持样本数是3。合计的支持向量是5。

相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
141 4
|
4天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
45 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
20天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
42 2
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
108 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
43 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
41 0
|
3月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
3月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
83 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练