十二、评估机器学习算法

简介: 十二、评估机器学习算法

1、过拟合/欠拟合问题


首先将原始数据按照70%训练数据,30%测试数据的比例进行随机划分,之后使用训练数据进行训练参数 θ,最后使用训练出来的参数  θ通过测试数据检验误差大小。



1.1 线性回归问题


线性回归问题的误差检验公式如下所示:

c57f99d0a9d948269d2f57c9555ba943.png


1.2 逻辑回归问题


  逻辑回归问题的误差检验公式如下所示:

75b2c601600a463f90fc594b2d731832.png


其中,err(hθ(xtest(i)), ytest(i))计算方式如下所示:

9020e2cd507848cab94ea5349dcb34de.png



2、模型选择和训练



若设计到首先选择模型,则需要将原始数据划分为三部分,60%的训练数据,20%的交叉验证数据(Cross Validation Data),最后20%的测试数据。交叉验证数据的作用是用于选择某个参数数量/维度的模型,而测试数据则用来验证在某个训练出的参数的基础上,选定最优参数  θ。

e1ec7838482547fbab9e2551d6ff4fdc.png

2.1 怎样判断模型是过拟合还是欠拟合


当机器学习模型表现的效果并不如人意时,我们通过绘制训练数据的偏差,交叉验证数据的偏差和测试数据的偏差如下图所示:

342fef7bba8e4a5891583502e2d356bc.png

通过上图,可以确定出原始训练出来的模型到底是过拟合的还是欠拟合的,在交叉误差图左边偏高部分属于模型欠拟合的状态,意味着模型的维度偏低;在交叉误差图右边偏高部分属于模型过拟合的状态,意味着模型的维度偏低。


从数据上直观看,当交叉验证误差很大,同时原始数据误差同样很大,并且二者的误差大致相同时,可以判断当前模型处于欠拟合的状态;当交叉验证误差很大,但是原始数据误差很小,二者差别很大时,可以判断模型处于欠拟合的状态。



2.2 怎样选择正则化系数 λ


我们可以通过绘制误差关于正则化系数 λ的图像来直观看出  λ的最佳取值范围:


d3b867f5090b46ffbcb8db6f40f857a5.png


在交叉验证项误差曲线左边高处属于模型过拟合的情况,这时候的 λ \lambda λ的取值较小;在交叉验证项误差曲线右边高处属于模型欠拟合的情况,这时候的 λ \lambda λ的取值较大。



2.3 学习曲线-learning curves


学习曲线是训练偏差和交叉验证集偏差对于训练集大小的曲线,当训练模型出现欠拟合或者过拟合状态时,曲线的之间的GAP值由明显区别。


当出现欠拟合情况时,学习曲线形状如下所示:a0dc8d9ac27c4a0f973342bd80636dd6.png

可以发现训练集偏差和测试集偏差之间的GAP值很小,同时增大训练集数量并不能明显降低偏差量。


当模型出现过拟合情况时,学习曲线的形状如下所示:


5ad0afea808849abb0411157d2cb8f54.png


可以发现训练集偏差和测试集偏差之间的GAP值很大,同时增大训练集数量可以降低偏差量,使得模型的效果提升。




2.4 神经网络结构和模型效果的关系


使用较小的神经网络和较少的特征,容易造成模型欠拟合;使用较大的神经网络和较多的特征,容易造成模型过拟合。使用大的神经网络时,可以使用较大的正则化系数 λ \lambda λ来减轻过拟合问题。







相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
117 4
|
16天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
40 2
|
2月前
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
63 8
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
38 6
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
31 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
105 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
42 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
39 0