Python sklearn中BaggingClassifier的默认配置与硬投票之间的差异

Python sklearn中BaggingClassifier的默认配置与硬投票之间的差异,python,machine-learning,scikit-learn,classification,data-science,Python,Machine Learning,Scikit Learn,Classification,Data Science,我正在使用Bagging分类器进行支持向量机分类,方法是使用sklearn 为了运行代码,我使用sklearn提供的默认配置: classifier=BaggingClassifier(svm.SVC(gamma=“scale”)) 因此,这些属性将是: BaggingClassifier(基本估计量=svm,n估计量=10,最大样本数=1.0,最大特征数=1.0,引导值=True,引导值=False,oob值=False,暖启动值=False,n作业数=None,随机状态=None,冗余度=

我正在使用Bagging分类器进行支持向量机分类,方法是使用sklearn

为了运行代码,我使用sklearn提供的默认配置:

classifier=BaggingClassifier(svm.SVC(gamma=“scale”))
因此,这些属性将是:

BaggingClassifier(基本估计量=svm,n估计量=10,最大样本数=1.0,最大特征数=1.0,引导值=True,引导值=False,oob值=False,暖启动值=False,n作业数=None,随机状态=None,冗余度=0)
很明显,这十个估计器中的每一个都提取了所有样本和特征。 那么,我们只是在训练10个类似的并行模型吗?在训练bagging模型之后,它如何预测新的测试查询?通过在所有这些分类中投票?当一半的估计量预测0,一半预测1时,二元分类中的预测标签是什么

那么,我们只是在训练10个类似的并行模型吗

不。那
bootstrap=True
意味着我们随机抽取每个估计量的样本进行替换。每个估计器中的样本数相等,
max_samples=1.0
确保该数量等于原始数据集大小。但是,由于重复和由于替换的独立绘图而缺少一些样本,发送给每个估计器的最终数据集是完全不同的

在训练bagging模型之后,它如何预测新的测试查询?通过在所有这些分类中投票

如果基估计量支持
predict\u proba
方法,则选择所有估计量中概率总和最高的类。否则就是多数票

当一半的估计量预测0,一半预测1时,二元分类中的预测标签是什么

如果您查看
BaggingClassifier
的函数,您会注意到它们使用
np.argmax
函数来查找最佳类。如
argmax
的#注释部分所述——

如果最大值多次出现,则返回与第一次出现对应的索引

因此,在这种情况下,
0
是预测的标签

那么,我们只是在训练10个类似的并行模型吗

不。那
bootstrap=True
意味着我们随机抽取每个估计量的样本进行替换。每个估计器中的样本数相等,
max_samples=1.0
确保该数量等于原始数据集大小。但是,由于重复和由于替换的独立绘图而缺少一些样本,发送给每个估计器的最终数据集是完全不同的

在训练bagging模型之后,它如何预测新的测试查询?通过在所有这些分类中投票

如果基估计量支持
predict\u proba
方法,则选择所有估计量中概率总和最高的类。否则就是多数票

当一半的估计量预测0,一半预测1时,二元分类中的预测标签是什么

如果您查看
BaggingClassifier
的函数,您会注意到它们使用
np.argmax
函数来查找最佳类。如
argmax
的#注释部分所述——

如果最大值多次出现,则返回与第一次出现对应的索引


因此,在这种情况下,
0
是预测的标签。

谢谢,我还有一个问题。为什么我们应该使用默认的bagging分类器,而SVM是一种确定性方法?使用默认配置的Bagging-SVM(正如我在发帖中提到的)而不是不使用Bagging的SVM,有什么解释吗?这应该早就被问到了。所以呢?没有解释吗?它是否提高了模型的准确性或可靠性?或者使模型更通用,或者避免过度拟合训练数据集?谢谢,我还有一个问题。为什么我们应该使用默认的bagging分类器,而SVM是一种确定性方法?使用默认配置的Bagging-SVM(正如我在发帖中提到的)而不是不使用Bagging的SVM,有什么解释吗?这应该早就被问到了。所以呢?没有解释吗?它是否提高了模型的准确性或可靠性?或者使模型更通用,或者避免过度拟合训练数据集?