控制scikit-learn中LDA和QDA的后验概率阈值

时间:2015-05-07 04:38:05

标签: scikit-learn

考虑以下用例(这完全来自James等人的“统计学习简介”)。

您正在尝试根据各种个人数据预测信用卡所有者是否会违约。您正在使用线性判别分析(或者,出于此问题的目的,使用二次判别分析)。

您希望您的估算人员优先考虑误报率的真阳性率。也就是说,正确识别即将发生的默认值比预测未能实现的默认值更重要。

sklearn.lda.LDA和/或sklearn.qda.QDA课程中是否有此设置?我想也许使用class_prior命名参数构建它们是合适的,但这似乎不被接受。

1 个答案:

答案 0 :(得分:4)

您可以使用lda.predict_proba更改决策阈值,然后手动设置阈值:

lda = LDA().fit(X_train, y_train)
probs_positive_class = lda.predict_proba(X_test)[:, 1]
# say default is the positive class and we want to make few false positives
prediction = probs_positive_class > .9

这将为您提供一个非常保守的估计,即它们是否会默认(只会说它们默认为90%)。 是否.9实际上对应于90%确定取决于分类器的calibrated有多好。