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