一、Evaluating a Learning Algorithm

训练后测试时如果发现模型表现很差,可以有很多种方法去更改:

  1. 用更多的训练样本;
  2. 减少/增加特征数目;
  3. 尝试多项式特征;
  4. 增大/减小正则化参数\(\lambda\)。

    那么该怎么去选择采用哪种方式呢?

    一般将70%的数据作为训练集,30%的数据作为测试集。

    先用训练集最小化\(J_{train}(\Theta)\),得到一组参数值\(\Theta\);

    然后计算测试集误差\(J_{test}(\Theta)\):

    对于线性回归



    对于逻辑回归



    测试集的平均误差(分类错误的比率):



    假设要选择用几次多项式\(d\)去作为假设函数,那么做法就是不断尝试\(d\),选择一个在测试集上损失最小的\(d\),以此作为模型泛化能力的衡量。但是这样是有问题的,因为\(d\)相当于是被测试集训练的,再用测试集去测试,很不公平。所以一般将数据集分为3部分:60%训练集、20%交叉验证集、20%测试集:

二、Bias vs. Variance

看图:





正则化和Bias/Variance的关系:



训练集大小与Bias/Variance的关系:



三、Error Analysis

Andrew推荐的流程:

四、Handling Skewed Data

如果数据集中正负类的数据规模差距过大,只用误差衡量模型是不可靠的,此时需要查准率和召回率两个指标。



如何权衡这两个指标,一般使用\(F1\)得分:

\[F_1=2\frac{PR}{P+R}
\]

最新文章

  1. ERP软件的价格设计
  2. ngx_http_core_module模块.md
  3. python sokct 包详解
  4. MySql之触发器【过度变量 new old】
  5. Eclipse+pydev 常用快捷键
  6. Hive 8、Hive2 beeline 和 Hive jdbc
  7. submit提交表单后,不刷新当前页面
  8. Jenkins SSH timeout
  9. 本地phpstudy时常停机连接失败,php.ini文件中9000端口问题
  10. 2017年总结的前端文章——CSS盒模型详解
  11. bugku web web5
  12. 【转载】IIC SPI UART串行总线
  13. LeetCode刷题:第一题 两数之和
  14. vue快速入门
  15. matplotlib fill和fill_between
  16. vue.js精讲01
  17. Java中double转BigDecimal的注意事项
  18. swift 基础小结01 --delegate、Optional、GCD的使用、request请求、网络加载图片并保存到沙箱、闭包以及桥接
  19. 绝对震撼 10个实用的jQuery/HTML5插件
  20. 我的JdbcUtils类

热门文章

  1. C语言 文件操作(三)
  2. Linux系统安装Dos系统(虚拟机里装)
  3. Solr复杂查询一:函数查询
  4. 分享一本Java并发编程的免费好书
  5. JPA入门例子(采用JPA的hibernate实现版本) --- 会伴随 配置文件:persistence.xml
  6. Python实现按键精灵(一)-键鼠操作
  7. 2016NOIP普及组T2回文日期
  8. PHP xml 外部实体注入漏洞学习
  9. Java工作流引擎-集团模式下的权限 设计与实现
  10. linq深入