机器学习(四)

一、评价假设函数

我们设计的模型合不合理,得出假设函数是不是具有泛化能力,当假设函数比较复杂,不能够在坐标图上画出是,我们怎么评价?利用验证的方法,把所有收集到的数据随机选取70%作为训练样本,训练模型得到假设函数之后,利用剩余的30%的数据作为测试样本,算出测试样本在假设函数下的误差代价值,如误差代价很小则说明所得到的假设函数具有泛化能力,即具有鲁棒性,例如,线性回归和逻辑回归的测试样本误差计算为

测试样本是否分类错误,利用得到的假设函数使用0/1错误来恒量

二、模型选择

对于一个问题,我们有很多模型用于选择,高次的模型能够很好的拟合一组数据(例如训练数据),但不一定具有泛化能力,对于另一种数据不一定能很好的拟合(例如测试样本),我们假设模型的特征多项式最高次为d,d可取值为1,2,3等一系列数,d的数值越大,模型的复杂度越高,再者一系列的模型中,怎么选择出合适的模型,以及得到合适的假设函数?此时,把收集的数据样本分为三个部分,训练样本集(例如随机抽取60%),交叉验证集(例如随机抽取20%),测试集(例如随机抽取20%),利用训练集得到各模型的最小化代价函数,从而得到各模型的权重参数,即可得到各模型的假设函数,然后用交叉验证集输入各假设函数,选择误差最小的假设函数作为合理的模型假设函数,然后再用测试集来测试假设函数的鲁棒性

三、偏差和方差 Bias vs. Variance

一个学习算法表现不理想,要么是偏差比较大,要么是方差比较大,即要么是欠拟合,要么是过拟合,那么欠拟合与过拟合和偏差与方差的关系是什么?由模型复杂度与训练集和交叉验证集的误差曲线可以看出

正则化可以防止过拟合的问题,以线性回归为例,代价函数为

正则化项中的参数取值大小与模型的关系为

过大时会出现欠拟合,过小会出现过拟合,怎么选取合适的?取一系列不同参数的模型,用训练集得到模型的权重参数,进而得到假设函数,然后用交叉验证集得出每一个假设函数的误差,取最小误差的假设函数作为合适参数的模型,然后用测试集来测试所得假设函数的鲁棒性,如下图所示

则正则化项参数与偏差和方差的关系如下所示

那么训练数据的大小与偏差和方差的关系是什么?当出现高偏差,即欠拟合时,即使再增大训练样本,模型也不会拟合数据,最终会出现训练集和交叉验证集误差都很大的情况,增加样本数量不会使模型变好,当出现高方差,即过拟合时,增大训练样本也会出现模型逐渐不能拟合数据的情况,但总的来说训练集的误差会处于一个低的状态,而交叉验证集随着样本的增大会减小,增加样本数量能够改善模型

总的来说,对于高偏差和高方差,我们可以选择的应当方法有

为了提高算法的效果,以分类为例,在对测试集进行测试之后,将错分的样本挑选出来,查看他是什么类型的样本,对比这些样本找出什么样的特征能够更好的把他们分类。有时在我们数据样本中,每类的数据样本的数量是不等同的,若在正负样本相差比较大时,即使在测试集上得到很高的准确率,但在分错的样本中,那些比例很小的样本可能占多数,这就造成偏斜类的问题,这时准确率就不能很好的恒量模型算法的效果,我们需要引入新的恒量方法查准率(precision)和召回率(recall)

对于一个分类模型而言,查准率和召回率都是越高越好,但对于一个模型进行预测时(例如逻辑回归),若设定一个大的阈值(例如当h(x)的值大于0.8时才判定分类为y=1,正常时大于0.5判定y=1),那么就会得到高的查准率和低的召回率,若设定一个小的阈值,那么就会得到低的查准率和高的召回率,在不同的情况下我们选择高的查准率或者高的召回率,所以查准率和召回率不能兼顾,对于算法的不同临界值可以得到不同的查准率和召回率,如何判定合适的值?利用F1 score

 

转载于:https://www.cnblogs.com/zsw900610/p/7066627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值