1.训练误差:模型在训练数据上的误差
泛化误差(关心):模型在新数据上的误差
例:
模拟考试表现好(训练误差),不代表未来考试表现好(泛化误差)
2.①验证数据集(无训练):评估模型好坏的数据集
拿出50%的训练数据,不要跟训练数据混在一块(注意)
②测试数据集:只用一次的数据集,不在训练使用。在结束使用
如:未来的考试成绩,我出售房子的实际成交价。
综上:打个比方:训练集 平时作业题,验证集 模拟考试 , 测试集 期末考试
3.K-折交叉验证
如果没有足够多的数据集来使用,当验证数据集。
算法:
①训练数据集分成K块
②for i = 1,2,3,....k
使用第i块为验证数据集,其他为训练数据集。
③ 计算K个验证集的误差平均 K常用5或10
总结:
训练数据集:训练模型参数
验证数据集:选择模型超参数
非大型数据集通常使用k-折交叉验证。
二 过拟合和欠拟合
1.模型容量:模型的复杂度,复杂模型能学习复杂的函数
①拟合各种函数的能力
②低容量的模型难以拟合训练数据
③高容量的模型可以记住所有的训练数据
2.过拟合和欠拟合
①如果模型容量低(模型简单),数据要选择简单。如果数据复杂,就会欠拟合。
②如果模型容量高(模型复杂),数据要选择复杂。如果数据简单,就会过拟合。
3.模型容量的影响
模型容量低的时候,训练误差和泛化误差都很高。
随着模型容量变高,训练误差和泛化误差都开始下降。
泛化误差降到某一个点后,就开始上升
【模型容量足够大,然后控制模型容量使泛化误差往下降】
4.估计模型容量:
①参数的个数
线性模型:d是权重,1是偏差
M是隐藏层的个数,(d+1)输入的参数,(m+1)是隐藏层输入的参数。k是输出类别的个数
②参数值的选择范围
5.数据的复杂度:
①样本个数
②每个样本的元素个数
③时间,空间结构
④多样性。
总结:
①模型容量要匹配数据的复杂度,不然出现过拟合和欠拟合
②机器学习提供数学工具衡量模型复杂度
③靠观察训练误差和验证误差。