Понимание значений решения_функции

Я в настоящее время нахожусь в середине моего первого машинного обучения, и до сих пор я не совсем понимаю масштаб значений, которые я получаю от decision_function(X)(Ни как их понять).

На основании документации sklearndecision_function(X) предназначен для:

Предсказать доверительные оценки для образцов.

Тем не менее, при запуске следующего скрипта:

from sklearn.datasets import fetch_mldata
import numpy as np
from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import confusion_matrix , precision_score, recall_score


mnist = fetch_mldata('MNIST original')

classifier = SGDClassifier(random_state = 42, max_iter = 5)


X,y = mnist["data"], mnist["target"]
some_digit = X[36001]
some_digit_image = some_digit.reshape(28, 28)

X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]

random_order = np.random.permutation(60000)

X_train, y_train = X_train[random_order], y_train[random_order]

y_test_5 = (y_test == 5)
y_train_5 = (y_train == 5)


classifier.fit(X_train, y_train_5)
print(classifier.decision_function([X_test[1]]))

распечатывает [-289809.39489525] для decision_function на данный момент я не уверен, как читать и как оценивать эти значения (я ожидал увидеть проценты). Если бы кто-нибудь мог объяснить мне, что означают эти чтения, я был бы очень признателен.

Заранее большое спасибо.

1 ответ

Как получить вероятности (проценты)?

Использовать predict_proba метод.

Что такое decision_function ?

Так как SGDClassifier линейная модель, decision_function выводит расстояние со знаком до разделяющей гиперплоскости. Это число просто < w,x> + b или переведено в имена атрибутов scikit-learn < coef_,х> + intercept_,

Другие вопросы по тегам