前言:本文课件均来自Andrew Ng老师的machine learning公开课课程。
一、评价模型
评价模型的一种标准方法是把数据集随机分为训练集和测试集,训练集和测试集的样本比例是7:3,下面举例线性回归和逻辑回归的训练/测试步骤:
1.1 线性回归模型构建步骤
(1)最小化训练损失函数模型来得到参数theta,损失函数模型采用均方差表达式。
(2)用训练得到的模型来计算测试样本的测试误差。
(1)
1.2 逻辑回归模型构建步骤
步骤与线性回归模型一样,不一样的地方在于计算误差的函数表达式,该课件视频介绍了两种评估测试误差的函数表达式。
个人觉得计算误差的表达式有误,应该是如下表达式:
二、模型选择和数据集分类
构建一系列模型,通过最小化损失函数来求模型参数θ,根据求解的模型θ来计算测试集的损失函数。
根据测试集的损失函数来选择最优参数θ,但是问题在于该测试集的数据已经那来选择最优参数θ,因此测试模型的泛化能力需要未用过的数据集来评价。数据集分为:训练集、验证集、测试集,各数据集所占的比例为:0.6,0.2,0.2。
训练集、验证集、测试集的损失函数如下:
模型选择步骤:(1)通过训练集构建模型,损失函数最小化对应的模型θ(2)通过验证集来选择模型,选择验证集损失函数最小对应的模型,(3)通过测试集来评估模型。
三、偏差和方差
在进行更深入的建模之前,首先需要知道模型的问题所在,是处于高偏差问题还是处于高方差问题。
高偏差是模型比较简单造成的损失函数较大,即欠拟合;高方差是模型比较复杂,训练函数误差小,但泛化能力差,即过拟合;
高偏差与高方差如下图:
四、学习曲线
学习曲线判断某一学习算法是否处于偏差、方差问题、或两者皆有。学习曲线是绘制出训练集误差大小、交叉验证集误差大小同训练集样本数关系的曲线。
绘制出一个二次模型的训练集和测试集的损失函数:
4.1 高偏差的学习曲线
高偏差是模型比较简单造成的误差,特点是训练集和验证集的误差都比较大。如果处于高偏差模型,那么增加训练样本量并不能改善模型。
4.2 高方差的学习曲线
高方差是模型过于复杂导致的,即训练集误差小,验证集误差大,训练集误差和验证集误差有一段很大的差距。如果增大训练样本数,则训练集误差和验证集误差会逐渐的接近,即训练集误差逐渐增大,验证集误差逐渐减小。
四、模型问题分析
若模型的测试误差很大,有以下方法你可以尝试,每种方法解决高方差或高偏差问题。
一般来说,使用正则化的大型神经网络模型比使用小型神经网络效果更好,缺点是计算量较大。
六、误差分析
推荐的方法:(1)设计一个简单的学习模型,运用该模型来测试验证数据集;(2)画出学习曲线来判断算法是否有高偏差和高方差的问题,再来决定是否增加更多的特征或更多的训练数据;(3)人工检查算法分析错误的样本数据集,发现错误样本数据集存在的规律;
课件举例了邮件分类问题的误差分析步骤,主要思想是对误分类的邮件进行分析,找到错误分类样本的共性问题,提取出该特征进行分类。
6.1 偏斜类的误差分析
对正负样本数量差别较大的测试样本来作误差分析,测试误差并不能评估模型的好坏,一般用查准率(precision)和召回率(recall)来度量误差值。
查准率和召回率的计算公式:
如果有高的查准率和高的召回率,我们可以说这个算法表现很好。
6.2 权衡查准率和召回率
每个学习算法有不同的查准率和召回率,因此衡量学习算法的好坏需要综合两者来看,一般采用F-score来评估模型:
公众号:
期待你的加入,砥砺前行,不忘初心!