Создание обучающих и тестовых признаков
Перед обучением линейной модели необходимо добавить константу к признакам — это позволит модели иметь свободный член (intercept).
Также нужно разделить данные на обучающую и тестовую выборки. Это позволит обучить модель на одних данных и оценить её качество на других. Всегда проверяйте качество модели на данных, которые она не видела во время обучения, — так вы убедитесь, что модель не переобучилась, то есть не запомнила паттерны из обучающих данных слишком буквально.
При работе с временными рядами принято использовать более старые данные как обучающую выборку, а более новые — как тестовую. Это позволяет оценить качество модели на самых последних данных, что наиболее реалистично имитирует предсказания на ещё не виденных данных.
Это упражнение является частью курса
Машинное обучение для финансов на 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)