具有两个矩阵的向量和标量之间的元素乘法

问题描述

我在一个包含 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_probac2_proba 和权重 G 都是您提到的 2D numpy 数组。