我有一个数据集,我将其分成两部分,用于使用 scikit learn 训练和测试随机森林分类器。
我有 87 个类和 344 个样本。大多数情况下,predict_proba
的输出是一个 3 维数组 (87, 344, 2)
(它实际上是一个 列表
87 个 numpy.ndarray
个 (344, 2)
元素)。
有时,当我选择不同的样本子集进行训练和测试时,我只会得到一个二维数组 (87, 344)
(虽然我无法计算出在哪些情况下) .
我的两个问题是:
- 这些维度代表什么?我计算出要获得 ROC AUC 分数,我必须取一半的输出(即
(87, 344, 2)[:,:,1]
,转置它,然后将它与我的基本事实进行比较(roc_auc_score(ground_truth, output_of_predict_proba[:,:,1].T)
本质上)。但我不明白它的真正含义。 - 为什么输出会随着数据的不同子集而变化?我无法理解在哪些情况下它返回 3D 数组,在哪些情况下返回 2D 数组。
最佳答案
classifier.predict_proba()
返回类别概率。数组的 n
维度将根据您训练的子集中有多少类而变化
关于python - predict_proba 的 Scikit-learn RandomForestClassifier 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282706/