1.关于堆栈泛化Stacked Generalization(SG)
作为一个在kaggle比赛中高分选手常用的技术,SG在部分情况下,甚至可以让错误率相比当前最好的方法进一步降低30%之多。
以下图为例,简单介绍什么是SG:
① 将训练集分为3部分,分别用于让3个基分类器(Base-leaner)进行学习和拟合
② 将3个基分类器预测得到的结果作为下一层分类器(Meta-learner)的输入
③ 将下一层分类器得到的结果作为最终的预测结果
当然,分类器个数不是固定的,具体到模型也没有统一要求。本次实验的第一层是两个子分类器(分别是knn和perception),第二层是逻辑回归。

我们使用两个模型作为子模型进行stacking,使用线性模型作为聚合器模型。
子模型1:k-Nearest Neighbors。
子模型2:感知器。
聚合器模型:Logistic回归。
每个模型有各自的训练模型的函数和用于进行预测的函数。
子模型1:k-Nearest Neighbors
k-Nearest Neighbors算法使用整个训练数据集作为模型。
knn_model函数用于训练模型。

进行预测需要在训练数据集中查找k个最相似的记录并选择最常见的类值。 euclidean_distance函数用于计算训练数据集中数据之间的相似性。
以下是对kNN模型进行预测的一些函数。函数euclidean_distance()计算两行数据之间的距离,get_neighbors()定位训练数据集中新数据行的所有邻居,knn_predict()根据邻居做出新数据行的预测。

本文深入探讨了堆栈泛化(Stacked Generalization)技术,一种在Kaggle竞赛中被高手广泛运用的方法,能够显著降低错误率。文章详细解释了SG的工作原理,通过将多个基分类器的预测结果作为更高层分类器的输入,从而实现预测的优化。并通过实例展示了使用k-最近邻、感知器和逻辑回归构建的堆栈泛化模型。
最低0.47元/天 解锁文章
6494

被折叠的 条评论
为什么被折叠?



