我选择了具有以下代码的阈值来获得 90% 精度的分类器
from sklearn.model_selection import cross_val_predict
y_train_pred = cross_val_predict(sgd_clf, X_train, y_train, cv=3)
z_scores = cross_val_predict(sgd_clf, X_train, y_train, method='decision_function')
from sklearn.metrics import precision_recall_curve
precisions, recalls, thresholds = precision_recall_curve(y_train_pred, z_scores)
threshold_90_precision = thresholds[np.argmax(precisions >= 0.9)]
y_train_pred_90percent_precision = (z_scores >= threshold_90_precision)
print(precision_score(y_train, y_train_pred_90percent_precision))
我期望precision_score 为90%,但它返回95%。这是预期的吗?我的代码有什么不正确的地方吗?如果是预期的,你能解释一下原因吗?