[AUDIO_EN_BLANCO] [MÚSICA] Hola. Vamos a proseguir con la sesión dedicada a la validación de modelos de regresión logística. Recordad que estamos en el concepto de regresión, pero de regresión logística. La técnica aplicada cuando la variable a explicar es binaria, requiere herramientas de validación un poco especiales. Estas mismas herramientas serán aplicables al resto de técnicas para el mismo tipo de problema. Para proseguir, vamos a retomar la sesión o vamos a reiniciar la sesión capturando los datos, llevando a cabo las transformaciones necesarias, creamos esta variable, Horario1, Horario2, Horario3, DepDelay al cuadrado. El producto entre DepDelay y Distance. Configuramos la base de datos generando la columna de variables predictoras y identificando la variable objetivo, con este nombre. Por lo tanto, dejamos lista la base de datos para ser analizada, y proseguimos ejecutando el modelo. Este modelo nos da lugar a una serie de coeficientes que permiten llevar a cabo, pues las predicciones de éxito o fracaso, o en relación al retraso o no retraso a partir de las observaciones de la base de datos de trabajo. Aquí vemos las variables que se generan, vemos la predicción bruta, en términos internos. Estas predicciones brutas se transforman a probabilidades. De hecho las probabilidades en realidad son un vector. Este vector contiene dos componentes, la probabilidad de ser cero, la probabilidad de ser uno a continuación, que pasa que ahora mismo aquí no se ve y la predicción cero o uno, éxito o fracaso, lo que sea, en base a un punto de corte que por defecto es 0,5, pero se puede especificar en la misma ejecución del modelo a partir de esta instrucción, de esta opción. Las predicciones siendo binarias, cero, uno, se pueden comparar con los valores originales, también cero y uno, a través de lo que se llama la matriz de confusión. Esta matriz se genera aquí en esta instrucción contando cuántos casos hay en cada una de las combinaciones de valor variable, respuesta, valor predicho. Aquí vemos los distintos recuentos. Cada una de estas casillas de hecho tiene un nombre propio, esos son los verdaderos negativos, los falsos positivos, los falsos negativos y los verdaderos positivos. A partir de estos elementos se generan una serie de índices que permiten interpretar la capacidad predictiva de este modelo aplicando este punto de corte. En particular, empezamos definiendo la prevalencia, es decir, el número de positivo respecto al total, simplemente a modo descriptivo, definimos también la sensibilidad, la especificidad, el término precision, y accuracy. De hecho, los más interesantes serían sensibilidad representando la tasa de acierto cuando la variable respuesta es uno, la especificidad, representando la tasa de acierto cuando la variable respuesta es cero, y este concepto precision que representa la tasa de acierto cuando la predicción es uno. De hecho es un concepto inverso, pero también nos permite interpretar la capacidad predictiva de nuestra herramienta. A modo genérico, definimos también el concepto de accuracy a partir del total de aciertos. Aquí vemos cómo proseguir, cómo ver los resultados en pantalla. Accuracy, por otro lado también se puede obtener de una forma más directa a partir de las herramientas de evaluación que nos propone, MulticlassClassificationEvaluator. Aquí veríamos que la accuracy para este modelo es del 83 %. Por lo tanto, ha acertado un 83 % de las predicciones. Modificando el punto de corte obviamente generaremos tablas de clasificación, matrices de confusión distintas y valores distintos para sensibilidad, especificidad, de hecho, el punto de corte tiene un papel muy importante para llevar a cabo las predicciones del modelo. En este caso tan solo forzando que el punto de corte esté más próximo a la prevalencia de positivos en la base de datos, lo que generamos es como se ha dicho anteriormente una tabla, una matriz de confusión diferente pero ahora generando un accuracy considerablemente mayor. Si bien es verdad que en base a distintos puntos de corte conseguiríamos distintos niveles de accuracy, necesitamos un índice resumen que vaya un poco más allá de los puntos de corte, una especie de índice resumen global. Esto se conseguirá a partir de la curva ROC. La curva ROC permitirá representar para cualquier punto de corte simultáneamente las sensibilidad y la especificidad conseguida. Para conseguir este tipo de representación necesitamos capturar las probabilidades de ser positivo en una única columna. Aquí vemos cómo llevarlo a cabo. Esta es una operación un tanto distinta you que no se basa directamente en la manipulación de bases de datos de DataFrames como habíamos visto anteriormente y requiere instrucciones de naturaleza diferente. No obstante aquí el resultado vendría a representar justamente las probabilidades de que cada caso sea un retraso. Aquí veríamos las probabilidades de que cada caso fuera un no retraso. Vemos que en realidad son elementos complementarios. Prosiguiendo mediante herramientas propias de Python, en particular de la librería seaborn, que es importada aquí en esta instrucción, esto para el gráfico y mediante esta otra función de la librería sklearn, también propia de Python, podemos representar la curva ROC. La curva ROC tiene este aspecto. Aquí vemos los valores de las parejas sensibilidad y de hecho, uno menos especificidad para cada posible punto de corte. Vemos que hay puntos de corte aquí, puntos de corte que generarían una sensibilidad aproximadamente del 80 % y una tasa de falsas alarmas aproximadamente del 20 %. Por lo tanto, quizá por aquí deberíamos buscar los puntos de corte para llevar a cabo las predicciones. Un índice resumen muy interesante de esta representación es justamente el área bajo la curva. Del área bajo la curva añado un par de comentarios. Un modelo perfecto tendría una sensibilidad del 100 % y una tasa de falsas alarmas también del 100 %, perdón, del 0 %. Por lo tanto, aquí veríamos la curva pasar por esta esquina. El área bajo la curva sería el resumen a emplear y tendríamos un área bajo la curva de uno. Un modelo que fuera más bien un desastre no estaría distinguiendo entre positivos y negativos y se reflejaría en esta diagonal. Por lo tanto, dando lugar a un área bajo la curva de 0,5, es decir, el área bajo la curva máximo del modelo perfecto que discrimina a la perfección es de uno, mientras que el área bajo la curva del modelo que simplemente decide al azar es de 0,5. Para calcular el área bajo la curva podemos emplear la herramienta de evaluación del BinaryClassification. Aquí indicamos que queremos el área bajo la curva y a partir de los valores predichos por el modelo generamos y calculamos el resultado. Para la representación anterior, el área bajo al curva es de 0,9. Este índice es un índice global que no va a depender del punto de corte que se haya especificado en la construcción del modelo. Finalmente aquí vemos una recopilación de las posibles instrucciones que también se pueden añadir al modelo de regresión logística. Y hasta aquí los videos asociados a los modelos de regresión donde hemos visto regresión lineal y regresión logística. [MÚSICA]