Ajustar el tamaño de la ventana
Quieres comprobar por ti mismo que el tamaño de ventana óptimo para el conjunto de datos de arritmia es 50. Se te ha proporcionado el conjunto como un data frame de pandas llamado arrh, y quieres usar un subconjunto de los datos hasta el tiempo t_now. Tus datos de prueba están disponibles como X_test, y_test. Probarás varios tamaños de ventana, del 10 al 100, ajustarás un clasificador de naive Bayes a cada ventana, evaluarás su F1 score en los datos de prueba y, después, elegirás el tamaño de ventana con mejor rendimiento. También tienes numpy disponible como np, y la función f1_score() ya se ha importado. Por último, se ha inicializado para ti una lista vacía llamada accuracies para que almacenes las accuracies de las ventanas.
Este ejercicio forma parte del curso
Diseño de flujos de trabajo de Machine Learning en Python
Instrucciones del ejercicio
- Define el índice de una ventana deslizante de tamaño
w_sizeque termine ent_nowusando el método.loc(). - Construye
Xa partir de la ventana deslizante eliminando la columnaclass. Guarda esa última columna comoy. - Ajusta un clasificador de naive Bayes con
Xyy, y úsalo para predecir las etiquetas de los datos de pruebaX_test. - Calcula el F1 score de estas predicciones para cada tamaño de ventana y encuentra el tamaño de ventana con mejor rendimiento.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)]