码迷,mamicode.com
首页 > 编程语言 > 详细

机器学习公开课笔记第五周之优化机器学习算法

时间:2017-04-09 18:20:03      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:images   line   nbsp   估算   err   bsp   机器学习算法   公开课   泛化   

一,提高机器学习算法准确度的方法

当我们的机器学习算法不能准确预测我们测试数据时,我们可以尝试通过以下方法提高我们机器学习的算法准确度

1),获得更多的训练样例

2),减少特征数

3),增加特征数

4),增加多项式特征

5),增大或减小\(\lambda\)

 

 二,评估机器学习模型

如果只是单独的使用一个训练集,我们并不能很好的评估机该器学习的算法到底准不准确,因为有可能是过度拟合(Overfitting),我们可以通过把测试集分成两个数据集

取70%作为训练集,30%作为测试集

1),用训练集来学习,获得使\(J(\Theta)\)最小的\(\Theta\)

2),用测试集评估该该算法的准确度

 

评估算法准确度的方法

1),线性回归,\(J_{test}(\Theta) = \dfrac{1}{2m_{test}} \sum_{i=1}^{m_{test}}(h_\Theta(x^{(i)}_{test}) - y^{(i)}_{test})^2\)

2),逻辑回归,\(err(h_\Theta(x),y) = \begin{matrix} 1 & \mbox{if } h_\Theta(x) \geq 0.5\ and\ y = 0\ or\ h_\Theta(x) < 0.5\ and\ y = 1\newline 0 & \mbox otherwise \end{matrix}\)

   \(\text{Test Error} = \dfrac{1}{m_{test}} \sum^{m_{test}}_{i=1} err(h_\Theta(x^{(i)}_{test}), y^{(i)}_{test})\)

 

三,机器学习算法模型的选择

如果有多个机器学习算法模型可供选择,可以把数据集分成三部分,60%训练集,20%交叉验证即,20%测试集

1),用训练集来学习,获得各个模型使\(J(\Theta)\)最小的\(\Theta\)

2),选出使交叉验证集测试误差最小的模型

3),用测试集评估出第二步所选模型的泛化误差看是否符合我们的要求

 

四,偏差(Bias or Underfitting)和方差(Variance or Overfitting)

当我们的机器学习模型不能满足我们的要求时,我们改如何提高模型的准确性?虽然有很多方法,但总不能依次尝试,所有方法要么解决高方差要么解决高偏差,所以我们先判断我们的模型是高偏差还是高方差

在线性回归中,当我们提高假设函数方特征x的最高次方d时,偏差和方差是如下图所示变化,高偏差时\(J_{train}^{(\Theta)} \approx J_{CV}^{(\Theta)} \),高方差时\(J_{CV}^{(\Theta)}\) 远大于 \(J_{train}^{(\Theta)}  \)

技术分享

 

机器学习公开课笔记第五周之优化机器学习算法

标签:images   line   nbsp   估算   err   bsp   机器学习算法   公开课   泛化   

原文地址:http://www.cnblogs.com/xchaos/p/6685103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!