Понимание значений решения_функции
Я в настоящее время нахожусь в середине моего первого машинного обучения, и до сих пор я не совсем понимаю масштаб значений, которые я получаю от 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_
,