【发布时间】:2020-06-25 05:15:15
【问题描述】:
我正在尝试将集成分类器的验证集性能与构成集成的各个预测器进行比较。
我一直在关注 Exercise 8 from this notebook 的代码,使用 @987654329 为 MNIST Digits 数据集的版本 1 构建具有 LinearSVC、RandomForestClassifier、ExtraTreesClassifier 和 MLPClassifier 的硬 VotingClassifier @的fetch_openml API。
我通过使用验证数据调用其score 函数来训练集成并对其进行评估,得到了 0.97 的分数。因此,我确定整体,并且通过扩展,各个预测器已经过训练/拟合。
但是当我尝试使用列表理解来调用 score 时,在这个合奏中适合 estimators_ 的个人上,就像这样
[estimator.score(X_val, y_val) for estimator in voting_clf.estimators_]
即使我对训练数据进行评估,每个预测变量的结果总是 0.0。
我已确认estimators_ 中的子估计器已使用predict 方法进行拟合,如this StackOverflow post 中所述。
我还单独训练了相同的估计器,并用相同的方法对它们进行了评估。这似乎有效,因为分数与教程笔记本中的分数相似。
我是否在集成对象中引用了错误的子估计器列表?
【问题讨论】:
-
欢迎来到 SO;请在此处发布您使用的确切代码,而不是在外部链接中 - 请参阅How to create a Minimal, Reproducible example。就目前而言,无法说出您的问题究竟出在哪里
标签: python machine-learning scikit-learn ensemble-learning