Створіть тренувальні та тестові ознаки
Перш ніж навчати нашу лінійну модель, нам потрібно додати константу до ознак, щоб у моделі був вільний член (intercept).
Також потрібно створити тренувальні та тестові ознаки. Так ми зможемо навчити модель на тренувальному наборі даних і оцінити її якість на тестовому. Завжди перевіряйте якість на даних, яких модель не бачила, щоб упевнитися, що ми не переобучаємося, тобто не запам'ятовуємо шаблони з тренувальних даних занадто точно.
Для таких часових рядів зазвичай беруть найстаріші дані як тренувальну вибірку, а найновіші — як тестову. Це дозволяє оцінити роботу моделі на найсвіжіших даних і реалістичніше змоделювати прогнози на ще невідомих даних.
Ця вправа є частиною курсу
Machine Learning для фінансів у Python
Інструкції до вправи
- Імпортуйте бібліотеку
statsmodels.apiз псевдонімомsm. - Додайте константу до змінної
features, використавши функцію.add_constant()з пакета statsmodels. - Встановіть
train_sizeяк 85% від загальної кількості точок даних (кількість рядків), використовуючи властивість.shape[0]об'єктаfeaturesабоtargets. - Розбийте
linear_featuresіtargetsна тренувальну та тестову вибірки за допомогоюtrain_sizeі індексації в Python (наприклад,[start:stop]).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)