Điều chỉnh kích thước cửa sổ
Bạn muốn tự kiểm chứng rằng kích thước cửa sổ tối ưu cho bộ dữ liệu arrhythmia là 50. Bạn đã được cung cấp bộ dữ liệu dưới dạng data frame của pandas tên là arrh, và muốn dùng một tập con dữ liệu đến thời điểm t_now. Dữ liệu kiểm tra có trong X_test, y_test. Bạn sẽ thử nhiều kích thước cửa sổ, từ 10 đến 100, fit một bộ phân loại naive Bayes cho mỗi cửa sổ, đánh giá F1 score của nó trên dữ liệu kiểm tra, rồi chọn kích thước cửa sổ hoạt động tốt nhất. Bạn cũng có numpy với tên np, và hàm f1_score() đã được import sẵn. Cuối cùng, một danh sách rỗng tên accuracies đã được khởi tạo để bạn lưu độ chính xác của các cửa sổ.
Bài tập này là một phần của khóa học
Thiết kế quy trình Machine Learning bằng Python
Hướng dẫn bài tập
- Xác định index của một cửa sổ trượt kích thước
w_sizekết thúc tạit_nowbằng phương thức.loc(). - Tạo
Xtừ cửa sổ trượt bằng cách loại bỏ cộtclass. Lưu cột đó thànhy. - Fit một bộ phân loại naive Bayes cho
Xvày, và dùng nó để dự đoán nhãn của dữ liệu kiểm traX_test. - Tính F1 score của các dự đoán này cho mỗi kích thước cửa sổ, và tìm kích thước cửa sổ có hiệu năng tốt nhất.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)]