НачатьНачать бесплатно

Кросс-валидация с перемешиванием

Как вы помните, кросс-валидация — это процесс многократного разбиения данных на обучающую и тестовую выборки. При каждом разбиении выбираются разные обучающая и тестовая выборки. В этом упражнении вы выполните стандартную кросс-валидацию ShuffleSplit на данных о стоимости компаний из предыдущего раздела. Позже мы рассмотрим, какие изменения необходимо внести при работе с временными рядами. Мы будем использовать те же исторические данные о ценах нескольких крупных компаний.

В вашем рабочем пространстве доступен экземпляр объекта линейной регрессии (model), а также функция r2_score() для оценки модели. Данные хранятся в массивах X и y. Кроме того, мы подготовили вспомогательную функцию (visualize_predictions()), которая поможет визуализировать результаты.

Это упражнение является частью курса

Машинное обучение для данных временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Инициализируйте объект кросс-валидации ShuffleSplit с 10 разбиениями.
  • Переберите разбиения CV с помощью этого объекта. На каждой итерации:
    • Обучите модель на индексах обучающей выборки.
    • Сгенерируйте предсказания на индексах тестовой выборки, оцените модель (\(R^2\)) на основе этих предсказаний и сохраните результаты.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)

# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
    # Fit the model on training data
    ____(X[tr], y[tr])
    
    # Generate predictions on the test data, score the predictions, and collect
    prediction = ____(X[tt])
    score = r2_score(____, ____)
    results.append((prediction, score, tt))

# Custom function to quickly visualize predictions
visualize_predictions(results)
Редактировать и запускать код