考虑以下用例(这完全是从James等人的统计学习简介中crib缩)。
您正在尝试预测信用卡所有者是否会根据各种个人数据默认。您正在使用线性判别分析(或出于这个问题的目的,是二次判别分析)。
您希望您的估计器优先考虑实际的正率优先于误报率。也就是说,正确识别即将违约比预测未能实现的默认值更为重要。
在sklearn.lda.lda和/或sklearn.qda.qda类中是否有设置?我认为也许使用class_prior命名参数构建它们是适当的,但这似乎并不接受。
您可以使用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%的确定性取决于分类器的校准程度。