zoukankan      html  css  js  c++  java
  • 【Stanford Machine Learning Open Course】14. 分析和改进机器学习模型

    这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index

    本文对应第六周的讲课内容。

    我们知道,一个模型不会是一撮而就的,需要根据问题不断改进已达到一个理想状态。
     
    对于一个模型改进的思路通常有:
    1. 增加训练样本集合;
    2. 用更多/更少的特征;
    3. 加大/减小正则化系数;
    4. 提高预测函数阶数(对线性回归问题);
     
    但这并不是说,为了改进模型,将上面的思路逐个尝试一遍,他们是分别适应不同的问题情形的。
    那么如何判断何时用什么方法呢? 这个就需要首先对模型有分析,有了解。
     
    如何判断一个模型的好坏?   
        用成本函数结果。(error)
    在什么样的集合上计算?
        通常来讲在训练集合上成本会比测试集合小,我们要以测试集合作为计算成本的集合。
        但这样可能也会导致模型只适应预测集合,不够稳定。 所以最好的方式是采用交叉验证(cross validation)
    什么是交叉验证?这里的交叉验证跟通常理解的不太一样。
         通常理解的交叉验证:在给定的样本集合中,每次拿出大部分样本进行训练,留小部分样本进行预测(计算误差)。 这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。
         这里的交叉验证:将样本集合分成三份 trainset/cv set/testset , 比例通常选为6:2:2, 用trainset训练,用cv set进行迭代,最后用test set进行评价。
     
    如何分析模型数据?
    (欠拟合对应bias problem,过拟合对应variance probelm)
     
    1、 随预测函数阶数变化: 
          阶数越小导致bias问题,训练样本和cv样本上成本都很大
          阶数越大导致variance问题,训练样本成本小,cv样本成本大。

     
    2、正则化模型随lambda变化趋势
         lambda越大,bias问题, 训练样本和cv样本上成本都很大。
         lambda越小,variance问题,训练样本成本小,cv样本成本大。 

     
     3. 随训练样本变化趋势
       当训练样本集合很小时,训练样本成本小,cv样本成本大。
       当训练样本集合很大时,成本接近,但训练集合的成本会比cv集合的小些。
       对于bias问题,当m变大时,cv样本误差和train样本成本会比较接近,但对variance问题,当m变大时他俩距离仍然相对较大。

     
     对分类问题除了计算成本改进模型,对结果的评价也是有必要的。
    1. 最简单的是用精度(accuracy), accuracy = 所有判断正确的样本个数/所有样本个数。
        这个在正向/负向样本比例不均衡的情况下效果不好。 
        假设有100个样本,其中只有5个是正向样本(y=1)), 95个是负向样本(y=0),  设H(x)=0 (所有样本都预测为y=0),那么accuracy=95/100=95%, 感觉很好,但实际上这种预测机制对所有正向样本都是失败的,显然不够合理。
     
    2. 用准确率(P, precision) 、召回率( R, recall )
        recall = (y=1判断正确的个数)/(应为y=1的样本个数)
        precision = (y=1判断正确的个数)/(所有判断为y=1的样本个数)
        举例说明:对下图所示样本集合和预估结果,有:
           accuracy = (15+55)/100 = 70%
           precision = 15/(15+20) = 42.8%
           recall = 15/(15+10) = 60%
     
     
    3. 通常判断一个模型,只用一个指标,那么如何拟合precision和recall为一个指标呢?
        比较简单的处理,取均值 (P+R)/2, 但这个存在的问题是如果一个指标特别好,另一个很差时结果上体现不出来。
        通常我们用F1指标, F1 = 2PR/(P+R)
     
     
     
  • 相关阅读:
    产品分析之核心功能篇
    激励CEO们最好的办法就是鼓励他们不要停止思考
    Javascript的一些经验总结
    微信为什么跟你想要的不一样?
    互联网思维西游记漫画分享
    交互设计与人类行为习惯的一些思考
    说说三四月的app审核中的几个坑
    程序员的玻璃心
    常用网站日志分析软件使用总结
    在你决定从事iOS开发前需要清楚的几个问题
  • 原文地址:https://www.cnblogs.com/liyuxia713/p/2735899.html
Copyright © 2011-2022 走看看