问题描述
我在一个包含 2 个类和 150 个样本的数据集上运行了一个带有 2 个分类器的分类实验。分类器是具有 predict_proba()
方法的 scikit-learn 对象。此方法返回一个形状数组 (samples
,classes
),其中包含每个样本的概率分布。我还计算了另一个矩阵 G
,其形状为 (samples
,2),其中包含每个样本的每个分类器的“重要性”。
最终输出必须是每个 predict_proba()
行和 G
中的标量的线性组合。单个样本的示例:
G = np.array([0.3,0.7])
classifier_1_proba = np.array([0.6,0.4])
classifier_2_proba = np.array([0.2,0.8])
Y = classifier_1_proba * G[0] + classifier_2_proba * G[1]
只需一个样本/输出,这很容易,但我不知道如何用多个样本(例如整个测试集)来完成。
解决方法
我认为这对你有用:
Y = c1_proba * G[:,None] + c2_proba * G[:,1,None]
假设分类器概率矩阵 c1_proba
、c2_proba
和权重 G
都是您提到的 2D numpy 数组。