cis*_*koh 6 python machine-learning probability calibration scikit-learn
大家好,我无法理解如何使用sklearn.calibration.CalibratedClassifierCV.
我已经使用这种方法校准了我的二元分类器,并且结果得到了很大的改善。但是我不确定如何解释结果。 sklearn 指南指出,校准后,
方法的输出
predict_proba可以直接解释为置信水平。例如,一个校准良好的(二元)分类器应该对样本进行分类,使得在它给出的 Predict_proba 值接近 0.8 的样本中,大约 80% 实际上属于正类。
现在我想通过对模型应用 0.6 的截止值来预测 label 来减少误报True。如果没有校准,我就会简单地使用my_model.predict_proba() > .6. 然而,校准后,predict_proba 的含义似乎发生了变化,所以我不确定我是否可以再这样做。
从快速测试来看,预测和预测概率似乎遵循我在校准之前期望的相同逻辑。输出:
pred = my_model.predict(valid_x)
proba= my_model.predict_proba(valid_x)
pd.DataFrame({"label": pred, "proba": proba[:,1]})
Run Code Online (Sandbox Code Playgroud)
概率高于 0.5 的所有内容都将被归类为 True,而低于 0.5 的所有内容都将被归类为 False。
您能否确认,校准后,我仍然可以predict_proba应用不同的截止值来识别我的标签?
2 https://scikit-learn.org/stable/modules/calibration.html#calibration
对我来说,您实际上可以在校准后使用predict_proba()来应用不同的截止值。
类内发生的情况CalibratedClassifierCV(正如您所注意到的)实际上是, 的输出predict()基于predict_proba()(请参阅此处以供参考)的输出,即np.argmax(self.predict_proba(X), axis=1) == self.predict(X)。
另一方面,对于您传递给的非校准分类器CalibratedClassifierCV(取决于它是否是概率分类器),上述等式可能成立,也可能不成立(例如,它不适用于分类器SVC()- 请参阅此处,对于例如,有关此的一些其他详细信息)。
| 归档时间: |
|
| 查看次数: |
2069 次 |
| 最近记录: |