调整窗口大小
您想亲自验证心律失常数据集的最优窗口大小为 50。您已获得名为 arrh 的 pandas 数据框,并希望使用截至时间 t_now 的数据子集。您的测试数据为 X_test、y_test。您将尝试多个窗口大小,范围从 10 到 100,对每个窗口拟合一个朴素贝叶斯分类器,在测试数据上评估其 F1 分数,然后选择表现最佳的窗口大小。您也可以使用 numpy(已作为 np 导入),并且函数 f1_score() 已经导入。最后,已为您初始化一个名为 accuracies 的空列表,用于存储各窗口的准确度。
本练习是课程的一部分
用 Python 设计机器学习工作流
练习说明
- 使用
.loc()方法,定义一个在t_now处停止、大小为w_size的滑动窗口的索引。 - 从该滑动窗口构造
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)]