Ajustando o tamanho da janela
Você quer verificar por conta própria que o tamanho de janela ideal para o conjunto de dados de arritmia é 50. Você recebeu o conjunto como um data frame do pandas chamado arrh e quer usar um subconjunto dos dados até o tempo t_now. Seus dados de teste estão disponíveis como X_test, y_test. Você vai testar vários tamanhos de janela, de 10 a 100, ajustar um classificador Naive Bayes a cada janela, avaliar seu F1 score nos dados de teste e, em seguida, escolher o tamanho de janela com melhor desempenho. Você também tem numpy disponível como np, e a função f1_score() já foi importada. Por fim, uma lista vazia chamada accuracies foi inicializada para você armazenar as acurácias das janelas.
Este exercício faz parte do curso
Projetando Workflows de Machine Learning em Python
Instruções do exercício
- Defina o índice de uma janela deslizante de tamanho
w_sizeterminando emt_nowusando o método.loc(). - Construa
Xa partir da janela deslizante removendo a colunaclass. Armazene essa última coluna comoy. - Ajuste um classificador Naive Bayes a
Xey, e use-o para prever os rótulos dos dados de testeX_test. - Calcule o F1 score dessas previsões para cada tamanho de janela e encontre o tamanho de janela com melhor desempenho.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)]