备:

  High bias(高偏差) 模型会欠拟合

    High variance(高方差) 模型会过拟合

  正则化参数λ过大造成高偏差,λ过小造成高方差

一、利用训练好的模型做数据预测时,如果效果不好,下一步大概如何做?存在如下几种情况:

  1)获取更多的训练样本。(高方差时用。增加训练样本能防止过度拟合,进而防止高方差,因为非常多的训练样本,很难完全拟合)

  2)使用更少的特征维度。(高方差时用,因为有可能过拟合了)

  3)使用更多的特征维度。(高偏差时用,因为有可能欠拟合了)

  4)增加多项式特征。(高偏差时用)

  5)减小λ值。(高偏差时用,因为可能欠拟合了)

  6)增加λ值。(高方差时用,因为可能过拟合)

二、训练样本分割比例问题

  1)通常7:3比例:70%训练样本,30%测试样本

  2)另一种是6:2:2  60%训练集  20%验证集  20%测试集

  在选取正则化参数λ的值与多项式预测选用最高次数时,均可以采用第(2)种分割方式。

  例如:对于多项式最高次数d(d=1,2,...,10),分别用训练集训练出10个模型,然后利用学习后的参数Θ计算验证集的误差Jcv,选取使Jcv最小的一个d。

  神经网络的隐藏层数,也可以采用第(2)种方式,用验证集去验证采用几个层比较好,方法同上述多项式。一般来讲,采用一个隐藏层的居多。

三、当模型处于高偏差时,此时模型过于简单,处于欠拟合状态。这个时候增加更多的训练样本,依然不会有用,因为当前的训练样本都没有拟合好,增加更多的样本,更难以拟合好,所以是模型的问题所在。

四、如何平衡查准率和召回率?

  采用F1值是一个好办法。

  F1=2*[(P*R)/(R+P)]  当P或R=0时,F1=0 (可以防止某一项值过低) ;当P=1且R=1时,F1=1

  F1值越大的模型,相对较好一些。

五、什么条件下训练出来的模型最好(总结)?

  1)拥有复杂的参数,模型可以防止高偏差。

  2)拥有更多的训练样本,可以防止高方差。

  所以,如果一个模型拥有相对复杂的参数(也不能太复杂),同时拥有更多的训练样本,这样出来的模型往往是一个较好的模型!

六、根据模型的学习曲线(learning curves)判断模型拟合的好与差。

  因为多维数据很难直接画出数据与模型的拟合曲线,通过画模型的学习曲线可以直观看出模型的拟合情况。

  High bias(高偏差)

  High variance(高方差)

七、在进行多项式回归时,比如:x,x^2,x^3,...,x^8等等,一定要先对x进行归一化,否则的话,x^8的值会非常之大。  

Coursera在线学习---第六节.构建机器学习系统的更多相关文章

  1. Coursera在线学习---第十节.大规模机器学习(Large Scale Machine Learning)

    一.如何学习大规模数据集? 在训练样本集很大的情况下,我们可以先取一小部分样本学习模型,比如m=1000,然后画出对应的学习曲线.如果根据学习曲线发现模型属于高偏差,则应在现有样本上继续调整模型,具体 ...

  2. Coursera在线学习---第七节.支持向量机(SVM)

    一.代价函数   对比逻辑回归与支持向量机代价函数. cost1(z)=-log(1/(1+e-z)) cost0(z)=-log(1-1/(1+e-z)) 二.支持向量机中求解代价函数中的C值相当于 ...

  3. Coursera在线学习---第五节.Logistic Regression

    一.假设函数与决策边界 二.求解代价函数 这样推导后最后发现,逻辑回归参数更新公式跟线性回归参数更新方式一摸一样. 为什么线性回归采用最小二乘法作为求解代价函数,而逻辑回归却用极大似然估计求解? 解答 ...

  4. Coursera在线学习---第四节.过拟合问题

    一.解决过拟合问题方法 1)减少特征数量 --人为筛选 --靠模型筛选 2)正则化(Regularization) 原理:可以降低参数Θ的数量级,使一些Θ值变得非常之小.这样的目的既能保证足够的特征变 ...

  5. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  6. VUE2.0实现购物车和地址选配功能学习第六节

    第六节 地址列表过滤和展开所有的地址 html:<li v-for="(item,index) in filterAddress">js: new Vue({ el:' ...

  7. Coursera在线学习---第九节(1).异常数据检测(Anomaly Detection)

    一.如何构建Anomaly Detection模型? 二.如何评估Anomaly Detection系统? 1)将样本分为6:2:2比例 2)利用交叉验证集计算出F1值,可以用F1值选取概率阈值ξ,选 ...

  8. Coursera在线学习---第九节(2).推荐系统

    一.基于内容的推荐系统(Content Based Recommendations) 所谓基于内容的推荐,就是知道待推荐产品的一些特征情况,将产品的这些特征作为特征变量构建模型来预测.比如,下面的电影 ...

  9. Coursera在线学习---第二节.Octave学习

    1)两个矩阵相乘 A*B 2)两个矩阵元素位相乘(A.B矩阵中对应位置的元素相乘) A.*B 3)矩阵A的元素进行平方 A.^2 4)向量或矩阵中的元素求倒数 1./V    或   1./A 5) ...

随机推荐

  1. Android Studio- 把项目提交到SVN中操作方法

    第一步 下载SVN,下载完成之后,需要吧command line client tools点击修改安装 然后Crash Reporter点击选择取消安装 如果不进行该操作,则可能在C:\Program ...

  2. 内存测试——Android Studio自带内存检测功能

    AndroidStudio 自带 CPU 和内存检测工具,绘制出变化图,可以直观明了的看出内存和cpu的变化曲线. 手机连接电脑,选择要调试的手机,选择要检测的应用进程,Memory是内存监控,CPU ...

  3. BZOJ 2004 公交线路(状压DP+矩阵快速幂)

    注意到每个路线相邻车站的距离不超过K,也就是说我们可以对连续K个车站的状态进行状压. 然后状压DP一下,用矩阵快速幂加速运算即可. #include <stdio.h> #include ...

  4. BZOJ3451 Tyvj1953 Normal 【期望 + 点分治 + NTT】

    题目链接 BZOJ3451 题解 考虑每个点产生的贡献,即为该点在点分树中的深度期望值 由于期望的线性,最后的答案就是每个点贡献之和 对于点对\((i,j)\),考虑\(j\)成为\(i\)祖先的概率 ...

  5. 函数式编程(1)-高阶变成(3)-sorted

    sorted 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大 ...

  6. Hbase(一)基础知识

    一.Hbase数据库介绍 1.简介 HBase 是 BigTable 的开源 java 版本.是建立在 HDFS 之上,提供高可靠性.高性能.列存储. 可伸缩.实时读写 NoSQL 的数据库系统. N ...

  7. 解题:NOIP 2018 赛道修建

    题面 几乎把我送退役的一道题,留在这里做个纪念. 考场看出来是原题结果为了求稳强行花了一个小时写了80pts暴力,然后挂了55pts(真·暴力写挂),结果今天花了不到半个小时连想带写一遍95pts(T ...

  8. mysql四-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  9. web系统中上下移动功能的实现

    其实上移下移的思想分几步: 核心思想:交换两个记录的位置字段的值. 问题:如何根据当前记录,找到前一个或者后一个的记录的位置. 第一:在java类属性定义一个position位置字段,不同的位置pos ...

  10. python学习(十)元类

    python 可以通过`type`函数创建类,也可通过type判断数据类型 import socket from io import StringIO import sys class TypeCla ...