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