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

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

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

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


模型训练及评估(上)

内容介绍:

一. 模型训练

二. 模型评估

三. 分类模型:评估方法和指标

 

一.模型训练

模型训练是使用已有的数据即训练数据集或样本数据集输入到选定的模型或算法中,通过调整模型或算法的相关参数,使模型在训练时的表现以及性能和效率可以接受。

之前介绍了有监督学习和无监督学习,以下是两个的模型训练和使用流程。

在有监督学习中,使用 Training data 训练数据集去训练一个模型,然后使用模型对 Testing data 中的数据进行预测得到一个数字结果。

对于无监督学习,输入的数据直接建模得到最终结果。

image.png

在模型训练时,先举一个分类模型训练的例子。下侧图是使用阿里云数据学习平台做的分类的简单实例。

使用 iris 数据集,首先对数据进行拆分,拆分的目的是要把已有的数据集分成两部分。其中一部分用来做训练集去训练模型。另外一部分叫做 testing data 去验证训练出的模型的好坏。

组件中第一个是 iris 的数据集,通过拆分的组件分成两部分。左侧的一部分使用随机森林 -1 的模型或算法去训练这个模型。

模型训练结束后,有一个预测的组件。预测组件使用训练出的随机森林模型去拆分右侧输出的训练用的数据。

注意在实际训练模型和测试时,用到的数据集是无交叉的。预测完成后,需对预测结果进行评估。这里选用两个组件,一个为多分类评估,另一个为混淆矩阵评估。

下图为一个混淆矩阵图。由于 iris 是多分类,最终所有数据分成三类,是三种不同的 iris ,有三种不同的结果。由混淆矩阵图可看出黑色对角线是对每一类的预测的正确率,正确率的结果可接受。

image.png

下图也没训练出的结果,由于有两个评估组件,一个是多分类评估,另一个是混淆矩阵评估。

上例为混淆矩阵评估,这个为多分类评估。可看出统计信息提供了一系列的相关参数的取值,后面会详细介绍每个指标的含义。一般重点关注 F1 score ,即倒数第二个, F1 score 即 F1 得分的分值越高认为模型的分类效果越好。

image.png

 

二.模型评估

模型评估或者称作模型评价,训练模型后,需要通过一系列技术手段或指标从不同维度评估模型,确定模型是否能够达到预期。具体的评价维度依赖于模型的类型和模型的应用场景。

All models are wrong ,but some are useful ,是说所有的模型都是错的,不可能 100% 的精准的去预测,但是其中有一些模型是有用的。对不同的这个算法分类,对不同的算法或者模型,有一系列对应的不同的评估方法或者评估指标。

如分类、聚类、回归,评估方式都不一样。

1.分类模型:评估方法

(1)交叉验证:在做评估时,通常会使用一种叫做交叉验证 CV ( Cross-Validation )的方式,它的原理是。将原始数据进行分组,一部分作为训练集,另一部分作为测试集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来作为评价分类器的性能指标,可循环使用该方法进行评估,其目的是得到稳定可靠的模型。

刚才的例子实际不是交叉验证,是做了 Hold-out ,是一次的,是将数据分成了训练集和测试集,训练集训练,测试集测试。而交叉验证是重复多次的做这个动作。将数据集重新分成一个训练集和测试集去训练、测试,然后再分,这是交叉验证的思想。

(2)常见交叉验证的方法

①k-fold CV : k 折交叉验证,将所有样本分成k分,一般每份样本的数量相等或相差不多,取一份作为测试样本,剩余 k 减一份作为训练样本。这个过程重复k次,最后的平均测试结果可以衡量模型的性能。通常情况 k 取 10 的情况较多,要根据具体情况。

②Leave-One-Out CV ( LOO-CV ):留一法,K=N-1。一个数据集总共有多少条记录,每次只取一条记录作为测试样本,其他剩余所有记录都作为训练集,即为留一。

③ Hold-out Method :是 key CV 的一种特殊形式。将数据分成两份,一份进行训练,另一份进行测试或验证。如刚才的例子做的即为 Hold-out 。

(3)注意事项

①用于训练的数据集数量要多,通常超过整个数据集的 50%。即在进行拆分时,如 Hold-out 分成两部分,一部分进行训练,另一部分进行测试,训练级所占比重通常超过 50%,常见为七三分或八二分,即 70% 的数据或 80% 的数据用来训练,20% 或 30% 的数据用来测试。

②拆分程训练集和验证集的时候,要使用随机采样。由于人工或使用固定规则进行拆分时,通常数据具有一定的倾向性,对验证模型不好。

③验证集不能参加当次建模,只能用于模型验证。即训练集和测试集没有交集,若训练集中的一部分数据,还要参加测试进行验证时,这部分数据会打折,用训练的数据做验证,效果会比较好,会掩盖模型的缺陷。

2.分类模型:交叉验证

下图为交叉验证的简单示意图。如将一个数据集分为五部分为 5 折交叉验证,通常为 10 折,这里用 5 折举例子。将数据分为数量大体相等的五部分,一般均为相等。第一个回合时,将第一份数据作为测试数据集,剩余的四份数据作为训练集去训练,训练模型后用第一份数据进行测试。第二回合时,用第二份数据做测试,其他数据用来建模。第三回合时,用第三份数据做测试,剩余数据用来做训练。第四回合时,取第四份数据做测试集,剩余数据做训练集。第五回合前四份数据作为训练数据,最后一份数据用来做测试。

image.png

 

三.分类模型:评估方法和指标

1.常见分类模型评估方法:

(1)混淆矩阵( Confusion Matrix ):将实际的分类结果和模型预测的结果进行比对形成矩阵的形式,通过混淆矩阵,可以更容易的看清整个模型的分类效果

(2)常用评估指标

准确率( Accuracy ,正确率)

错误率( Error Rate )

查全率( Precision ,精确率,命中率)

查全率( Recall ,召回率,灵敏度: sensitivity )

特异度( specificity )

F 1 分值( F 1 Score ,F1 Measure )之前在多分类评估的统计信息中讲解过该指标

还有别的方式,如

ROC 曲线( Receiver Operating Characteristic Curve ,受试者操作特征曲线)

AUC( Area Under Curve ,曲线下面积)

PRC 曲线( Precious-Recall Curve ,精度-召回率曲线)其他:如比较检验,Gain(增益)、 Lift (提升)、基尼系数等。

评价分类模型的方法有很多,包括很多指标及评价方式,根据实际情况选择。

如下图是一个交叉验证的结果,通过五回合的验证。每一回合都可以看到误判率,错误率可通过多次交叉验证的结果,如取平均值或根据对风险的承受能力或使用情况来选择误判率最低的还是误判率较高的,还是选择平均的误判率。

image.png

2.分类模型评估:混淆矩阵

混淆矩阵通常用来比较无监督学习分类预测结果和实际结果行代表了真实,分类列代表了预测结果,通过行列交叉显示结果,可以直观的看到分类结果的整体信息。

如下例,如图左侧写着真实,则行代表真实的结果。第一行写了 0,此时分类结果为 0,实际中分类结果为0的记录总数为 104+8=112 个,实际记录为 1 的是 25+42,通过模型对数据进行预测,会得到一个预测结果。

如 104 加 25 为使用模型预测时得到的预测结果,8 加 42 为预测时预测值为 1 的结果。

image.png

对于实际值为 1 预测值也为一的结果称为 True Positive ,对于实际值为一,预测值为零的结果称为 False Negative ,对于实际值为 0,预测值也为 0 的结果称为True Negative ,对于预测值为 1,实际值为 0 的结果称为 False Positive 。

True 或 false 表示预测结果是否正确,即预测值与真实值是否一致。一致为 True ,不一致为 False 。

Positive 或 Negative 表示预测结果的值,即预测结果为何值。

image.png

3.分类模型评估:常用指标

可以基于混淆矩阵的结果定义相关系列的指标。

对应下面混淆矩阵图,TP 加 TN 均为 True 开头,即预测结果是否正确,因此 TP 加 TN 为所有预测结果为正确的记录条数,除以 TP+TN+FP+FN 所有预测记录的条数,结果为准确率。即预测结果和真实结果一致的结果占整体记录数的比例。

FP+FN 开头为 false 即错误率,预测结果和真实结果不一致的比例,错误率还等于 1-准确率,同样准确率也等于 1-错误率,准确率+错误率=1。

TP ÷( TP+FP ),TP 为实际预测结果为正确的且预测的为正例的记录条数,TP + FP 后一个字母均为 P ,则预测出的结果均为正例,即在预测出分类结果为正的结果中实际正确的比例,称为查准率,预测结果为正例的记录占预测出所有的正例的记录条数的比例。

TP ÷( TP+ FN ), TP 仍为预测正确的结果,FN 为预测错误的,预测为了负例,事实上为正例,即预测正确的正例占所有事实上正例的所有条数的比例。称为查全率,真实值为正例的结果被预测出的比例。

举例如有 100 条记录。其中 50 条为正例,50 条为负例,做一个模型,模型的预测结果为 1 个记录为正,99 个记录为负。计算查准率, TP 为预测出的正例且为对的只有 1 条,TP + FP 为所有的预测结果中正例只为一条,因此为 1÷1,查准率为 100%。看起来很好,实际 100 条记录中有 50 条为正,而只预测了 1 条为正。查准率为 100%,但模型应用价值不大,此时考虑查全率,预测出的正确的正例为一条,而事实有 50 条,查全率即为 1÷50=2%,将查准率与查全率结合,整个模型效果不好。

TN÷( TN + FP ),TN 为预测结果为负例且预测正确的记录条数,除以实际取值为负例的统计结果数,称为特异度,即真实只为负例的结果被预测出的比例。

image.png

以上内容最好将图画出,要理解其内涵更易计算理解,如四的上线记录的值。

每个上象限有两个字母表示,第一个字母及第二个字母的意思都要清楚,这里再次重复,第一个字母表示模型预测的结果是否正确,第二个字母表示模型预测出的结果是正例还是负例。

以上介绍了查准率及查全率,若只追求查准率则查全率较低,反之相同,若只追求差全率则查准率也较低。

继续上面的例子,假若有 100 条记录,50 个正例,50 个负例,为突出查准率,只预则 1 条结果为正例。若只考虑查全率,100 条记录预测出的结果均为正例,计算得 TP 为 50,因为预测出全部为正例,其中只有 50 条预测正确,因此 TP 为 50,TP + FN 为事实上真实值为正例的记录为 50 条,此时查全率为 1 即 100%。 TP 为 50, TP + FP 为 100,因此查准率为 50%。

因此这两个指标不可单独理解,要结合到一起,两个指标相互影响相互制约。若想用另外一个指标将查准率与查全率结合到一起该如何处理?此时利用 F-score ,下图为公式。

其中  β  为两者的权重,β 为 1 时,权重相同,即当  β  为 1 时,会以同样的权重看待查准率和查全率,二者同样重要。

当  β >1 时,更看重查准率。

β =1 时,将 F-score 称为 F1-score,即 F1 值,F1 得分,计算公式为二倍查准率×查全率÷查准率+查全率,因此一般不单一看查准率或查全率,更偏向于看 F1-score。F1-score 通常会将查全率和查准率的重要程度等同得到 F1-score 。

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月前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
265 8
|
3月前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
126 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