机器学习中的常用操作
Posted megachen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中的常用操作相关的知识,希望对你有一定的参考价值。
机器学习中的常用操作
- 输入节点到隐藏节点,特征数量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}( 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))在上面已经提到过了
- (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)
- 高偏差: 欠拟合
- 增加样本数量是徒劳
- 高方差: 过拟合
- 增加样本数量会提高精度
以上是关于机器学习中的常用操作的主要内容,如果未能解决你的问题,请参考以下文章