使用交叉验证来计算特异性

Nag*_*abi 2 machine-learning scikit-learn cross-validation make-scorer

我想使用交叉验证来计算特异性。我找到了计算准确度、f1 分数和精度的代码。但我找不到具体的。例如,f1-score 的代码如下:

cross_val_score(SVC, X, y, scoring="f1", cv = 7)
Run Code Online (Sandbox Code Playgroud)

或者对于精度来说是这样的:

cross_val_score(SVC, X, y, scoring="precision", cv = 7)
Run Code Online (Sandbox Code Playgroud)

Nik*_*ido 5

特异性基本上是真实负例率,与真实正例率(召回率)相同,但针对负类

如果你有一个二进制类,你应该执行以下操作

标签 0 通常是二元问题中的负类。

print(cross_val_score(classifier, X_train, y_train, cv=10, specificity))
Run Code Online (Sandbox Code Playgroud)

如果你想要召回率(真阳性率),你可以做同样的改变类别

sensitivity = make_scorer(recall_score, pos_label=1)
print(cross_val_score(classifier, X_train, y_train, cv=10, sensitivity))
Run Code Online (Sandbox Code Playgroud)

无论如何,如果您需要更复杂的东西,您可以制作自定义记分器

make_scorer