关于机器学习:机器学习-Ensemble-Model

9次阅读

共计 2075 个字符,预计需要花费 6 分钟才能阅读完成。

机器学习 – Ensemble Model

这里有 M1 到 Mn 的 n 个单模,给出这 n 个模型预测后果别离为 pred1~ predn。咱们把所有模型后果联合起来,造成繁多的模型。

当初的问题是,如何组合这些单模预测后果,来晋升最终集成模型的准确性、缩小泛化误差。这就是 Ensemble 的艺术。

在事实的生产环境的数据集上训练模型,可能是一个十分具备挑战性的问题,因为可能蕴含许多 潜在散布

某些模型能够很好地模仿这些数据的一个方面,而其余模型则能够很好地模仿另一个方面。集成算法提供了一个解决方案,咱们能够训练这些模型,并作出合成预测,其中最终的准确度比每个独自的模型好(三个臭皮匠顶个诸葛亮😂)。

实例

这里咱们先应用泰坦尼克号幸存的例子。

假如有 3 个模型,m1、m2、m3,比方 m1 是逻辑回归,m2 是 KNN,m3 是 SVM。咱们失去了 3 个模型的后果,不同模型的预测后果都不太一样。

要怎么去更迷信地“合成”1 个后果呢?上面介绍几种不同的集成办法:

Max Voting

最简略的办法:从每个模型中获取最终后果,而后取得每个模型的最大投票权。

比方上面的 3 个模型,有 2 个模型预测后果为 1,那 final pred 就是 1(哪个后果的得票最高,就抉择哪个后果,多数遵从少数

<img src=”https://p.pstatp.com/origin/pgc-image/ac49caca08904a6496f45aaa5329d8b4″ style=”zoom:67%;” />

那为什么要这么做呢?这样难道就比单模的后果更靠谱吗?

更直观的数学阐明

假如有 3 个二进制分类器(a,b,c),准确率为 70%。当初将这些分类器视为伪随机数生成器,它输入“1”的概率为 70% 和输入“0”的概率为 30%。

对于 3 个分类器的少数投票,咱们能够预期 4 个后果:

所有可能的预测状况:All three are correct
  0.7 * 0.7 * 0.7
= 0.3429

Two are correct
  0.7 * 0.7 * 0.3
+ 0.7 * 0.3 * 0.7
+ 0.3 * 0.7 * 0.7
= 0.4409

Two are wrong
  0.3 * 0.3 * 0.7
+ 0.3 * 0.7 * 0.3
+ 0.7 * 0.3 * 0.3
= 0.189

All three are wrong
  0.3 * 0.3 * 0.3
= 0.027
  • 大多数状况下,(约 44%)少数投票者纠正了一个谬误;
  • 这个多数票汇合的正确率均匀为 78% (0.3429 + 0.4409 = 0.7838);

根本模型有 70% 的准确度,但集成模型有 78% 的准确度!

另外,减少更多的分类器,集成成果通常也会进步。投票集成可升高错误率,并且晋升低相干模型的预测,适宜于 多分类工作

相关性

A good ensemble contains high performing models which are less correlated.

三个高度相干的模型在没有改良的状况下产生了一个整体:

1111111100 = 80% accuracy
1111111100 = 80% accuracy
1011111100 = 70% accuracy

The majority vote ensemble produces:
1111111100 = 80% accuracy

当初再来看看,有 3 个体现较差,但高度不相干的模型:

1111111100 = 80% accuracy
0111011101 = 70% accuracy
1000101111 = 60% accuracy

The majority vote ensemble produces:
1111111101 = 90% accuracy

如果汇合模型之间较低的相关性,仿佛能够晋升纠错能力。

Averaging

平均法适用范围就更广了,分类、回归工作都能够应用,在不同的度量下也实用(AUC、平方误差或对数损失)。

均匀预测通常能够 缩小 overfit。现实状况下,心愿类之间平滑地宰割,而单个模型的预测可能有点毛糙了。

上图中,绿线从噪声数据中学习,而黑线有更好的宰割成果。均匀多条不同的绿线会更靠近黑线。

构建机器学习模型的指标不是去了解训练数据,而是很好地概括新的数据,也就是模型要在测试集有较好的泛化能力。

同样有 3 个模型,最终预测的后果取均值(很好了解,不多讲了)

Weighted Averaging

有平均法,自然而然就会有加权均匀。如果一个模型体现好,就给更高的权重,相同,则权重更低。

还是有 3 个模型,依据模型在验证集上的 R 方大小排序,权重等于排序大小。

M2 的成果最差,权重等于 1;M1、M3 成果最好,权重都等于 2。

模型后果进行加权均匀:

Rank averaging

下面的办法是加权均匀,会发现给模型的权重是人为依据验证集上的评估指标的排序给的(比方 M1、M3 都给了权重 2)。

当初介绍的办法,是对加权均匀的一点改变。

  1. 依据不同模型在验证集上的体现进行排序;

  1. 依据排序,计算权重(R-square / Rank),这里相当于做了 标准化解决

  1. 模型后果加权求和;


参考链接

  1. https://medium.com/weightsand…
  2. https://mlwave.com/kaggle-ens…

欢送关注集体公众号:Distinct 数说

正文完
 0