模型训练及评估(下)| 学习笔记

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 快速学习模型训练及评估(下)

开发者学堂课程【机器学习实战:模型训练及评估(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/530/detail/7134


模型训练及评估(下)

内容介绍:

一. 分类模型评估: ROCK 曲线

二. 分类模型评估:两类错误

三. 分类模型评估: AUC

四. 回归模型评估

五. 聚类模型评估

六. 泛化:过拟合与欠拟合

七. 模型优化:调优

 

一.分类模型评估: ROCK 曲线

1. ROC 曲线

ROC 曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度、查全度、召回率)为纵坐标,假阳性率( 1-特异度)为横坐标绘制的曲线。

产生曲线的原因是,以二分类为例,返回的预测结果通常不是简单的分类,如分类一、分类二,通常为返回某个分类的概率。

如返回分类一的概率为 80%,返回分类零的概率为 70% 等,是一个概率。当取得一个值时,要将它分类,需有一个分界值或阀值,通常为 0.5。

如一个记录通过模型预测后返回概率为 80%,即为类型一的可能性为 80%。此时需根据阀值作判断,如阀值为 0.5,转为 0.8,0.8>0.5,所以为分类一,则实际返回结果为分类一。

阀值可根据实际情况调整,假设阀值为 0.9,则返回的 0.8 会被判别为另外一个分类 0,而不是分类一。

2.绘制步骤

(1)确定实际结果值,及预测得分的值。

(2)按照从大到小的顺序确定一个阈值。如从 100% 开始到 0%。当得分值大于阈值时。称结果为正例,否则为负例。

(3)算出灵敏度及特异度。上章已介绍灵敏度及特异度的算法,较简单,只需注意混淆阵出来,按四个象限中不同值的含义则易算出灵敏度和特异度。(实际绘图时用到的是 1-特异度)

(4)更改分类阀值。可以得到不同的灵敏度和特异度。

(5)如为满足终止条件,跳转至步骤二进行循环处理,终止条件通常为灵敏度已经为1或者阀值到达 1

(6)按照 1-特异度的值从小到大排序,以此为横坐标,将对应的灵敏度作为纵坐标,绘制折线图即为 ROC 曲线。

如下例,图为真实值及预测的分,接着指定不同的预值。如第一条记录真实值预测得分为 0.95。不同的阈值时,记录会归属到不同的类别中。如运值或阀值为 1,则0.95<1,返回值为 0,属于 0 分类。当 0.9、0.8、0.7、0.6 等阀值时,返回值为1。因此不同的阀值导致最终返回的记录的分类不同。不同的阀值下分别计算 TP 、TN 、FP 、 FN  、准确率,查准率,1-特异度、灵敏度等,将其在图中画出。中间的层次线称为参考线。通常位于参考线左上方,则证明模型对分类有帮助。若在右下方,则表明模型对分类起副作用,也只需将分类交换,负例换为正例,正例换为负例,模型仍起作用。实际最希望的结果为点越靠左上方效果越好。

image.png

 

二.分类模型评估:两类错误

第一个为 FN ,F 表示预测错误, N 表示预测为负例。原本为正例预测为负例是第一类错误,称为 a false hit 弃真,原本为真的预测为错的。第二类错误为 FP ,F 为预测错误。

P 为正例,原本为负例错误的预测为正例,称为 a miss 纳伪。

image.png

错误类型:

犯第一类错误的概率称为显著性水平 α ,其正例错判成负例的概率。α  在做假设检验时常用。这是第一类错误,第二类错和假设检验错误一致。

犯第二类错误的概率为 β ,即负例错判成正例的概率。可根据实际错误接受能力,去判断更倾向于接受哪类错误。

在正例判断时,将 α 放大,第一类错误的概率会变小,说明有更少的正例会被错误的判成负例,但是会影响负例的判断,负例更易被错判成正例,第二类错误的概率变大 β 变小。例如体检时各项指标有些问题,可能和癌症指标较接近。

此时需判断是否进行进一步检查。这就是分类问题,要考虑对错误结果的承受能力。

即指标类似癌症,是否要做进一步检查继续治疗,还是没有问题。对错误结果的承受能力取决了如何调整 α ,更倾向于做进一步检查,和提前预防治疗癌症相比成本是值得的。


三.分类模型评估: AUC

1. AUC

AUC ( Area Under Curve ) 是指 ROC 曲线下的面积。在一个坐标系中画一个即为一个模型的 ROC 曲线图,可能有好多个类似的模型,都是要评估,很难比较哪个模型更好,因为有些有交叉。则可以使用 AUC 的方式, AUC 即计算每个曲线下的面积。

AUC 值越大,当前分类算法越可能将正样本排在负样本前,从而更好的分类。

image.png

2.AUC 的一些基本特点

(1) AUC 通常用于二分类结果评估

(2)通常 AUC 取值在 0.5~1之间

(3) AUC 如果小于 0.5,将分类结果取反

(4) AUC 值越大越好,表明分类结果越可靠

实际 AUC 是度量 ROC 曲线效果的方法,橙色部分表示面积为 0.5,若 ROC 曲线下面积 AUC < 0.5,需将分类结果取反。

image.png

分类模型评估内容很多,只进行了简单介绍。

 

四.回归模型评估

回归预测的结果是连续的数值,有很多种方法或者指标去评估预测结果和真实结果的差距

常见的有:

(1)平均绝对误差 MAE ( Mean Absolute Error )

(2)均方误差 MSE ( Mean Square Error )

(3)标准误差 RMSE ( Root Mean Square Error )

(4)平均绝对百分误差 MAPE ( Mean Absolute Percentage  Error )

(5)总离差平方和 SST ( TSS )、回归平方和 SSR ( ESS )、残差平方和 SSE ( RSS )、绝对误差和 SAE。

(6)R 方( R Square ,R2 )与校正 R 方 ( Adjusted R Square )

(7)用于模型筛选:

① AIC 准则( Akaike Information Criterion ,赤池信息量),即最小信息准则。

②类似的 BIC 准则( Bayesian IC )、 HQ ( Hannan-quinn Criterion )等。

最常见的为 MSE 均方误差和总离差平方和。

image.png

如图为线性回归拟合图。其中蓝色的数据点为需要拟合的数据,橙色的线为拟合后的回归线。此事如何度量模型的好坏,要考虑真实数据即蓝色点和预测数据橙色点间的差。使用不同的方法,得到的结果不同。通常使用估计值即橙色的值减实际值的平均值的平方。

从真实值点和预测值点之间的差平方相加,绝对值也可以。在运算时绝对值较难处理,通常使用平方。

image.png

 

五.聚类模型评估

聚类分析目标是实现组内相似性高,组间相似性低。实际评估的指标方法常见的有兰德系数,值越大越好,互信息评分、同质性、轮廓系数等。聚类有两种评估角度,第一种为聚完类后生成聚类模型。此时提供另一个聚类模型,将两者比较得到一系列判定系数。另一种为通过模型自身的内在评估方法去评估得到评估指标的结果。关于模型评估的内容很多,这里主要介绍分类,回归和聚类模型的评估后续课程中会详细介绍,此处了解即可。

 

六.泛化:过拟合与欠拟合

泛化:本身的意思是由特殊的个别的推广到一般的。机器学习中的泛化指在训练模型时使用训练样本得到模型,该模型在新的数据集的表现称为泛化。

泛化有两类问题,第一类称为过拟合,在训练集上表现很好,但是新的数据集上表现不好的现象。或者学习过程中对样本的特征学习太“彻底”,包括局部特征、过多的噪声数据的假特征等,造成其泛化性能较差,通常有两种原因造成,第一,新数据和样本数据相差大,第二,模型过于复杂。

欠拟合:学习过程中没有很好的捕捉到样本数据的特征,对于数据特征解释不充分,不能很好的拟合已有数据。

例如在学校学习。讲的时候听得认真仔细,老师说一个苹果加两个梨等于三个水果。

记得很清楚,仔细,考试时,考了两个苹果加一个梨等于几个水果?却不会,因为学的和考的内容不一致,这属于过拟合,将。将数据中的样本特征学的过透彻。欠拟合为平时学习不认真,考试不理想。

例如有一系列点。

希望通过一个模型将这些点表达。第一个为非常复杂的曲线通过了所有的点为很典型的过拟合。表示曲线的方程很复杂,模型太复杂。完美的拟合样本中的每一个点。

但对新的数据集表现会很糟糕。右侧相反,数据有明确的线性关系,可以通过简单的线性方程就可以表示。

但右侧的直线和点并没有关系。及学习样本中点的特征完全没有学到,因此用直线预测新的数据集,结果会很差。

image.png

 

七.模型优化:调优

调优是艰巨且复杂的工作

业务角度,生活中做的项目都是为企业或业务服务的,并非单纯的技术问题。因此要更多的从业务角度评估,依托业务场景及业务问题来优化模型或优化整个项目。

算法角度,算法本身需要进行调优。如选定算法后,算法是否合适,若不合适则需更换算法。选定算法后需对其中的参数进行调优。使算法输出结果达到预期。

在数据角度,数据的复杂程度,数据量的大小都会对最终结果造成影响,此时需考虑增加或减少参与特征或收集更多数据等。

最后一个角度为效率,在实际部署前,需考虑算法运行的效率,是否能够接受。需设置并发度和硬件。

下图为模型优化的例子。有一个数据集,需要使用 KNN 的方法进行分类。

在做 K 近邻时, K 值的选择对整个模型很关键,此时设置多个模型。

模型中选用不同的 K 值并运行,得到多个模型,使用混淆矩阵或其他方式进行行评估比较取哪一个 K 值效果更好。

image.png

相关文章
|
15天前
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
30 8
|
2月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
93 1
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(六):分类模型评估方法
机器学习入门(六):分类模型评估方法
|
3月前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
148 8
|
3月前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
264 8
|
3月前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
125 3
|
4月前
|
机器学习/深度学习 数据挖掘
机器学习模型的选择与评估:技术深度解析
【8月更文挑战第21天】机器学习模型的选择与评估是一个复杂而重要的过程。通过深入理解问题、选择合适的评估指标和交叉验证方法,我们可以更准确地评估模型的性能,并选择出最适合当前问题的模型。然而,机器学习领域的发展日新月异,新的模型和评估方法不断涌现。因此,我们需要保持对新技术的学习和关注,不断优化和改进我们的模型选择与评估策略。
|
5月前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【7月更文挑战第26天】在数据科学领域, Scikit-learn是初学者通往专家之路的必备工具。
73 5
|
4月前
|
机器学习/深度学习 人工智能 运维
机器学习中的模型评估与选择
【8月更文挑战第15天】在机器学习领域,一个关键的挑战是如何从众多模型中选择出最佳者。本文将探讨模型评估的重要性和复杂性,介绍几种主流的模型评估指标,并讨论如何在实际应用中进行有效的模型选择。通过分析不同的评估策略和它们在实际问题中的应用,我们将揭示如何结合业务需求和技术指标来做出明智的决策。文章旨在为读者提供一个清晰的框架,以理解和实施机器学习项目中的模型评估和选择过程。
|
5月前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
【7月更文挑战第27天】在数据驱动时代,Python以丰富的库成为数据科学首选。Scikit-learn因简洁高效而备受青睐,引领数据分析革命。本文引导您使用Scikit-learn简化机器学习流程。首先通过`pip install scikit-learn`安装库。接着使用内置数据集简化数据准备步骤,例如加载Iris数据集。选择合适的模型,如逻辑回归,并初始化与训练模型。利用交叉验证评估模型性能,获取准确率等指标。最后,应用训练好的模型进行新数据预测。Scikit-learn为各阶段提供一站式支持,助力数据分析项目成功。
74 0

热门文章

最新文章

相关产品

  • 人工智能平台 PAI