码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习中的常用操作

时间:2018-11-16 01:11:45      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:通过   机器学习   假设   常用操作   好的   精度   注意   表示   lin   

机器学习中的常用操作

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

提高精度

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

对数据的划分

  • 将原来的训练样本按照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是我们的参数, 是我们要求的, 他们不应该考虑进去), 我们需要选择最好的模型, 这个时候就要通过Cross Validation中的数据计算每一个模型测试的\(J_{cv}(\theta)\)来判断, \(J_{cv}(\theta)\)在后面会提到

误差

  • 一旦对数据集合进行了划分,那么我们的损失值就从原来的\(J(\theta)\)变成了\(J_{train}(\theta)\), \(J_{cv}(\theta)\), \(J_{test}(\theta)\), 其中\(J_{train}(\theta)\)的功能就是在没有进行数据集合划分的\(J(\theta)\)的功能, 而\(J_{test}(\theta)\)是在我们已经拟合了假设函数, 使用Test集合中的数据进行测试所产生的损失, \(J_{cv}(\theta)\)在上面已经提到过了
  • \(J_{train}(\theta)\), \(J_{cv}(\theta)\), \(J_{test}(\theta)\)的公式和原始的\(J(\theta)\)一样, 为\(J_{train}(\theta)={{{1}\over{2m}}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}}\), 注意, m表示训练样本的数量, x和y也都是在训练样本中的, 以此类推到\(J_{cv}(\theta)\), \(J_{test}(\theta)\)

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

  • 高偏差: 欠拟合
    • 增加样本数量是徒劳
  • 高方差: 过拟合
    • 增加样本数量会提高精度

机器学习中的常用操作

标签:通过   机器学习   假设   常用操作   好的   精度   注意   表示   lin   

原文地址:https://www.cnblogs.com/megachen/p/9966992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!