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,202 секунды)

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-средних

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

Сравнение производительности бисекционного k-средних и обычного k-средних

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

Spec-Zone.ru

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