多类别分类的概率阈值



我使用Python中的随机森林将我的数据分类为6个类。我的数据是X,Y,Z坐标,一些几何特征和标签。我使用几何特征和标签来使用训练集(我的数据的随机70%(训练分类器。不过,我还想在测试集上使用一个概率阈值,比如说50%(其余30%的数据(,因此以低于50%概率预测的数据被分配给一个类别6,该类别表示未知,其余的数据通常从0到5。但是,我希望输出的预测标签的顺序与测试集中的顺序相同,这样我就可以很容易地将预测标签与XYZ坐标相关联,以便于可视化。我如何在Python中实现它?

如果我理解得对;如果你的五个班都没有概率>0.5您会将输入分配为名为unknown的第六个类吗?

可以对RandomForest(RF(类使用predict_proba方法。它给出了一个";可能性;适用于您的所有类别,例如一个样本


pred = RF.predict_proba(X_test)
#pred
#[[0.2,0.3,0.1,0.40],
#[0.8,0.1,0.05,0.05,0]]

我们将第一个分配为CCD_ 3(类6(,第二个分配为类1。

然后,您可以在整个测试集上使用它

pred = RF.predict_proba(X_test)
classes = [6 if sum(p<0.5)==5 else np.argmax(p)+1 for p in pred] 

最新更新