一、模型的选择

  1. 模型分为回归模型,分类模型,聚类模型等,在选择模型的时候,具体问题具体分析,将具体的问题划归到实际的模型类别
  2. 若是实际问题的数据量比较小的话,直接查看数据进行简单模型拟合就能得到,数据的内部关系,没必要选择模型进行机器学习

否则采集更多的数据

  1. 根据数据类型也可以选择相应的模型。例如,音频数据,图像数据,数值型,文字型数字等等

二、模型的优化

1.模型状态判断
  • 模型的状态分为过拟合和欠拟合状态,一般判断过拟合和欠拟合可以
  1. 绘制模型拟合的曲线直观地观察。如下:
    在这里插入图片描述
    2.可以根据训练样本效果和测试样本效果的对比判断,若训练样本的效果远大于测试样本的效果,就是过拟合;如果两种效果都很差劲则欠拟合
2.模型优化

根据模型的状态对症下药

  • 过拟合是在实际应用中经常出现的问题
  1. 最有效最简单的方式就是找更多的数据来学习
  2. 增大正则化的惩罚系数
  3. 筛选重要有效的特征也是一个比较好的途径
  4. 模型融合(增加不同类型模型的融合)
  • 欠拟合
  1. 欠拟合一般是模型的表达能力不够,可以考虑换表达效果更好的模型
  2. 减小正则化系数(一般作用比较小)
  3. 增加挖掘数据中更好的更有效的特征
  • 对于物理意义明显的模型
  1. 对其权重尽行分析,细致化做更加多元的特征组合
  2. bad- case 分析 看下具体模型在处理哪些数据时出错了,没有达到效果

三、模型融合

上一文中已经提到bagging思想
模型融合的类型:

集成思想主要分为两大流派:Boosting一族通过将弱学习器提升为强学习器的集成方法来提高预测精度(典型算法为AdaBoost);而另一类则为Bagging,即通过自助采样的方法生成众多并行式的分类器,通过“少数服从多数”的原则来确定最终的结果(典型算法为随机森林)

  • Bagging(Random Forest)
  1. 基本思想:所谓集体的智慧是伟大
  2. 图示:
    在这里插入图片描述
  3. 对样本进行有放回的抽样,同时对样本属性也进行抽样的话,就是强大的RF
  4. 结果融合的时候,对于分类问题可以应用投票的方式;对于回归问题可以应用求平均的方式
  • Stacking
  1. 基本的思想:站在巨人的肩膀上,应用前面学习器学习得到的结果,再进行下一层学习器的学习
  2. 图示:
    在这里插入图片描述
  3. 第二层(Level 1)一般使用线性模型,在Level 0中学习得到的结果送入Level 1 中很容易出现过拟合的现象(如果Level 1 应用拟合效果较强的非线性模型)
  • Adaboost(GDBT)
  1. 基本思想:针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)

通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据特征,并放在关键的训练数据上面。

  1. 图示:
    对图中的正类和负类进行分类,进过D1,D2,D3 三次分类
    在这里插入图片描述
    在这里插入图片描述
    最后进行融合

四、参考

  1. 《机器学习》. 周志华
  2. 《统计学习方法》. 李航
  3. Adaboost百科
  4. 七月在线官网
  5. Bagging和Boosting资料
  6. Boosting Decision Tree教程 http://www.schonlau.net/publication/05stata_boosting.pdf
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐