Sklearn решение_функция (порог) выбора - PullRequest
0 голосов
/ 12 октября 2018

Согласно документации sklearn, в некоторых моделях можно изменить метод decision_function для улучшения результатов.Например, если вы хотите получить более высокий отзыв в задаче двоичной классификации, вы можете изменить пороговое значение до значения ниже 0.Но поскольку, если вы сделаете это в своем тесте, вы можете добавить некоторую информацию после обучения, чтобы прогнозы были слишком реалистичными.

Мне было интересно, есть ли способ сделать это с помощью перекрестной проверки для выборапорог без использования тестового набора.Таким образом, вы можете применить его к вашему тестовому комплекту более безопасным способом.

В этом примере мы имеем простую реализацию без использования стратегии перекрестной проверки (от Введение в машинное обучение с книгой Python)

from mglearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
X, y =make_blobs(n_samples=(400,50), centers=2, cluster_std=[7.0,2],
                random_state=22)
X_train, X_test, y_train, Y_test = train_test_split(X,y,random_state=0)
svc= SVC(gamma=0.5).fit(X_train,y_train)
y_pred_lower_threshold = svc.decision_function(X_test) > -.8
print(classification_report(Y_test, y_pred_lower_threshold))

Что приводит к такому результату

           precision    recall  f1-score   support

          0       1.00      0.81      0.89       104
          1       0.31      1.00      0.47         9

avg / total       0.95      0.82      0.86       113

Я почти уверен, что для этого должен быть способ использования набора проверки.Но я не могу понять, как точно применить это, даже если я понимаю.

...