Крос-валідація з перемішуванням
Як ви пам'ятаєте, крос-валідація — це процес багаторазового поділу даних на тренувальну та тестову вибірки. Кожного разу ви обираєте інші тренувальну та тестову вибірки. У цій вправі ви виконаєте традиційну крос-валідацію 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)