我有一个数据集,将其分为两部分进行随机森林分类器的训练和测试,使用的是scikit learn。
我有87个类别和344个样本。大多数情况下,predict_proba
的输出是三维数组 (87, 344, 2)
(实际上是由87个元素为(344, 2)
的numpy.ndarray
列表组成)。
有时,当我选择不同的样本子集进行训练和测试时,我只获得了一个二维数组(87, 344)
(虽然我无法确定在哪些情况下会出现这种情况)。
我的两个问题是:
- 这些维度代表什么?我发现要得到ROC AUC分数,我必须取输出的一半(即
(87, 344, 2)[:,:,1]
),转置它,然后与我的真值比较(基本上是roc_auc_score(ground_truth, output_of_predict_proba[:,:,1].T)
)。但我不明白这到底意味着什么。 - 为什么输出会随着不同数据子集而改变?我无法理解在哪些情况下它会返回三维数组,在哪些情况下会返回二维数组。