ПочатиПочніть безкоштовно

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

Як ви пам'ятаєте, крос-валідація — це процес багаторазового поділу даних на тренувальну та тестову вибірки. Кожного разу ви обираєте інші тренувальну та тестову вибірки. У цій вправі ви виконаєте традиційну крос-валідацію ShuffleSplit для даних про вартість компаній з попередніх завдань. Пізніше ми розглянемо, які зміни потрібні для часових рядів. Дані — це ті самі історичні ціни кількох великих компаній.

Екземпляр об'єкта лінійної регресії (model) доступний у вашому робочому середовищі, так само як і функція r2_score() для оцінювання. Також дані збережено в масивах X і y. Ми також надали допоміжну функцію (visualize_predictions()), щоб допомогти візуалізувати результати.

Ця вправа є частиною курсу

Machine Learning для часових рядів у 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)
Редагувати та запускати код