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

Создание обучающих и тестовых признаков

Перед обучением линейной модели необходимо добавить константу к признакам — это позволит модели иметь свободный член (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)
Редактировать и запускать код