6. Визуализации#
Scikit-learn определяет простой API для создания визуализаций в машинном обучении. Ключевая особенность этого API — возможность быстрого построения графиков и визуальной настройки без пересчёта. Мы предоставляем Display классов, которые предоставляют два метода для создания графиков: from_estimator и
from_predictions.
The from_estimator метод генерирует Display объект из обученного оценщика,
входные данные (X, y), и график.
from_predictions метод создает Display объект из истинных и предсказанных значений (y_test, y_pred), и график.
Используя from_predictions Если передается массивоподобный объект осей, частная зависимость pos_label. Для predict_proba, выберите столбец, соответствующий
pos_label класс, в то время как для decision_function, инвертировать оценку (т.е. умножить на -1), если pos_label не является последним классом в
classes_ атрибут вашего оценщика.
The Display объект хранит вычисленные значения (например, значения метрик или важность признаков), необходимые для построения графиков с помощью Matplotlib. Эти значения являются результатами, полученными из исходных предсказаний, переданных в from_predictions, или
оценщик и X передано в from_estimator.
Объекты отображения имеют метод plot, который создает график matplotlib после инициализации
объекта отображения (обратите внимание, что мы рекомендуем создавать объекты отображения
через from_estimator или from_predictions вместо прямой инициализации).
Метод plot позволяет добавлять к существующему графику, передавая существующие графики
matplotlib.axes.Axes в ax параметр.
В следующем примере мы строим ROC-кривую для обученной модели логистической регрессии from_estimator:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
y = y == 2 # make binary
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=.8, random_state=42
)
clf = LogisticRegression(random_state=42, C=.01)
clf.fit(X_train, y_train)
clf_disp = RocCurveDisplay.from_estimator(clf, X_test, y_test)
Если у вас уже есть значения предсказаний, вы можете вместо этого использовать
from_predictions чтобы сделать то же самое (и сэкономить на вычислениях):
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
y = y == 2 # make binary
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=.8, random_state=42
)
clf = LogisticRegression(random_state=42, C=.01)
clf.fit(X_train, y_train)
# select the probability of the class that we considered to be the positive label
y_pred = clf.predict_proba(X_test)[:, 1]
clf_disp = RocCurveDisplay.from_predictions(y_test, y_pred)
Возвращаемый clf_disp объект позволяет добавить еще одну кривую к уже вычисленной ROC-кривой. В этом случае clf_disp является RocCurveDisplay
которая хранит вычисленные значения как атрибуты с названиями roc_auc, fpr, и tpr.
Далее мы обучаем классификатор случайного леса и снова строим ранее вычисленную ROC-кривую, используя plot метод Display объект.
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)
ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(
rfc, X_test, y_test, ax=ax, curve_kwargs={"alpha": 0.8}
)
clf_disp.plot(ax=ax, curve_kwargs={"alpha": 0.8})
Обратите внимание, что мы передаем alpha=0.8 в функции построения графиков для настройки значений alpha кривых.
Примеры
6.1. Доступные утилиты построения графиков#
6.1.1. Объекты отображения#
|
Визуализация калибровочной кривой (также известной как диаграмма надежности). |
|
График частичной зависимости (PDP) и индивидуальное условное ожидание (ICE). |
|
Визуализация границ решений. |
|
Визуализация матрицы ошибок. |
|
Визуализация кривой компромисса ошибок обнаружения (DET). |
|
Визуализация Precision Recall. |
|
Визуализация ошибки предсказания регрессионной модели. |
|
Визуализация ROC-кривой. |
Визуализация кривой обучения. |
|
Визуализация кривой валидации. |