1、过拟合/欠拟合问题
首先将原始数据按照70%训练数据,30%测试数据的比例进行随机划分,之后使用训练数据进行训练参数 θ,最后使用训练出来的参数 θ通过测试数据检验误差大小。
1.1 线性回归问题
线性回归问题的误差检验公式如下所示:
1.2 逻辑回归问题
逻辑回归问题的误差检验公式如下所示:
其中,err(hθ(xtest(i)), ytest(i))计算方式如下所示:
2、模型选择和训练
若设计到首先选择模型,则需要将原始数据划分为三部分,60%的训练数据,20%的交叉验证数据(Cross Validation Data),最后20%的测试数据。交叉验证数据的作用是用于选择某个参数数量/维度的模型,而测试数据则用来验证在某个训练出的参数的基础上,选定最优参数 θ。
2.1 怎样判断模型是过拟合还是欠拟合
当机器学习模型表现的效果并不如人意时,我们通过绘制训练数据的偏差,交叉验证数据的偏差和测试数据的偏差如下图所示:
通过上图,可以确定出原始训练出来的模型到底是过拟合的还是欠拟合的,在交叉误差图左边偏高部分属于模型欠拟合的状态,意味着模型的维度偏低;在交叉误差图右边偏高部分属于模型过拟合的状态,意味着模型的维度偏低。
从数据上直观看,当交叉验证误差很大,同时原始数据误差同样很大,并且二者的误差大致相同时,可以判断当前模型处于欠拟合的状态;当交叉验证误差很大,但是原始数据误差很小,二者差别很大时,可以判断模型处于欠拟合的状态。
2.2 怎样选择正则化系数 λ
我们可以通过绘制误差关于正则化系数 λ的图像来直观看出 λ的最佳取值范围:
在交叉验证项误差曲线左边高处属于模型过拟合的情况,这时候的 λ \lambda λ的取值较小;在交叉验证项误差曲线右边高处属于模型欠拟合的情况,这时候的 λ \lambda λ的取值较大。
2.3 学习曲线-learning curves
学习曲线是训练偏差和交叉验证集偏差对于训练集大小的曲线,当训练模型出现欠拟合或者过拟合状态时,曲线的之间的GAP值由明显区别。
当出现欠拟合情况时,学习曲线形状如下所示:
可以发现训练集偏差和测试集偏差之间的GAP值很小,同时增大训练集数量并不能明显降低偏差量。
当模型出现过拟合情况时,学习曲线的形状如下所示:
可以发现训练集偏差和测试集偏差之间的GAP值很大,同时增大训练集数量可以降低偏差量,使得模型的效果提升。
2.4 神经网络结构和模型效果的关系
使用较小的神经网络和较少的特征,容易造成模型欠拟合;使用较大的神经网络和较多的特征,容易造成模型过拟合。使用大的神经网络时,可以使用较大的正则化系数 λ \lambda λ来减轻过拟合问题。