Evaluar el árbol de decisión
Puedes valorar la calidad de tu modelo evaluando su rendimiento con los datos de prueba. Como el modelo no se entrenó con estos datos, esto representa una evaluación objetiva del modelo.
Una matriz de confusión ofrece un desglose útil de las predicciones frente a los valores conocidos. Tiene cuatro celdas que representan los recuentos de:
- Verdaderos Negativos (VN) - el modelo predice un resultado negativo y el resultado conocido es negativo
- Verdaderos Positivos (TP) - el modelo predice un resultado positivo y el resultado conocido es positivo
- Falsos Negativos (FN) - el modelo predice un resultado negativo, pero el resultado conocido es positivo
- Falsos positivos (FP): el modelo predice un resultado positivo, pero el resultado conocido es negativo.
Estos recuentos (TN
, TP
, FN
y FP
) deben sumar el número de registros de los datos de prueba, que son sólo un subconjunto de los datos de los vuelos. Puedes compararlo con el número de registros de los datos de las pruebas, que es flights_test.count()
.
Nota: Estas predicciones se realizan sobre los datos de prueba, por lo que los recuentos son menores de lo que habrían sido para las predicciones sobre los datos de entrenamiento.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones de ejercicio
- Crea una matriz de confusión contando las combinaciones de
label
yprediction
. Muestra el resultado. - Cuenta el número de Verdaderos Negativos, Verdaderos Positivos, Falsos Negativos y Falsos Positivos.
- Calcula la precisión.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Create a confusion matrix
prediction.groupBy(____, 'prediction').____().____()
# Calculate the elements of the confusion matrix
TN = prediction.filter('prediction = 0 AND label = prediction').count()
TP = prediction.____('____ AND ____').____()
FN = prediction.____('____ AND ____').____()
FP = prediction.____('____ AND ____').____()
# Accuracy measures the proportion of correct predictions
accuracy = ____
print(accuracy)