机器学习——模型选择、参数选择

当我们使用正则化的线性回归方法预测房价时,发现得到的模型应用于新的数据上时有很大误差,这时,我们可以选择一些解决方案,例如:

上图中的这六种解决方案都有相应的条件,如图中蓝色字体所示。

【一、回归模型选择】

我们引入一类数据集,叫做cross validation set,即交叉验证数据集。将所有数据按6:2:2

分为training set , cross validation set , testing set三类,如下图所示:

【模型选择的步骤】

  1. 建立d个假设模型,如下图所示(d=10),分别在training set 上求使其training error最小的θ向量,那么得到d个θ。
  2. 对这d个假设模型,在cross validation set上计算J(cv),选择cv set error最小的一个模型 ,例如:如果J(cv)在第2组中最小,则取d=2的假设。

【二、bias and variance的定义】

对于不同的模型,有不同的拟合情况,如下图所示:

由上图可定义:

  • bias:J(train)大,J(cv)大,J(train)≈J(cv),bias产生于d小,underfit阶段
  • variance:J(train)小,J(cv)大,J(train)远远小于J(cv),variance产生于d大,overfit阶段

【三、正则化参数λ的选择】

为了解决过拟合的问题,使用正则化,但是正则化参数λ的正确选择是一个难题。

  • λ太小导致overfit,产生variance,J(train)远远小于J(cv)
  • λ太大导致underfit,产生bias,J(train) ≈ J(cv)

    如下图所示:

关于λ的曲线如下:

【参数λ的选择】

  1. 将λ从0,0.01,一直往上每次乘以2,那么到10.24总共可以试12次λ。这12个λ会得到12个模型,如下图所示。每个对应有J(θ)和 Jcv(θ),分别在training set 上求使其training error最小的θ向量,那么得到12个θ。

    2.在cross validation set上计算J(cv),选择cv set error最小的一个模型 ,然后取出令Jcv(θ)最小的一组定为最终的λ。例如假设J(cv)在第5组中最小,则取λ=0.08的假设,如下图所示。

【四、什么时候增加训练数据training set才是有效的?】

从上图可知:训练数据越少,J(train)越小,J(cv)越大;m越大,J(train)越大(因为越难完全拟合),J(cv)越小(因为越精确)

那么怎么判断增加训练数据training set的数目m能够对算法有较大改进呢??

【总结】

  • Underfit 的 High bias: J(train)≈J(cv)增加m没什么帮助!
  • Overfit的 High Variance: 增加m使得J(train)和J(cv)之间gap减小,有助于performance提高!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 01:18:14

机器学习——模型选择、参数选择的相关文章

吴裕雄 python 机器学习——模型选择参数优化随机搜索寻优RandomizedSearchCV模型

import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_report from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.model_selection import GridS

吴裕雄 python 机器学习——模型选择参数优化暴力搜索寻优GridSearchCV模型

import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_report from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.model_selection import GridS

机器学习 libsvm交叉验证与网格搜索(参数选择)

首先说交叉验证. 交叉验证(Cross validation)是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题. 交叉验证一般要尽量满足: 1)训练集的比例要足够多,一般大于一半 2)训练集和测试集要均匀抽样 交叉验证主要分成以下几类: 1)Double cross-validation Double cross-validation也称2-fold cross-validation(2-CV),作法是将数据集分成两个相等大小的子集

机器学习中的范数规则化 L0、L1与L2范数 核范数与规则项参数选择

http://blog.csdn.net/zouxy09/article/details/24971995 机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一些浅显

机器学习笔记(二)模型评估与选择

2.模型评估与选择 2.1经验误差和过拟合 不同学习算法及其不同参数产生的不同模型,涉及到模型选择的问题,关系到两个指标性,就是经验误差和过拟合. 1)经验误差 错误率(errorrate):分类错误的样本数占样本总数的比例.如果在m个样本中有a个样本分类错误,则错误率E=a/m,相应的,1-a/m称为精度(accuracy),即精度=1-错误率. 误差(error):学习器的实际预测输出和样本的真实输出之间的差异.训练误差或经验误差:学习器在训练集上的误差:泛化误差:学习器在新样本上的误差.

paper 27:机器学习中的范数规则化之(二)核范数与规则项参数选择

机器学习中的范数规则化之(二)核范数与规则项参数选择 [email protected] http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮叨下核范数和规则项参数选择.知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正.谢谢. 三.核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm.这个相对于上面火热的L1和L2来说,可能大家就会陌生点.那它是干嘛用的呢?霸气登场:约束Low-Ra

机器学习中的范数规则化之(二)核范数与规则项参数选择 非常好,必看

机器学习中的范数规则化之(二)核范数与规则项参数选择 [email protected] http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮叨下核范数和规则项参数选择.知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正.谢谢. 三.核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm.这个相对于上面火热的L1和L2来说,可能大家就会陌生点.那它是干嘛用的呢?霸气登场:约束Low-Ra

【机器学习 第2章 学习笔记】模型评估与选择

1.训练误差:学习器在训练集上的误差,也称“经验误差” 2.泛化误差:学习器在新样本上的误差 显然,我们的目标是得到在新样本上表现更好的学习器,即泛化误差要小 3.过拟合:学习器把训练样本学的太好了,导致泛化性能下降(学过头了...让我联想到有些人死读书,读死书,僵化,不懂得变通和举一反三) 原因:学习能力过于强大,把一些不太一般的特性也学了进来 针对措施:不好解决,是机器学习面临的关键障碍 4.欠拟合:就是连训练集都没学好,更别说泛化了(有点管中窥豹,盲人摸象的意思). 原因: 学习能力低下

机器学习总结之第二章模型评估与选择

机器学习总结之第二章模型评估与选择 2.1经验误差与过拟合 错误率 = a个样本分类错误/m个样本 精度 = 1 - 错误率 误差:学习器实际预测输出与样本的真是输出之间的差异. 训练误差:即经验误差.学习器在训练集上的误差. 泛化误差:学习器在新样本上的误差. 过拟合:学习器把训练样本学的"太好",把不太一般的特性学到了,泛化能力下降,对新样本的判别能力差.必然存在,无法彻底避免,只能够减小过拟合风险. 欠拟合:对训练样本的一半性质尚未学好. 2.2评估方法 (在现实任务中,还需考虑

【机器学习123】模型评估与选择 (上)

第2章 模型评估与选择 2.1 经验误差与过拟合 先引出几个基本概念: 误差(error):学习器的实际预测输出与样本的真实输出之间的差异. 训练误差(training error):学习器在训练集上的误差,也称"经验误差". 测试误差(testing error):学习器在测试集上的误差. 泛化误差(generalization error):学习器在新样本上的误差. 错误率(error rate):分类错误的样本数占样本总数的比例. 精度(accuracy) = 1 – 错误率.