了解 sklearn calibratedClassifierCV
understanding sklearn calibratedClassifierCV
大家好,我无法理解如何使用 sklearn.calibration.CalibratedClassifierCV
的输出。
我已经用这种方法校准了我的二元分类器,结果有了很大的改善。但是我不确定如何解释结果。
sklearn guide 指出,校准后,
the output of predict_proba
method can be directly interpreted as a
confidence level. For instance, a well calibrated (binary) classifier should classify the samples such that among the samples to which it gave a predict_proba value close to 0.8, approximately 80% actually belong to the positive class.
现在我想通过为模型应用 .6 的截止值来预测标签 True
来减少误报。如果没有校准,我会简单地使用 my_model.predict_proba() > .6
。
但是,似乎校准后 predict_proba 的含义发生了变化,所以我不确定是否可以再这样做。
从快速测试来看,predict 和 predict_proba 似乎遵循我在校准前期望的相同逻辑。的输出:
pred = my_model.predict(valid_x)
proba= my_model.predict_proba(valid_x)
pd.DataFrame({"label": pred, "proba": proba[:,1]})
如下:
所有概率高于 .5 的都被归类为 True,所有低于 .5 的都被归类为 False。
您能否确认,在校准之后,我仍然可以使用 predict_proba
应用不同的截止值来识别我的标签?
2 https://scikit-learn.org/stable/modules/calibration.html#calibration
对我来说,您实际上可以在校准后使用 predict_proba()
来应用不同的截止值。
class CalibratedClassifierCV
中发生的事情(如您所见)实际上是 predict()
的输出基于 predict_proba()
的输出(参见 here 供参考),即 np.argmax(self.predict_proba(X), axis=1) == self.predict(X)
.
另一方面,对于您传递给 CalibratedClassifierCV
的非校准 classifier(取决于它是否是概率 classifier)以上等式可能成立也可能不成立(例如,它不适用于 SVC()
classifier - 例如,请参阅 here,了解有关此的其他一些详细信息。
大家好,我无法理解如何使用 sklearn.calibration.CalibratedClassifierCV
的输出。
我已经用这种方法校准了我的二元分类器,结果有了很大的改善。但是我不确定如何解释结果。 sklearn guide 指出,校准后,
the output of
predict_proba
method can be directly interpreted as a confidence level. For instance, a well calibrated (binary) classifier should classify the samples such that among the samples to which it gave a predict_proba value close to 0.8, approximately 80% actually belong to the positive class.
现在我想通过为模型应用 .6 的截止值来预测标签 True
来减少误报。如果没有校准,我会简单地使用 my_model.predict_proba() > .6
。
但是,似乎校准后 predict_proba 的含义发生了变化,所以我不确定是否可以再这样做。
从快速测试来看,predict 和 predict_proba 似乎遵循我在校准前期望的相同逻辑。的输出:
pred = my_model.predict(valid_x)
proba= my_model.predict_proba(valid_x)
pd.DataFrame({"label": pred, "proba": proba[:,1]})
如下:
所有概率高于 .5 的都被归类为 True,所有低于 .5 的都被归类为 False。
您能否确认,在校准之后,我仍然可以使用 predict_proba
应用不同的截止值来识别我的标签?
2 https://scikit-learn.org/stable/modules/calibration.html#calibration
对我来说,您实际上可以在校准后使用 predict_proba()
来应用不同的截止值。
class CalibratedClassifierCV
中发生的事情(如您所见)实际上是 predict()
的输出基于 predict_proba()
的输出(参见 here 供参考),即 np.argmax(self.predict_proba(X), axis=1) == self.predict(X)
.
另一方面,对于您传递给 CalibratedClassifierCV
的非校准 classifier(取决于它是否是概率 classifier)以上等式可能成立也可能不成立(例如,它不适用于 SVC()
classifier - 例如,请参阅 here,了解有关此的其他一些详细信息。