zoukankan      html  css  js  c++  java
  • 机器学习中的常用操作

    机器学习中的常用操作

    • 输入节点到隐藏节点,特征数量n可能会变化,这个取决于我们定义的隐藏层的节点个数,但是样本数量m是不变的,从隐藏层出来还是m
    • 在预测的时候,我们需要不断的迭代输入的特征

    提高精度

    • 增加样本数量 -> 解决high variance
    • 减少特征 -> 解决high variance
    • 增加特征 -> 解决high bias
      • 根据现有的特征生成多项式(从(x_1), (x_2)扩展到(x_1 + x_2 + x_1^{2} + x_2^{2} + x_1{x_2}))
      • 寻找新的特征
    • 增加正则化参数(lambda) -> 解决high variance
    • 减小正则化参数(lambda) -> 解决high bias

    对数据的划分

    • 将原来的训练样本按照6:2:2的比例划分成Train, Cross Validation, Test三个集合
    • 如果不考虑Cross Validation的话, 则将训练样本划分成7:3的比例 -> Train(7), Test(3)
    • 关于Cross Validation
      • 如果我们对同一个机器学习问题, 假设了多个不同的模型(表现形式不同, 如(kx+b)(x^2+b), 而不是(k_1x+b_1)(kx+b), 因为k和b是我们的参数, 是我们要求的, 他们不应该考虑进去), 我们需要选择最好的模型(需要引进额外的参数d, 表示那个模型), 这个时候就要通过Cross Validation中的数据计算每一个模型测试的(J_{cv}( heta))来判断, (J_{cv}( heta))在后面会提到

    误差

    • 一旦对数据集合进行了划分,那么我们的损失值就从原来的(J( heta))变成了(J_{train}( heta)), (J_{cv}( heta)), (J_{test}( heta)), 其中(J_{train}( heta))的功能就是在没有进行数据集合划分的(J( heta))的功能, 而(J_{test}( heta))是在我们已经拟合了假设函数, 使用Test集合中的数据进行测试所产生的损失, (J_{cv}( heta))在上面已经提到过了, 其实在CV数据集中的进行的就是对模型的测试而已, 和我们要在Test数据集中是一样的, 只是目的不同, 在CV数据集中, 我们目的是找出最好的模型, 因为这个时候模型太多了, 而在Test数据集中的时候, 在之前我们已经通过交叉验证获取了最好的模型, 现在是来测试一下, 这个模型对Test中的数据拟合的情况
    • (J_{train}( heta)), (J_{cv}( heta)), (J_{test}( heta))的公式和原始的(J( heta))一样, 为(J_{train}( heta)={{{1}over{2m}}sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}}), 注意, m表示训练样本的数量, x和y也都是在训练样本中的, 以此类推到(J_{cv}( heta)), (J_{test}( heta))

    高偏差(high bias)和高方差(high variance)

    • 高偏差: 欠拟合

      • 增加样本数量是徒劳
    • 高方差: 过拟合

      • 增加样本数量会提高精度
    • 常见的(J_{train})(J_{cv})关系

      • 随着样本逐渐增加

        • (J_{train}uparrow), 因为在样本很少的时候是很好拟合的, 随着样本的增加想要拟合所有的点就非常的困难
        • (J_{cv}{downarrow}), 但是交叉验证的结果越来越小, 我们主要看的就是这个
      • 随着正则化参数(lambda)逐渐增加

        • (J_{train}uparrow), (lambda)越大, 则表示我们对( heta)的惩罚力度在不断的增大, 模型会朝着过拟合的反方向发展, 我们知道过拟合的(j_{train})很小, 所以现在这个情况下(J_{train})应该增大
        • (J_{cv}{downarrow}{uparrow}), (J_{cv})先下降后上升, (lambda)太小或者太大都不好
      • 随着阶数逐渐增加

        • (J_{train}downarrow)
        • (J_{cv}{downarrow}{uparrow})
      • 从上面我们发现, (J_{cv})要么是下降的, 要么是先下降再上升的

  • 相关阅读:
    blk_update_request: I/O error, dev fd0, sector 0
    将MySQL数据迁移到Redis
    专职DBA-MySQL DAL(Data Access Layer)中间件总结
    搞笑聊天(一)
    看图写话(一)
    NFS存储服务
    rsync备份服务
    专职DBA-使用Python操作MySQL数据库
    如何解决SecureCRT无法选择Monaco等其他字体
    MySQL架构类型
  • 原文地址:https://www.cnblogs.com/megachen/p/9966992.html
Copyright © 2011-2022 走看看