Scikit learn 在scikit学习中控制LDA和QDA的后验概率阈值

Scikit learn 在scikit学习中控制LDA和QDA的后验概率阈值,scikit-learn,Scikit Learn,考虑以下用例(这完全是从James等人的统计学习入门中抄袭而来) 您试图根据各种个人数据预测信用卡所有者是否会违约。您使用的是线性判别分析(或者,就本问题而言,二次判别分析) 你想让你的评估者优先考虑真阳性率而不是假阳性率。也就是说,正确识别即将发生的违约比预测无法实现的违约更重要 在sklearn.lda.lda和/或sklearn.qda.qda类中是否有此设置?我认为也许用class_previor命名的参数构建它们是合适的,但这似乎不被接受。您可以使用lda.predict_proba更

考虑以下用例(这完全是从James等人的统计学习入门中抄袭而来)

您试图根据各种个人数据预测信用卡所有者是否会违约。您使用的是线性判别分析(或者,就本问题而言,二次判别分析)

你想让你的评估者优先考虑真阳性率而不是假阳性率。也就是说,正确识别即将发生的违约比预测无法实现的违约更重要


在sklearn.lda.lda和/或sklearn.qda.qda类中是否有此设置?我认为也许用class_previor命名的参数构建它们是合适的,但这似乎不被接受。

您可以使用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%的确定性取决于分类器的性能。

我很高兴看到一位sklearn大师加入进来。非常感谢。这个解决方案给我的印象和它应该的一样。API已经有足够的信息用于此类分析,因此不需要专门的参数。