Spec-Zone.ru › scikit-learn

Примечание

Перейти в конец, чтобы скачать полный код примера или запустить этот пример в браузере через JupyterLite или Binder.

Построение графиков предсказаний при перекрестной проверке

В этом примере показано, как использовать cross_val_predict вместе с PredictionErrorDisplay для визуализации ошибок предсказания.

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

Мы загрузим набор данных о диабете и создадим экземпляр модели линейной регрессии.

from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression

X, y = load_diabetes(return_X_y=True)
lr = LinearRegression()

cross_val_predict возвращает массив того же размера, что и y, где каждый элемент — предсказание, полученное с помощью перекрестной проверки.

from sklearn.model_selection import cross_val_predict

y_pred = cross_val_predict(lr, X, y, cv=10)

Поскольку cv=10, это означает, что мы обучили 10 моделей, и каждая модель использовалась для предсказаний на одной из 10 частей. Теперь мы можем использовать PredictionErrorDisplay для визуализации ошибок предсказания.

На левой оси мы строим график наблюдаемых значений \(y\) в сравнении с предсказанными значениями \(\hat{y}\), полученными от моделей. На правой оси мы строим график остатков (то есть разности между наблюдаемыми и предсказанными значениями) в сравнении с предсказанными значениями.

import matplotlib.pyplot as plt

from sklearn.metrics import PredictionErrorDisplay

fig, axs = plt.subplots(ncols=2, figsize=(8, 4))
PredictionErrorDisplay.from_predictions(
    y,
    y_pred=y_pred,
    kind="actual_vs_predicted",
    subsample=100,
    ax=axs[0],
    random_state=0,
)
axs[0].set_title("Actual vs. Predicted values")
PredictionErrorDisplay.from_predictions(
    y,
    y_pred=y_pred,
    kind="residual_vs_predicted",
    subsample=100,
    ax=axs[1],
    random_state=0,
)
axs[1].set_title("Residuals vs. Predicted Values")
fig.suptitle("Plotting cross-validated predictions")
plt.tight_layout()
plt.show()
Plotting cross-validated predictions, Actual vs. Predicted values, Residuals vs. Predicted Values

Важно отметить, что в этом примере мы использовали cross_val_predict только для визуализации.

Количественная оценка производительности модели с помощью одной метрики, вычисленной по объединенным предсказаниям, возвращаемым cross_val_predict, может привести к проблемам, если разные части перекрестной проверки различаются по размеру и распределениям.

Вместо этого рекомендуется вычислять метрики производительности для каждой части с помощью cross_val_score или cross_validate.

Общее время выполнения скрипта: (0 минут 0.201 секунды)

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_cv_predict.ipynb

Download Python source code: plot_cv_predict.py

Download zipped: plot_cv_predict.zip

Связанные примеры

Демонстрация предположений алгоритма k-means

Влияние преобразования целевых значений в модели регрессии

Сравнение производительности алгоритмов Bisecting K-Means и обычного K-Means

Объединение предикторов с помощью стекинга

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/model_selection/plot_cv_predict.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API