机器学习的过拟合和欠拟合问题(1-4)

一般情况下,模型的训练需要考虑两个方面的内容:
1. 模型预测的准不准 ---> 可以通过模型的效果来评估
2. 模型的复杂度高不高 ---> 通过模型的训练时间、预测时间、资源消耗来衡量,也可以通过模型在训练数据上的效果和在测试数据上的效果的差异情况来衡量

在模型开发过程中,主要期望是模型能够非常好的拟合训练数据,但是在这个过程中可能会存在两个问题:
--1. 过拟合
--2. 欠拟合

过拟合:
  体现:模型在训练数据集上效果比较不错,但是在测试数据集上效果不是特别的好。
  产生原因:因为模型学习了太多的训练数据上的特征信息(也就是把一些不是特别重要的特征信息也学习到了,就是有可能把一些训练数据中存在的特征,测试数据中不存在的特征学习到)
    -1. 算法的学习能力比较强
    -2. 可能需要进行模型参数的调整
    -3. 样本数据太少
    -4. 训练数据中可能存在一些异常特征,eg:噪音特征
  解决方案:
    -1. 换一种弱学习能力的算法,限制模型的学习能力。
    -2. 进行交叉验证等方式进行模型参数的选择
    -3. 增加样本数据量
    -4. 利用集成学习的算法来解决过拟合的问题,主要采用bagging思路来做。
    -5. 对训练用的特征属性做一个分析,找出适合的特征属性作为训练数据的基本特征属性
    -6. 对训练用的特征属性做一个分析,根据业务场景等信息来增加或者减少特征属性

  
欠拟合:
  体现:欠拟合主要是指模型在训练数据上的效果都不佳。
  产生原因:模型没有学习到训练数据样本上的特征信息(特征属性X和目标属性Y之间的映射关系),所以模型在训练数据上的效果比较差。
    -1. 算法的学习能力比较弱
    -2. 可能需要进行模型参数的调整
    -3. 样本数据量过小或者过大
    -4. 用于训练模型的特征属性不是特别的适合
  解决方案:
    -1. 换一种强学习能力的算法。
    -2. 进行交叉验证等方式进行模型参数的选择
    -3. 增加或者减少样本数据量
    -4. 利用集成学习的算法来解决欠拟合的问题,主要采用boosting思路来做。
    -5. 对训练用的特征属性做一个分析,找出适合的特征属性作为训练数据的基本特征属性
    -6. 对训练用的特征属性做一个分析,根据业务场景等信息来增加或者减少特征属性
    

你可能感兴趣的:(面试)