zoukankan      html  css  js  c++  java
  • 机器学习解决问题时的必要关注点

    机器学习固然是当今解决众多任务的有效方法,但实际使用这个方法时依然需要注意几个问题:

    1 数据方面

    1.1 训练数据量

    需要大量数据,才能让多数机器学习算法正常工作。即便对于非常简单的问题,一般也需要数千的样本,对于复杂的问题,比如图像或语音识别,可能需要数百万的样本。特别是在深度学习中,数据在很大程度上决定了算法的表现。

    1.2 数据分布情况

    用于训练的数据需要在很大程度上能够反映真实情况,即要有代表性。达到这个要求需要注意:如果样本太小,就会有样本噪声(即有一定概率包含没有代表性的数据),但是即使是非常多的样本也可能没有代表性。如果取样手段错误的话,称为样本偏差。

    1.3 数据质量

    即使数据量足够,并且具有代表性,但如果数据质量不高,那么这些数据依然称不上好的数据。一旦训练数据中的错误、异常值和噪声(错误测量导致)太多,系统检测出潜在规律的难度就会变大,性能就会降低。

    1.4 特征工程

    系统只有在训练数据包含足够相关特征、少量非相关特征的情况下,才能进行有效的学习。机器学习成功的关键之一就是是用好的特征进行训练。为了得到好的特征所做的工作称为特征工程,具体涉及以下几项工作:
    1 特征选择:在所有存在的特征中选取最有用的特征进行训练。
    2 特征提取:组合存在的特征,生成一个更有用的特征(如前面看到的,可以使用降维算法)。
    3 收集新数据创建新特征。

    2 算法方面

    2.1 过拟合

    模型在训练数据上表现很好,但是推广效果不好。通俗的解释就是模型将数据中的一些噪声以及错误也学习了,有时也因为选择的模型过于复杂,拟合能力太强。
    可以考虑以下解决方案:
    1 简化模型,可以通过选择一个参数更少的模型(比如使用线性模型,而不是高阶多项式模型)、减少训练数据的属性数、或限制一下模型
    2 收集更多的训练数据
    3 减小训练数据的噪声(比如,修改数据错误和去除异常值)

    限定一个模型以让它更简单被称作正则化(regularization),正则化的度可以用一个超参数(hyperparameter)控制。超参数是一个学习算法的参数(而不是模型的)。它是不会被学习算法本身影响,在训练中保持不变。调节超参数是构建优良的机器学习模型中非常重要的一部分。

    2.2 欠拟合

    与过拟合相对,欠拟合就是对训练数据缺乏足够的拟合能力,以至于只学习了数据中很少的规律与知识,甚至根本没有学到。
    可以考虑以下解决方案:
    1 选择一个更强大的模型,带有更多参数
    2 用更好的特征训练学习算法(特征工程)
    3 减小对模型的限制(比如,减小正则化超参数)

    3 检验模型

    关于模型检验可以参考“机器学习与数据挖掘”专题下的“k折交叉验证”一文。

    声明:本文部分内容源于《Sklearn与TensorFlow机器学习实用指南》一书。

  • 相关阅读:
    02 make和目录结构
    05 UCI
    IE6下position:fixed不固定的解决办法
    php内存溢出
    MySQL计划任务(事件调度器)(Event Scheduler)
    PHP面向对象
    php学习笔记——12年2月16日开始不断更新
    Phpnow下配置Xdebug调试
    边学边用
    ASP时间格式化函数
  • 原文地址:https://www.cnblogs.com/pythonfl/p/12311407.html
Copyright © 2011-2022 走看看