我一直在研究这个堆叠的例子。在这种情况下,每组K折交叉验证会产生一列数据,并且每个分类器都会重复这一过程。即:用于混合的矩阵是:
dataset_blend_train = np.zeros((X.shape[0], len(clfs)))dataset_blend_test = np.zeros((X_submission.shape[0], len(clfs)))
我需要堆叠来自多分类问题的预测(每个样本可能有15个不同的类)。这将为每个分类器生成一个n*15的矩阵。
这些矩阵应该只是水平拼接吗?还是应该在应用逻辑回归之前以其他方式组合?谢谢。
回答:
你可以通过两种方式将代码适应多分类问题:
- 水平拼接概率,即你需要创建:
dataset_blend_train = np.zeros((X.shape[0], len(clfs)*numOfClasses))
dataset_blend_test = np.zeros((X_submission.shape[0], len(clfs)*numOfClasses))
- 不使用概率,而是使用基础模型的类别预测。这样可以保持数组大小不变,但你只需使用
predict
而不是predict_proba
。
我两种方法都成功使用过,但哪种方法效果更好可能取决于数据集。