机器学习(3)- 学习建议<误差出现如何解决?>
根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。
1 学习建议
误差太大,如何改进?
- 使用更多的训练样本→解决高方差
- 选用更少的特征→解决高方差
- 选取更多的特征→解决高偏差
- 增加多项式特征→解决高偏差
- 减小\(\lambda\)→解决高偏差
- 增大\(\lambda\)→解决高方差
评估机器学习算法的性能
对数据进行“洗牌”,然后再分成训练集和测试集。通常用70%的数据作为训练集,用剩下30%的数据作为测试集。
对训练集进行学习,得到参数\(\theta\)
计算测试误差(不加入正则项):对于线性回归,可以用之前的代价函数;对于逻辑回归,除了之前的代价函数,还有一种称为0/1错误分类的方法
\[
err(h_\theta(x),y)=\left\{
\begin{aligned}
1 && if \ h_\theta(x) \ge 0.5,y=0 \\
&& or \ h_\theta(x) \lt 0.5,y=1 \\
0 && otherwise
\end{aligned}
\right.
\]\[
Test \ error = \frac{1}{m_{test}}\sum_{i=1}^{m_{test}}err(h_\theta(x_{test}^{(i)}),y_{test}^{(i)})
\]
模型选择
使用测试集选择次幂\(d\),因此需要验证集→可参考交叉验证
使用60%的数据作为训练集,使用20%的数据作为交叉验证集,使用20%的数据作为测试集
- 对训练集进行学习,得到参数\(\theta^{(i)}\),即多个模型
- 用验证集计算验证误差(不加入正则项),得到参数\(d\),即选择模型
- 计算测试误差(不加入正则项),即对模型进行测试
机器学习诊断法(偏差or方差?)
\(d\)大,则高方差;\(d\)小,则高偏差
偏差:训练误差和验证误差都很大
方差:训练误差小,但是验证误差大,即验证误差远大于训练误差
正则化和偏差、方差
\(\lambda\)大,则高偏差;\(\lambda\)小,则高方差
选取一系列可能尝试的\(\lambda\)值:0,0.01,0.02,0.04,...,20
- 训练出12个\(\lambda\)值正则化的模型
- 计算验证误差,得到\(\lambda\)
- 计算测试误差
绘制学习曲线
用来判断学习算法中的问题
高偏差时,随着训练集数量增加,验证误差不会明显下降,基本变平,此时使用更多的训练样本无用
高方差时,随着训练集数量增加,验证误差一直增大,训练误差一直减小,此时使用更多的训练样本有用
机器学习(3)- 学习建议<误差出现如何解决?>的更多相关文章
- 机器学习&深度学习经典资料汇总,data.gov.uk大量公开数据
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...
- 近200篇机器学习&深度学习资料分享【转载】
编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Le ...
- 机器学习&深度学习资料分享
感谢:https://github.com/ty4z2008/Qix/blob/master/dl.md <Brief History of Machine Learning> 介绍:这是 ...
- 新手的java学习建议
前言 进入IT领域,就像进入大海—浩瀚而广阔.然而,它又很容易让人迷茫,不知所措.所以,在IT的海洋中,找好一艘船特别重要,这艘船带你前进.减少迷失.这艘船或许是一个人,或一本书,又或许是一篇文章. ...
- [转载]机器学习&深度学习经典资料汇总,全到让人震惊
自学成才秘籍!机器学习&深度学习经典资料汇总 转自:中国大数据: http://www.thebigdata.cn/JiShuBoKe/13299.html [日期:2015-01-27] 来 ...
- 机器学习&深度学习基础(目录)
从业这么久了,做了很多项目,一直对机器学习的基础课程鄙视已久,现在回头看来,系统的基础知识整理对我现在思路的整理很有利,写完这个基础篇,开始把AI+cv的也总结完,然后把这么多年做的项目再写好总结. ...
- 机器学习理论基础学习12---MCMC
作为一种随机采样方法,马尔科夫链蒙特卡罗(Markov Chain Monte Carlo,以下简称MCMC)在机器学习,深度学习以及自然语言处理等领域都有广泛的应用,是很多复杂算法求解的基础.比如分 ...
- 机器学习&深度学习资料
机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) 机器学习(Machine Learning)&深度学习(Deep Lea ...
随机推荐
- PHP实用小程序(三)
<HTML> <HEAD> <TITLE>给数组增加元素</TITLE> </HEAD> <? $Cities[] = "& ...
- lua中文教程【基本语法】
代码例子:http://www.inf.puc-rio.br/~roberto/book/code.html 注意:没有“:” 1.特点:可扩展.简单.高效.跨平台 2.使用方式:嵌入程序.独立使用. ...
- 解读大内老A的《.NET Core框架本质》
老A说的一句话让我很受启发,想要深入了解框架,你要把精力聚焦在架构设计的层面来思考问题.而透彻了解底层原理,最好的笨办法就是根据原理对框架核心进行重建或者说再造.看起来没有捷径,也是最快的捷径. 题外 ...
- 2013 Noip提高组 Day1
3285 转圈游戏 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description ...
- 类的property特性
目录 什么是 property特性 简单示例 property属性的两种方式 装饰器 类属性方式 property+类的封装 应用 私有属性添加getter和setter方法 使用property升级 ...
- 第二十一篇 .NET高级技术之使用多线程(三)
1. 单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它 ...
- jstl标签库不起作用,直接输出表达式
引用jstl.jar包 在jsp页面添加<%@ page isELIgnored="false"%>即可
- Cordova 系列之Mac OS 环境配置
1.从AppStore 安装xcode 2.安装node.js环境 http://nodejs.org/ 3.使用命令行安装 cordova 命令行帮助:http://cordova.apache.o ...
- E - Round Numbers
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...
- ios wkwebview同步cookie ajax请求偶尔异常问题
let config = WKWebViewConfiguration.init() config.preferences = WKPreferences.init() config.preferen ...