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

Подбор размера окна

Вы хотите самостоятельно убедиться, что оптимальный размер окна для набора данных об аритмии равен 50. Набор данных доступен в виде датафрейма pandas под названием arrh; вы будете работать с подмножеством данных вплоть до момента времени t_now. Тестовые данные доступны как X_test и y_test. Вы опробуете несколько размеров окна — от 10 до 100, обучите наивный байесовский классификатор для каждого окна, оцените его F1-меру на тестовых данных и выберете наилучший размер окна. Также доступна библиотека numpy под псевдонимом np, а функция f1_score() уже импортирована. Наконец, для хранения значений качества инициализирован пустой список accuracies.

Это упражнение является частью курса

Проектирование рабочих процессов машинного обучения на Python

Посмотреть курс

Инструкции к упражнению

  • Определите индекс скользящего окна размером w_size, заканчивающегося в момент t_now, с помощью метода .loc().
  • Сформируйте X из скользящего окна, удалив столбец class. Сохраните этот столбец как y.
  • Обучите наивный байесовский классификатор на X и y, затем используйте его для предсказания меток тестовых данных X_test.
  • Вычислите F1-меру для каждого размера окна и определите наилучший размер.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Loop over window sizes
for w_size in wrange:

    # Define sliding window
    sliding = arrh.____[____:t_now]

    # Extract X and y from the sliding window
    X, y = sliding.____('class', ____), sliding[____]
    
    # Fit the classifier and store the F1 score
    preds = GaussianNB().fit(____, ____).____(X_test)
    accuracies.append(____(____, ____))

# Estimate the best performing window size
optimal_window = ____[np.____(accuracies)]
Редактировать и запускать код