Redes Neurais em IA e Deep Learning - página 72

 

10.3 CV de pliegues en K para la evaluación del modelo (L10: evaluación del modelo 3)



10.3 CV de pliegues en K para la evaluación del modelo (L10: evaluación del modelo 3)

En este video profundizaremos en el tema de la validación cruzada para la evaluación de modelos. La validación cruzada se usa comúnmente junto con el ajuste de hiperparámetros y la selección de modelos. Sin embargo, para facilitar una mejor comprensión, primero exploremos cómo funciona la validación cruzada k-fold solo en el contexto de la evaluación del modelo, antes de analizar su aplicación en la selección del modelo.

Para comenzar, la validación cruzada de k-fold para la evaluación del modelo implica dividir un conjunto de datos en un pliegue de validación y los segmentos de datos restantes para el entrenamiento. En un ejemplo típico, consideremos una validación cruzada quíntuple. El conjunto de datos se divide en un pliegue de validación (que se muestra en azul) y cuatro pliegues de entrenamiento (que se muestran en diferentes colores). El modelo se entrena en los pliegues de entrenamiento y se evalúa en el pliegue de validación, lo que da como resultado una métrica de rendimiento. A diferencia del método de exclusión en el que solo se usa un conjunto de validación, en la validación cruzada de k-fold, el pliegue de validación se rota a través de diferentes segmentos de los datos. Esto asegura que todos los puntos de datos se utilicen para la evaluación. En el caso de la validación cruzada quíntuple, hay cinco pliegues de validación distintos y se realizan cinco iteraciones. Cada iteración produce una medida de rendimiento. Al informar el rendimiento general, el enfoque típico es promediar los valores de rendimiento en todas las iteraciones.

Es importante tener en cuenta que en esta discusión, nos estamos enfocando en la validación cruzada de k-fold para la evaluación del modelo, sin considerar el ajuste de hiperparámetros. En este escenario, la estimación de rendimiento obtenida a través de la validación cruzada puede considerarse una estimación del rendimiento de generalización del modelo. Al entrenar un nuevo modelo en todo el conjunto de datos usando hiperparámetros fijos, podemos obtener un modelo final para uso práctico. Si bien se puede utilizar un conjunto de pruebas independiente para evaluar más a fondo el rendimiento del modelo, a menudo no es necesario cuando no se trata de un ajuste de hiperparámetros, ya que el rendimiento de la validación cruzada ya proporciona una estimación fiable del rendimiento de la generalización.

Ahora, exploremos algunas propiedades clave de la validación cruzada k-fold. Los pliegues de validación no se superponen, lo que significa que no hay superposición entre los puntos de datos en el pliegue de validación en diferentes iteraciones. Todos los puntos de datos se utilizan para las pruebas, lo que garantiza una evaluación integral. Algunos investigadores pueden referirse a los pliegues de validación como pliegues de prueba, ya que los términos se pueden usar indistintamente.

Por otro lado, los pliegues de formación se superponen, lo que significa que no son independientes entre sí. En una iteración dada, los datos de entrenamiento pueden tener muestras superpuestas con los datos de entrenamiento de otras iteraciones. Esta característica dificulta la estimación de la varianza en función de diferentes conjuntos de entrenamiento, lo cual es importante para comprender la variabilidad del rendimiento del modelo.

Otro aspecto a destacar es que reducir el valor de k (el número de pliegues) hace que la estimación del rendimiento sea más pesimista. Esto se debe a que, con menos puntos de datos disponibles para entrenar en cada pliegue, las capacidades de ajuste del modelo están restringidas. La estimación de rendimiento se vuelve más pesimista debido a los datos retenidos, como se discutió en nuestra explicación anterior sobre el pesimismo de rendimiento.

Exploremos dos casos especiales de validación cruzada k-fold. Cuando k es igual a 2, tenemos una doble validación cruzada, que es distinta del método de retención. En la validación cruzada doble, el conjunto de datos se divide exactamente por la mitad y cada mitad se usa para entrenar en diferentes iteraciones. Por el contrario, el método de retención permite proporciones de división arbitrarias y no implica la rotación entre iteraciones. Sin embargo, cada ronda de validación cruzada k-fold puede considerarse un caso especial del método de exclusión, donde el conjunto de datos se divide exactamente en dos mitades.

Otro caso especial es cuando k es igual a n, lo que resulta en una validación cruzada dejando uno fuera (LOOCV). En LOOCV, cada iteración implica omitir un punto de datos como conjunto de validación, mientras que los n-1 puntos de datos restantes se utilizan para el entrenamiento. Este enfoque también se conoce como LOOCV, donde el conjunto de validación consta de un solo punto de datos.

Un estudio realizado por Hawkins et al. (2003) examinaron el rendimiento de diferentes métodos de evaluación de modelos, incluida la validación cruzada de dejar uno fuera (LOOCV), y encontraron que LOOCV tiende a tener una variación alta en comparación con otros métodos de validación cruzada. Esta alta varianza se puede atribuir al hecho de que cada pliegue de validación en LOOCV consta de un solo punto de datos, lo que da como resultado un tamaño de muestra limitado para la evaluación. En consecuencia, las estimaciones de rendimiento obtenidas de LOOCV pueden ser muy sensibles a los puntos de datos específicos elegidos para la validación en cada iteración.

A pesar de su alta varianza, LOOCV tiene algunas ventajas. Dado que cada iteración implica el entrenamiento en n-1 puntos de datos, donde n es el número total de puntos de datos, LOOCV tiende a proporcionar una estimación imparcial del rendimiento del modelo. Además, LOOCV utiliza todos los datos disponibles para el entrenamiento, lo que puede ser beneficioso cuando el conjunto de datos es pequeño o cuando se desea una estimación de rendimiento más precisa.

Sin embargo, debido a su complejidad computacional, LOOCV puede no ser factible para grandes conjuntos de datos. El proceso de entrenamiento debe repetirse n veces, lo que genera una carga computacional significativa. En tales casos, a menudo se prefiere la validación cruzada k-fold con un valor moderado de k.

Ahora que hemos explorado la validación cruzada k-fold para la evaluación de modelos, analicemos brevemente su aplicación en la selección de modelos. En el contexto de la selección de modelos, el objetivo es identificar el mejor modelo de un conjunto de modelos candidatos, normalmente con diferentes configuraciones de hiperparámetros. La validación cruzada se puede utilizar para estimar el rendimiento de cada modelo y facilitar el proceso de selección.

El enfoque típico es realizar una validación cruzada de k veces para cada modelo, calcular el rendimiento promedio en todas las iteraciones y comparar los resultados. El modelo con el rendimiento promedio más alto se considera la mejor opción. Este enfoque ayuda a mitigar el impacto de la variabilidad de los datos y proporciona una evaluación más sólida de los modelos.

En resumen, la validación cruzada es una técnica valiosa para la evaluación y selección de modelos. Al rotar sistemáticamente el pliegue de validación a través de diferentes segmentos de los datos, permite una evaluación integral y proporciona estimaciones del rendimiento del modelo. Ya sea que se use únicamente para la evaluación de modelos o en combinación con la selección de modelos, la validación cruzada ayuda a los investigadores y profesionales a tomar decisiones informadas sobre las capacidades de generalización de sus modelos.

10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
10.3 K-fold CV for Model Evaluation (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video introduces the concept of k-fold cross-validation and explains how it can be used for evaluating models. Also, it discusses why 10-fold cross-vali...
 

10.4 CV de pliegues en K para la evaluación del modelo -- Ejemplos de código (L10: Evaluación del modelo 3)



10.4 CV de pliegues en K para la evaluación del modelo -- Ejemplos de código (L10: Evaluación del modelo 3)

En el video anterior, discutimos la validación cruzada de k-fold como un método para evaluar modelos de aprendizaje automático. En este video, exploraremos cómo implementar la validación cruzada k-fold en Python usando la biblioteca scikit-learn. He subido el cuaderno de códigos a GitHub y puedes encontrar el enlace aquí.

Comencemos cargando las bibliotecas necesarias y verificando sus versiones. Importaremos NumPy y matplotlib, que son bibliotecas de uso común. A continuación, demostraremos el uso de la validación cruzada k-fold utilizando la clase k-fold del submódulo de selección de modelo en scikit-learn.

Para garantizar la reproducibilidad, configuramos una semilla aleatoria utilizando un objeto generador de números aleatorios. Luego creamos un conjunto de datos simple con cinco etiquetas de Class Zero y cinco etiquetas de Class One. Además, generamos un conjunto de datos aleatorio con 10 entradas y cuatro características. Vale la pena señalar que este es solo un conjunto de datos aleatorio con fines ilustrativos, y puede usar cualquier conjunto de datos que prefiera, como el conjunto de datos del iris.

A continuación, inicializamos un objeto k-fold, al que llamamos cv (abreviatura de validación cruzada). Establecemos el número de divisiones, n_splits, en cinco, lo que indica que realizaremos una validación cruzada de cinco veces. Examinemos el comportamiento de este objeto k-fold usando el método de división. Cuando ejecutamos este método, obtenemos cinco resultados, cada uno de los cuales consiste en una tupla que contiene dos matrices. La primera matriz representa el pliegue de entrenamiento y la segunda matriz representa el pliegue de validación.

Los números dentro de estas matrices corresponden a los índices de las muestras en el conjunto de datos. Por ejemplo, si queremos obtener las etiquetas reales correspondientes al conjunto de entrenamiento del primer pliegue, podemos usar estos índices como una matriz de índices para seleccionar las etiquetas. Del mismo modo, podemos seleccionar las características correspondientes. Es importante tener en cuenta que las etiquetas en los pliegues de entrenamiento y validación pueden estar desequilibradas, como observamos en este caso.

Para solucionar este problema, se recomienda mezclar el conjunto de datos antes de realizar una validación cruzada de k-fold. Podemos lograr esto mezclando el conjunto de datos directamente dentro del objeto k-fold durante la inicialización. Al establecer un estado aleatorio y barajar, obtenemos una mejor combinación de etiquetas en los pliegues de entrenamiento y validación.

Además, generalmente se recomienda estratificar las divisiones, asegurándose de que la proporción de etiquetas de clase permanezca constante en cada pliegue. Podemos lograr esto usando la clase de pliegue k estratificada en lugar de la clase de pliegue k regular. Cuando usamos k-fold estratificado, la proporción de etiquetas en cada pliegue coincide con la del conjunto de datos original.

Habiendo discutido el comportamiento general de los objetos k-fold y k-fold estratificados, veamos cómo aplicarlos en la práctica. Usaremos un clasificador de árboles de decisión y el conjunto de datos del iris como ejemplo. Primero, dividimos el conjunto de datos del iris en un 85 % de datos de entrenamiento y un 15 % de datos de prueba mediante el método train_test_split, que garantiza una división estratificada.

A continuación, inicializamos un objeto plegado en k estratificado con k=10, como recomienda el artículo de Ron Kohavi sobre la guía práctica para la validación cruzada. Luego empleamos un enfoque manual para realizar una validación cruzada de k-fold al iterar sobre los índices de entrenamiento y validación usando el método dividido. Dentro de cada iteración, ajustamos un nuevo clasificador de árbol de decisión usando el pliegue de entrenamiento y predecimos las etiquetas del pliegue de validación. Calculamos la precisión de cada iteración y almacenamos los resultados en una variable de marcador de posición.

Después de iterar a través de todos los pliegues, calculamos la precisión de validación cruzada promedio de k-pliegues dividiendo la suma de las precisiones por el número de iteraciones. Finalmente, para evaluar el modelo en datos no vistos, ajustamos un nuevo clasificador de árbol de decisión utilizando todos los datos de entrenamiento y calculamos la precisión en el conjunto de prueba.

En este caso, obtuvimos una precisión de validación cruzada de k veces del 95,3 % y una precisión del conjunto de pruebas del 95 %. Estos resultados sugieren que nuestro modelo funciona bien tanto en los pliegues de validación cruzada como en los datos de prueba invisibles.

Sin embargo, iterar manualmente sobre los pliegues y ajustar modelos puede ser un poco engorroso. Afortunadamente, scikit-learn proporciona una forma más conveniente de realizar una validación cruzada de k-fold utilizando la función cross_val_score. Esta función toma el modelo, el conjunto de datos y el número de pliegues como entradas y realiza automáticamente una validación cruzada de k-pliegues, devolviendo las puntuaciones para cada pliegue.

Veamos cómo se hace esto en la práctica. Comenzamos importando las bibliotecas necesarias y cargando el conjunto de datos del iris. A continuación, creamos una instancia del clasificador del árbol de decisiones e inicializamos un objeto estratificado de k-pliegues con k=10.

Luego usamos la función cross_val_score, pasando el clasificador, el conjunto de datos y el objeto k-fold. Esta función realiza automáticamente la validación cruzada de k-pliegue, ajusta el modelo y calcula las puntuaciones para cada pliegue. De manera predeterminada, la función cross_val_score usa la métrica de precisión, pero puede especificar otras métricas si lo desea.

Finalmente, imprimimos los puntajes de validación cruzada para cada pliegue y calculamos el puntaje promedio. En este caso, obtuvimos una precisión media de validación cruzada del 95,3 %, que coincide con la precisión que obtuvimos manualmente.

El uso de cross_val_score es una forma más concisa y eficiente de realizar una validación cruzada de k-fold, ya que maneja todo el proceso automáticamente. También nos permite cambiar fácilmente el número de pliegues o cambiar a un modelo diferente sin modificar el código de forma significativa.

10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.4 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.19
  • www.youtube.com
This video explains how we can evaluate models via k-fold cross-validation in Python using scikit-learn. A later video will show how we can use k-fold cross-...
 

10.5 CV de K-fold para selección de modelo (L10: Evaluación de modelo 3)


10.5 CV de K-fold para selección de modelo (L10: Evaluación de modelo 3)

En los dos videos anteriores, discutimos la validación cruzada de k-fold para la evaluación del modelo y examinamos algunos ejemplos de código. Ahora, nos centraremos en la validación cruzada de k-fold para la selección del modelo. La selección del modelo es a menudo el caso de uso común para la validación cruzada de k-fold, ya que nos permite ajustar los hiperparámetros y seleccionar la configuración de hiperparámetro de mejor rendimiento.

El proceso general se puede resumir en cinco pasos. Sin embargo, debido al espacio limitado en la diapositiva, ampliaré cada paso en las siguientes diapositivas para brindar más detalles. Los cinco pasos son similares al método de retención triple para la selección de modelos que discutimos anteriormente.

Paso 1: dividir los datos en conjuntos de entrenamiento y prueba. Este paso es el mismo que antes, donde dividimos el conjunto de datos en dos partes, una para entrenamiento y otra para prueba. Nos centraremos en el conjunto de entrenamiento por ahora.

Paso 2: aplique el algoritmo de aprendizaje con diferentes configuraciones de hiperparámetros mediante la validación cruzada de k-fold. Cada configuración de hiperparámetro, como la profundidad máxima de un algoritmo de árbol de decisión, se evalúa mediante la validación cruzada de k-fold. Por ejemplo, podemos usar la validación cruzada k-fold con k=10, como recomienda Ron Kohavi. Este paso nos proporciona diferentes estimaciones de rendimiento para cada configuración de hiperparámetro.

Paso 3: seleccione el modelo con mejor rendimiento. En función de las estimaciones de rendimiento obtenidas de la validación cruzada de k-fold, podemos identificar la configuración de hiperparámetro que funciona mejor. Por ejemplo, podemos encontrar que una profundidad máxima de cinco funciona mejor entre los valores probados. Seleccionamos esta configuración de hiperparámetro como la mejor.

Paso 4: ajuste el modelo con los mejores valores de hiperparámetro a los datos de entrenamiento. Después de identificar la mejor configuración de hiperparámetros, volvemos a entrenar el modelo utilizando todo el conjunto de datos de entrenamiento y los hiperparámetros seleccionados. Esto asegura que tenemos un único modelo con los mejores valores de hiperparámetros.

Paso 5: evaluar el modelo en un conjunto de prueba independiente. Para estimar el rendimiento de generalización del modelo, lo evaluamos en un conjunto de pruebas separado que no se usó durante el proceso de entrenamiento o selección de hiperparámetros. Esto proporciona una evaluación imparcial del rendimiento del modelo.

Opcionalmente, podemos realizar un paso adicional en el que ajustamos el modelo con los mejores valores de hiperparámetros en todo el conjunto de datos. Este paso se basa en la suposición de que el modelo podría funcionar incluso mejor cuando se entrena con más datos.

Tener un conjunto de prueba independiente es importante para evitar el sesgo de selección. A veces, una configuración de hiperparámetro puede funcionar bien en la validación cruzada de k veces por casualidad, lo que lleva a una estimación demasiado optimista. Mediante el uso de un conjunto de pruebas independiente, podemos obtener una evaluación más fiable del rendimiento del modelo.

Este procedimiento resume la validación cruzada k-fold para la selección del modelo. Ahora, exploremos algunas técnicas para seleccionar hiperparámetros durante la selección del modelo o el paso de ajuste de hiperparámetros.

Un método común es la búsqueda en cuadrícula, que sigue siendo ampliamente utilizada. La búsqueda en cuadrícula es un método de búsqueda exhaustivo en el que define una lista de valores de hiperparámetros a tener en cuenta. Por ejemplo, en el caso de k vecinos más cercanos, puede ajustar el valor de k especificando una lista de valores como 3, 5, 6, 7, 8 y 9. La búsqueda en cuadrícula evalúa el rendimiento del modelo para cada Combinación de hiperparámetros usando validación cruzada de k-fold.

La búsqueda en cuadrícula se puede realizar en paralelo, lo que permite evaluar simultáneamente varias combinaciones de hiperparámetros. Sin embargo, puede tener una cobertura deficiente si no se incluyen todos los valores de hiperparámetros relevantes en la cuadrícula predefinida. Esto es especialmente problemático para hiperparámetros continuos o cuando se omiten ciertos valores.

Para abordar el problema de la cobertura, la búsqueda aleatoria es un enfoque alternativo que muestrea los valores de los hiperparámetros de las distribuciones. En lugar de especificar una cuadrícula fija, puede definir distribuciones, como uniforme, normal, exponencial, beta o binomial, para muestrear valores de hiperparámetros. La búsqueda aleatoria brinda más flexibilidad en la exploración del espacio de hiperparámetros y puede cubrir potencialmente una gama más amplia de valores. Mediante el muestreo de distribuciones, la búsqueda aleatoria permite una exploración más eficiente del espacio de hiperparámetros.

En comparación con la búsqueda en cuadrícula, la búsqueda aleatoria suele ser más eficiente desde el punto de vista informático porque no evalúa todas las combinaciones posibles. En su lugar, toma muestras aleatoriamente de un subconjunto de valores de hiperparámetros y los evalúa mediante una validación cruzada de k veces. El número de iteraciones o muestras se puede especificar de antemano.

La ventaja de la búsqueda aleatoria es que puede buscar de manera eficiente en un gran espacio de hiperparámetros, especialmente cuando algunos hiperparámetros son menos importantes que otros. También puede manejar hiperparámetros continuos y discretos sin necesidad de definir una grilla específica.

Tanto la búsqueda en cuadrícula como la búsqueda aleatoria tienen sus pros y sus contras. La búsqueda en cuadrícula garantiza cubrir todas las combinaciones dentro de la cuadrícula definida, pero puede ser costosa desde el punto de vista computacional y puede no ser adecuada para grandes espacios de hiperparámetros. La búsqueda aleatoria, por otro lado, es más eficiente pero no garantiza una cobertura exhaustiva.

En la práctica, la elección entre la búsqueda en cuadrícula y la búsqueda aleatoria depende del tamaño del espacio de hiperparámetros, los recursos computacionales disponibles y el problema específico en cuestión.

Otra técnica para el ajuste de hiperparámetros es la optimización bayesiana. La optimización bayesiana utiliza un modelo probabilístico para modelar la relación entre los hiperparámetros y la función objetivo (p. ej., el rendimiento del modelo). Emplea un modelo sustituto, como los procesos gaussianos, para aproximar la función objetivo y utiliza una función de adquisición para determinar los siguientes valores de hiperparámetro a evaluar.

La optimización bayesiana muestra iterativamente los valores de los hiperparámetros en función del modelo sustituto y actualiza el modelo en función del rendimiento evaluado. Enfoca la búsqueda en regiones prometedoras del espacio de hiperparámetros, lo que lleva a una exploración más eficiente.

La ventaja de la optimización bayesiana es su capacidad para manejar hiperparámetros continuos y discretos, así como funciones objetivo no convexas y no lineales. Se adapta al rendimiento observado y selecciona de forma inteligente los siguientes valores de hiperparámetros para evaluar, convergiendo potencialmente a la solución óptima con menos evaluaciones en comparación con la búsqueda en cuadrícula o la búsqueda aleatoria.

Sin embargo, la optimización bayesiana puede ser más costosa desde el punto de vista computacional, especialmente para grandes conjuntos de datos o modelos complejos. Requiere evaluar la función objetivo varias veces para actualizar el modelo sustituto y determinar los siguientes valores de hiperparámetro a evaluar.

En general, la optimización bayesiana es una técnica poderosa para el ajuste de hiperparámetros, especialmente cuando el espacio de hiperparámetros es complejo y la función objetivo es costosa de evaluar.

En resumen, la validación cruzada k-fold es una herramienta valiosa tanto para la evaluación como para la selección de modelos. Nos permite estimar el rendimiento de diferentes modelos y seleccionar la mejor configuración de hiperparámetros. Se pueden utilizar técnicas como la búsqueda en cuadrícula, la búsqueda aleatoria y la optimización bayesiana para ajustar los hiperparámetros y mejorar el rendimiento del modelo. La elección del método depende de factores como el tamaño del espacio de hiperparámetros, los recursos computacionales y el problema específico en cuestión.

10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
10.5 K-fold CV for Model Selection (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
After talking about k-fold cross-validation for model *evaluation* in the last two videos, we are now going to talk about k-fold cross-validation for model *...
 

10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)



10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)

Yeah, like last time when we talked about k-fold cross-validation for model evaluation. Let's now take a closer look at some code examples for k-fold cross-validation, but this time for model selection. I'll provide you with some code examples that you can find on GitHub. I will also include the link on Piazza and Canvas so that you can download the code notebook and experiment with it later.

Alright, let's dive into the code notebook. As usual, we start with the watermark for checking the version numbers of the packages we are using. In this notebook, we will focus on grid search, which is really useful for hyperparameter tuning and model selection. For this demonstration, we will use the decision tree classifier on the iris dataset. Although the iris dataset may not be the most exciting, it allows us to keep things simple. Moreover, it will serve as a good practice before starting your class projects, where you will work with more complex datasets.

We begin by splitting our dataset into training and test sets. We use 85% of the data for training and 15% for testing, following the usual practice. Moving on to the grid search, we define two hyperparameter options: max depth and criterion. Max depth represents the maximum depth of the decision tree, and we set it to either 1, 2, 3, 4, 5, or None (no restriction on maximum depth). The criterion represents the function to measure the quality of a split, and we evaluate both "gini" and "entropy". In practice, the choice between gini and entropy makes little difference, but we include it for demonstration purposes.

Next, we create a parameter grid, specifying the hyperparameters and their respective values. Instead of using a list, we can also use dictionaries to specify different scenarios. For example, we can hardcode a specific value for one hyperparameter while exploring all values for another hyperparameter. This approach can be helpful when dealing with conflicting parameter choices. However, in this case, there is no conflict, so a list would suffice.

We set the number of cross-validation folds (CV) to 10, indicating that we want to perform 10-fold cross-validation. The stratified k-fold cross-validation is used for classifiers, ensuring that the proportions of labels are kept constant in each fold. The scoring metric used for selecting the best hyperparameter settings is accuracy for classifiers and the R-squared score for regressors. We also set the number of parallel jobs to run as -1, allowing multiple operations to be performed in parallel.

After specifying all the necessary details, we fit the grid search object to our data. It performs an exhaustive search over the parameter grid, evaluating the performance of each hyperparameter combination using cross-validation. Once the grid search is complete, we can access the best score and the corresponding parameters using the best_score_ and best_params_ attributes, respectively. In this case, the best model has a max depth of 3 and criterion "gini", achieving an accuracy of 96% on average across the validation folds.

If we are interested, we can manually inspect the results stored in a dictionary, which contains all the information. Here, we focus on the mean test score, which represents the average performance over the validation folds for each hyperparameter setting. We print the scores together with the parameter settings for better readability.

Optionally, we can summarize the results in a heatmap using a function from the ML extent library. The heatmap provides a visual representation of the performance for different hyperparameter settings. In this case, the choice between "gini" and "entropy" has almost no effect on the performance, as indicated by the similar scores. The best performance is achieved with a max depth of 3 and criterion "gini".

After obtaining the best hyperparameter settings, we can use them to train the final model on the entire training dataset. This ensures that we utilize all available data for model training. We create a new decision tree classifier object, set the hyperparameters to the best values found during grid search, and fit the model to the training data.

Once the model is trained, we can make predictions on the test dataset and evaluate its performance. In this example, we calculate the accuracy score, which measures the proportion of correctly classified instances. We print the accuracy score, and in this case, we achieve an accuracy of 93% on the test set.

Overall, grid search allows us to systematically explore different hyperparameter combinations and select the best configuration for our model. It automates the process of hyperparameter tuning and helps in finding optimal settings for improved performance.

That's the basic idea of using grid search for model selection and hyperparameter tuning. Of course, this is just one approach, and there are other techniques available, such as randomized search, Bayesian optimization, and more. The choice of method depends on the specific problem and the resources available.

10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
10.6 K-fold CV for Model Evaluation -- Code Examples (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
In this video, we look at code examples for using k-fold cross-validation for model selection. In particular, we are looking at GridSearchCV and RandomizedSe...
 

10.7 Método de error estándar de 1 CV K-fold (L10: Evaluación del modelo 3)


10.7 Método de error estándar de 1 CV K-fold (L10: Evaluación del modelo 3)

En la discusión anterior, cubrimos los conceptos de validación cruzada de k-pliegues y selección de modelos mediante la búsqueda en cuadrícula. Sin embargo, hay otro tema importante a considerar: el método de un error estándar. Este método es relevante cuando nos encontramos con situaciones en las que varias configuraciones de hiperparámetros funcionan igual de bien y necesitamos elegir la más adecuada.

Cuando tenemos varias configuraciones de hiperparámetros con un rendimiento similar o idéntico, se vuelve crucial decidir cuál seleccionar. De forma predeterminada, scikit-learn elige la primera configuración de la lista si hay un empate. Sin embargo, el método de un error estándar ofrece un enfoque alternativo basado en el principio de parsimonia o la navaja de Occam. De acuerdo con la navaja de Occam, cuando las hipótesis contrapuestas funcionan igual de bien, se debe preferir la que tiene la menor cantidad de suposiciones.

Para aplicar el método de un error estándar, consideramos la estimación numéricamente óptima y su error estándar. Después de realizar la selección del modelo a través de la validación cruzada k-fold, obtenemos estimaciones de rendimiento para diferentes configuraciones de hiperparámetros. Entre estas configuraciones, seleccionamos el modelo cuyo rendimiento está dentro de un error estándar del modelo de mejor rendimiento obtenido en el paso anterior.

Para ilustrar este método, consideremos un conjunto de datos de clasificación binaria generado con scikit-learn, que consta de cuadrados y triángulos. Nos centraremos en una máquina de vectores de soporte (SVM) del kernel RBF para simplificar. El SVM tiene un hiperparámetro llamado gamma, que controla la influencia de cada ejemplo de entrenamiento. Encontramos que varios valores gamma dan como resultado precisiones que van del 60% al 90%, con algunas configuraciones que muestran un rendimiento similar.

En el caso de SVM, la complejidad del límite de decisión depende del valor gamma. Una gamma más alta conduce a un límite de decisión más complejo, mientras que una gamma más baja da como resultado un límite de decisión más simple. Podemos observar esto trazando los límites de decisión para diferentes valores gamma. Los modelos más simples tienen límites de decisión más cercanos a los lineales, mientras que los más complejos exhiben formas más intrincadas.

Sin embargo, cuando varias configuraciones de hiperparámetros producen precisiones similares, queremos seleccionar el modelo más simple dentro de un error estándar del modelo de mejor rendimiento. Por ejemplo, si el modelo de mejor rendimiento tiene un valor gamma de 0,1, consideraríamos modelos con valores gamma dentro de un error estándar de 0,1 y elegiríamos el que tuviera la complejidad más baja.

Vale la pena señalar que es posible que el método de error estándar no siempre tenga un artículo o publicación correspondiente. Es un enfoque práctico basado en el principio de la simplicidad y ha sido ampliamente adoptado por los profesionales. Si hay estudios o documentos publicados sobre este método, serían valiosas adiciones para explorar más a fondo su eficacia e implicaciones.

En el siguiente video, profundizaremos en un ejemplo de código que demuestra cómo implementar el método de un error estándar en la práctica.

10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
10.7 K-fold CV 1-Standard Error Method (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
This video suggests the 1-standard error method as a tie breaker for selecting one model from a set of similarly well performing models.-------This video is ...
 

10.8 Método de error estándar de 1 CV K-fold -- Ejemplo de código (L10: Evaluación del modelo 3)


10.8 Método de error estándar de 1 CV K-fold -- Ejemplo de código (L10: Evaluación del modelo 3)

En este video, proporcionaré una explicación detallada de cómo implementé el método de un error estándar discutido en el video anterior. Para seguir los ejemplos de código, puede encontrarlos en este enlace, que también publicaré en Canvas para facilitar el acceso.

Repasemos juntos el cuaderno. En primer lugar, tenemos las importaciones convencionales que se utilizan habitualmente. Luego, genero mi propio conjunto de datos de juguetes usando la función make_circles de la biblioteca scikit-learn. Esta función le permite especificar el número de ejemplos y la cantidad de ruido en el conjunto de datos. El conjunto de datos generado se divide luego en conjuntos de entrenamiento y prueba. Este enfoque es excelente para realizar estudios de simulación en grandes conjuntos de datos arbitrarios para observar cómo las diferentes curvas de aprendizaje y los comportamientos del modelo varían con parámetros variables, como el ruido y la cantidad de ejemplos de entrenamiento. Sirve como un banco de pruebas útil para la experimentación.

A continuación, uso la máquina de vectores de soporte (SVM) como ejemplo. No necesita comprender completamente cómo funcionan las SVM para esta demostración; Simplemente lo elegí como un claro ejemplo. Los siguientes pasos implican un enfoque manual, en el que defino una lista de configuraciones de hiperparámetros e itero sobre estos valores. Sin embargo, si tiene configuraciones más complicadas, puede usar el ParamSampler que se discutió en el video anterior.

Para esta demostración, estoy usando un solo hiperparámetro, por lo que es suficiente un enfoque manual usando una lista y un bucle for. Inicializo una lista de parámetros y luego itero sobre cada valor. En cada iteración, inicializo el modelo SVM con la configuración de hiperparámetro elegida. Luego, realizo una validación cruzada de k veces para evaluar la precisión del modelo. Se recopilan los valores de precisión y calculo el promedio, la desviación estándar y el error estándar. Tenga en cuenta que el enfoque ingenuo que utilizo para calcular el error estándar al dividir la desviación estándar por la raíz cuadrada del tamaño de la muestra podría no ser el mejor método porque las rondas en la validación cruzada de k veces no son completamente independientes. Sin embargo, con el propósito de obtener alguna medida de similitud o barras de error para comparar diferentes métodos, este enfoque es suficiente.

Después de recopilar los valores de precisión, los represento en una escala logarítmica porque el muestreo se realiza de manera exponencial. El gráfico resultante muestra el rendimiento del modelo SVM para diferentes configuraciones de hiperparámetros. Esto es consistente con lo que hemos visto en las diapositivas de la conferencia.

Para demostrar la aplicabilidad de este método a otros clasificadores, también proporciono un código para la clasificación del árbol de decisiones en el conjunto de datos del iris. En este caso, varío el parámetro de profundidad máxima del árbol de decisión de 1 a 10. Se siguen pasos similares: inicializar el modelo con una configuración de hiperparámetro, ajustar el modelo, hacer predicciones, recolectar puntajes de validación cruzada de k veces, calcular el error estándar, etc. Al analizar los límites de decisión para diferentes profundidades máximas, podemos observar el equilibrio entre la complejidad y el rendimiento del modelo. En este ejemplo específico, se selecciona un árbol de decisión con una profundidad máxima de tres utilizando el método de un error estándar.

Finalmente, menciono brevemente los temas que cubriremos en la próxima lección, que incluyen validación cruzada para la selección de algoritmos, pruebas estadísticas y métricas de evaluación. Estos temas están estrechamente relacionados con los conceptos discutidos en las lecciones anteriores.

Espero que encuentres útil esta explicación. ¡Ten un excelente fin de semana!

10.8 K-fold CV 1-Standard Error Method -- Code Example (L10: Model Evaluation 3)
10.8 K-fold CV 1-Standard Error Method -- Code Example (L10: Model Evaluation 3)
  • 2020.11.20
  • www.youtube.com
This video goes over a code example for applying the 1-standard error method, which can be used as a tie breaker for selecting one model from a set of simila...
 

11.1 Descripción general de la clase (Evaluación del modelo L11, parte 4)


11.1 Descripción general de la clase (Evaluación del modelo L11, parte 4)

¡Hola a todos y bienvenidos! En nuestra sesión anterior, profundizamos en el tema del ajuste de hiperparámetros y la selección de modelos. Nuestro enfoque se centró en la validación cruzada de k-fold, una técnica utilizada para clasificar diferentes modelos con varias configuraciones de hiperparámetros para seleccionar el mejor. Exploramos métodos prácticos como la búsqueda en cuadrícula y la búsqueda aleatoria, que facilitan el proceso de comparación de modelos.

Hoy profundizaremos más en el aspecto de la comparación de modelos. Suponga que se encuentra con un trabajo de investigación que comparte las predicciones de un modelo en un conjunto de prueba. Es posible que desee comparar estas predicciones con las de su propio modelo y determinar si existe una diferencia estadísticamente significativa en su rendimiento. Aunque esta práctica no es muy común, puede ser útil. Una prueba estadística que se puede emplear en tales casos es la prueba de McNemar. Además, discutiremos las comparaciones de algoritmos, lo que nos permitirá comparar diferentes modelos y algoritmos de manera más equitativa.

Sin embargo, tenga en cuenta que la conferencia de hoy será más corta de lo habitual debido a la semana de Acción de Gracias. Para aquellos interesados, las notas de la conferencia brindan explicaciones más detalladas. También cubren pruebas estadísticas adicionales, como la prueba F cinco veces dos y varios procedimientos de prueba t. Si bien estos temas no son examinables, sirven para satisfacer su curiosidad intelectual.

Para optimizar nuestro tiempo, no profundizaremos en estos métodos ya que la próxima semana nos espera una conferencia sobre métricas de rendimiento. Si el tiempo lo permite, también podemos tocar la selección de funciones y la extracción de funciones. Para su comodidad, he compartido materiales complementarios sobre estos temas a través de Canvas.

Ahora, comencemos con la lección principal sobre evaluación de modelos, comenzando con pruebas estadísticas para comparaciones de modelos. Luego abordaremos los desafíos asociados con múltiples comparaciones por pares y exploraremos métodos para abordarlos. Posteriormente, profundizaremos en la selección de algoritmos y examinaremos un ejemplo de código concreto relacionado con la técnica de validación cruzada anidada. Esta descripción general de la conferencia prepara el escenario para nuestra discusión de hoy.

Antes de continuar, recapitulemos los temas que cubrimos en las lecciones anteriores sobre evaluación de modelos. Comenzamos con los fundamentos, incluida la compensación de la varianza del sesgo, el ajuste insuficiente y el ajuste excesivo, y el método de retención simple. Luego profundizamos en los intervalos de confianza e introdujimos el método de arranque para construir intervalos de confianza empíricos. Exploramos el método de retención repetida, que ofrece información sobre la estabilidad del modelo, aunque no se usa comúnmente en la práctica. Sirvió como una buena introducción a los métodos de remuestreo.

La semana pasada, nos aventuramos en el ámbito de la validación cruzada, lo que agregó más profundidad a nuestra exploración. Discutimos el ajuste de hiperparámetros mediante la búsqueda en cuadrícula y la búsqueda aleatoria y empleamos estas técnicas para la selección del modelo. Nuestro enfoque principal estaba en el método de retención de tres vías, que consiste en dividir el conjunto de datos en conjuntos de entrenamiento, validación y prueba. Utilizamos el conjunto de validación para clasificar diferentes modelos y el conjunto de prueba para estimar su rendimiento final. Para conjuntos de datos más pequeños, recurrimos a la validación cruzada de k-fold y la validación cruzada de dejar uno fuera.

La conferencia de hoy presentará comparaciones de modelos y algoritmos. Si bien estos conceptos se relacionan con la selección de modelos, nuestro objetivo aquí es comparar diferentes algoritmos, buscando determinar cuál funciona mejor en una variedad de tareas relacionadas. Idealmente, tendríamos una colección de conjuntos de prueba y entrenamiento separados para cada algoritmo. Por ejemplo, al comparar métodos de clasificación de imágenes, emplearíamos varios conjuntos de datos de imágenes para entrenar diferentes modelos usando diferentes algoritmos. Luego compararíamos sus actuaciones en múltiples conjuntos de datos. Sin embargo, las restricciones prácticas a menudo limitan nuestra capacidad para seguir este enfoque ideal. Encontramos problemas con violaciones de la independencia y otras molestias dentro de los conjuntos de datos. Este problema recuerda los desafíos discutidos en el documento CIFAR-10.

Además, ¿cómo podemos comparar el rendimiento de un modelo que hemos entrenado con el de un modelo publicado en un artículo de investigación o encontrado en Internet? Para abordar esto, podemos examinar la diferencia real de rendimiento entre los dos modelos mediante pruebas estadísticas. Una de estas pruebas es la prueba de McNemar, que se usa comúnmente para comparar el rendimiento predictivo de dos modelos en un resultado binario.

La prueba de McNemar es adecuada cuando tenemos datos emparejados, lo que significa que cada instancia en el conjunto de datos se clasifica por ambos modelos y los resultados se registran como una tabla de contingencia. La tabla de contingencia tiene cuatro celdas que representan los cuatro resultados posibles:

              Model 2
           |  Positive | Negative |
---------------------------------
Model 1     |           |          |
---------------------------------
  Positive |           |          |
---------------------------------
  Negative |           |          |
---------------------------------
Para aplicar la prueba de McNemar, contamos el número de instancias en cada celda de la tabla de contingencia. Denotemos estos recuentos de la siguiente manera:

  • a: El número de instancias donde ambos modelos 1 y 2 predicen positivo.
  • b: El número de instancias donde el modelo 1 predice positivo y el modelo 2 predice negativo.
  • c: El número de instancias donde el modelo 1 predice negativo y el modelo 2 predice positivo.
  • d: El número de instancias donde ambos modelos 1 y 2 predicen negativo.

Con estos conteos, podemos realizar la prueba de McNemar para determinar si existe una diferencia significativa en el desempeño de los modelos. La hipótesis nula (H0) es que los dos modelos tienen el mismo desempeño, mientras que la hipótesis alternativa (H1) es que hay diferencia.

La estadística de prueba de McNemar sigue una distribución de chi-cuadrado con 1 grado de libertad. Calculamos el estadístico de prueba usando la fórmula:

chi2 = ((|b - c| - 1)^2) / (b + c)

Si el estadístico de prueba chi2 excede un valor crítico de la distribución chi-cuadrado (con 1 grado de libertad) en un nivel de significancia elegido (por ejemplo, 0.05), rechazamos la hipótesis nula y concluimos que hay una diferencia significativa en el desempeño entre el dos modelos

Es importante tener en cuenta que la prueba de McNemar asume que las instancias emparejadas son independientes y están distribuidas de manera idéntica. Esta suposición puede no ser válida si las instancias emparejadas no son verdaderamente independientes o si existe algún tipo de dependencia entre ellas. Además, la prueba de McNemar se aplica principalmente a resultados binarios. Si el resultado es multiclase, las pruebas alternativas como la prueba Q de Cochran o la prueba de Stuart-Maxwell pueden ser más apropiadas.

Ahora, pasemos a discutir los desafíos de las comparaciones múltiples por pares. Al comparar múltiples modelos o algoritmos, es cada vez más probable encontrar diferencias significativas solo por casualidad. Este fenómeno se conoce como el problema de la comparación múltiple o el problema de las pruebas múltiples.

Al realizar múltiples comparaciones por pares, la probabilidad de al menos un resultado significativo aumenta a medida que crece el número de comparaciones. Esta inflación de la tasa de error Tipo I puede conducir a hallazgos falsos positivos, donde rechazamos la hipótesis nula erróneamente.

Para abordar el problema de la comparación múltiple, necesitamos ajustar el nivel de significancia de nuestras pruebas estadísticas. Un enfoque común es la corrección de Bonferroni, que consiste en dividir el nivel de significación deseado (p. ej., 0,05) por el número de comparaciones realizadas. Por ejemplo, si estamos comparando tres modelos, ajustaríamos el nivel de significación a 0,05/3 = 0,0167 para cada prueba individual.

La corrección de Bonferroni es un método conservador que controla la tasa de error por familia, lo que garantiza que la tasa de error Tipo I general en todas las comparaciones permanezca por debajo de un umbral específico. Sin embargo, puede ser demasiado estricto, lo que lleva a una pérdida de poder para detectar diferencias verdaderas.

Otros métodos para ajustar el nivel de significancia incluyen el método de Holm-Bonferroni, el procedimiento de Benjamini-Hochberg y el control de la tasa de descubrimiento falso (FDR). Estos métodos brindan alternativas menos conservadoras a la corrección de Bonferroni y pueden ser más apropiados en ciertas situaciones.

En resumen, la prueba de McNemar es una prueba estadística que se puede utilizar para comparar el rendimiento de dos modelos en un resultado binario. Sin embargo, cuando se realizan comparaciones múltiples por pares, es importante tener en cuenta el problema de las comparaciones múltiples ajustando el nivel de significancia.

11.1 Lecture Overview (L11 Model Eval. Part 4)
11.1 Lecture Overview (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This first video goes over the model and algorithm comparison-related topics that are coved in Lecture 11.More details in my article "Model Evaluation, Model...
 

11.2 Prueba de McNemar para la comparación de clasificadores por parejas (Evaluación del modelo L11, parte 4)


11.2 Prueba de McNemar para la comparación de clasificadores por parejas (Evaluación del modelo L11, parte 4)

Analicemos ahora la prueba de McNemar, que es una prueba que podemos usar para comparar dos modelos entre sí. Esta prueba es diferente del método de validación cruzada que discutimos la semana pasada para la selección de modelos. A diferencia de la validación cruzada, la prueba de McNemar no implica ajustar el modelo utilizando el conjunto de entrenamiento. En cambio, asume que ya tenemos un modelo existente, como un clasificador de aprendizaje automático mencionado en la literatura publicada, al que tenemos acceso a través de una aplicación web o GitHub. El objetivo es comparar nuestro propio modelo con este clasificador existente en función de su rendimiento en un conjunto de prueba.

La prueba de McNemar nos permite comparar dos clasificadores en función de su rendimiento en un conjunto de prueba. Fue presentado por Quinn McNemar en 1947 y es una prueba estadística no paramétrica para comparaciones pareadas. En este caso, tenemos una variable dependiente categórica con dos categorías que representan la exactitud de las predicciones (p. ej., correcta o incorrecta) y una variable independiente categórica con dos grupos relacionados que representan los dos modelos que se comparan. El emparejamiento se logra usando el mismo equipo de prueba para ambos modelos. Para realizar la prueba, utilizamos una matriz de confusión de dos por dos, que es una versión especial de la matriz de confusión diseñada específicamente para la prueba de McNemar.

La matriz de confusión de dos por dos para la prueba de McNemar incluye los recuentos de predicciones realizadas por ambos modelos. Por ejemplo, consideremos el caso en el que tenemos etiquetas de clase verdaderas de 0 y 1. El Modelo 1 predice 1 y 2, mientras que el Modelo 2 predice 1 y 1. En este caso, el recuento "a" representa las predicciones que tanto el Modelo 1 como el El modelo 2 fue correcto (p. ej., predecir 1 cuando la etiqueta verdadera es 1). El conteo "b" representa las predicciones donde el Modelo 1 es correcto y el Modelo 2 es incorrecto, y el conteo "c" representa las predicciones donde el Modelo 1 es incorrecto y el Modelo 2 es correcto. Al tabular estos recuentos para un conjunto de datos de prueba dado, podemos construir la matriz de confusión de dos por dos.

Usando la matriz de confusión de dos por dos, podemos calcular varias métricas. Por ejemplo, podemos calcular la precisión de la predicción para cada modelo dividiendo los recuentos "a" y "b" por el número total de ejemplos en el conjunto de prueba. Además, estamos interesados en los casos en los que el Modelo 1 y el Modelo 2 difieren, representados por las cuentas "b" y "c" en la matriz de confusión. Estos casos indican dónde un modelo hizo una predicción correcta mientras que el otro hizo una predicción incorrecta. Para comparar el rendimiento de los dos modelos, podemos ejecutar la prueba de McNemar.

La prueba de McNemar sigue un procedimiento típico de prueba de hipótesis. Definimos una hipótesis nula y una hipótesis alternativa. La hipótesis nula asume que los desempeños de los dos modelos son iguales, mientras que la hipótesis alternativa sugiere que sus desempeños difieren. Calculamos una estadística de prueba de chi-cuadrado, que se aproxima a una distribución de chi-cuadrado. La estadística de prueba se calcula como (b - c)^2 / (b + c). Con base en esta estadística de prueba, calculamos un valor p, asumiendo que la hipótesis nula es verdadera. El valor p representa la probabilidad de observar la estadística de prueba dada o un valor más extremo bajo la hipótesis nula.

Para determinar si se rechaza la hipótesis nula, comparamos el valor p con un nivel de significación elegido (p. ej., 0,05). Si el valor p es menor que el nivel de significancia, rechazamos la hipótesis nula y concluimos que los desempeños de los dos modelos no son iguales. Por el contrario, si el valor p es mayor que el nivel de significación, no podemos rechazar la hipótesis nula y suponer que los rendimientos de los dos modelos son iguales.

La corrección de continuidad se introdujo para abordar el problema de que la distribución chi-cuadrado es una distribución continua mientras que los datos de la tabla de contingencia 2x2 son discretos. Al restar 1 de la diferencia absoluta en el numerador, la corrección de continuidad ayuda a brindar una mejor aproximación del valor p. Sin embargo, es importante tener en cuenta que el uso de la corrección de continuidad no siempre es necesario y depende del contexto y los datos específicos.

Otra consideración en la prueba de McNemar es el uso de la prueba binomial exacta. La prueba binomial exacta proporciona un enfoque alternativo para determinar la significación estadística de la prueba de McNemar cuando el tamaño de la muestra es pequeño o cuando no se cumplen los supuestos de la prueba de chi-cuadrado. La prueba binomial exacta calcula directamente la probabilidad de obtener los datos observados bajo la hipótesis nula, sin depender de la aproximación chi-cuadrado.

Además, la prueba de McNemar se puede extender para manejar más de dos modelos o tratamientos. En tales casos, la prueba se puede realizar utilizando una prueba de McNemar generalizada o una extensión conocida como prueba de Cochran-Mantel-Haenszel. Estas extensiones permiten la comparación de múltiples modelos o tratamientos simultáneamente, teniendo en cuenta las dependencias entre los diferentes grupos.

En resumen, la prueba de McNemar es una prueba estadística no paramétrica utilizada para comparar el rendimiento de dos modelos o tratamientos basados en datos categóricos emparejados. Proporciona una forma de evaluar si las diferencias de rendimiento entre los modelos son estadísticamente significativas. La prueba consiste en construir una tabla de contingencia de 2x2 y calcular una estadística de prueba, que puede compararse con la distribución de chi-cuadrado o evaluarse mediante la prueba binomial exacta. Al realizar la prueba de McNemar, los investigadores pueden obtener información sobre el rendimiento relativo de diferentes modelos o tratamientos en varios campos, incluido el aprendizaje automático, la medicina y las ciencias sociales.

11.2 McNemar's Test for Pairwise Classifier Comparison (L11 Model Eval. Part 4)
11.2 McNemar's Test for Pairwise Classifier Comparison (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video introduces McNemar's test, which is a nonparametric statistical test for comparing the performance of two models with each other on a given test s...
 

11.3 Comparaciones múltiples por pares (Evaluación del modelo L11, parte 4)


11.3 Comparaciones múltiples por pares (Evaluación del modelo L11, parte 4)

En el escenario en el que tiene un modelo que desea comparar con muchos otros modelos que se encuentran en la literatura o en plataformas como GitHub, realizar comparaciones por pares puede resultar problemático. Si tiene k modelos diferentes, realizar una prueba por pares en cada par daría como resultado k veces (k - 1) / 2 combinaciones, lo que puede ser un número grande. Esto plantea preocupaciones sobre la tasa de error al realizar múltiples pruebas de hipótesis.

Por lo general, las pruebas de hipótesis se realizan a un nivel de significación de 0,05 o menor. Esto significa que si la hipótesis nula es verdadera, hay un 5% de posibilidades de rechazarla incorrectamente, lo que lleva a una tasa de error del 5%. Cuando se realizan múltiples pruebas, la tasa de error por rechazar falsamente una hipótesis nula puede aumentar a r veces alfa, donde r es el número de pruebas realizadas. En el peor de los casos, la tasa de error puede ser de hasta r veces alfa si todas las hipótesis nulas por pares son verdaderas.

Para abordar este problema, un enfoque común es utilizar un procedimiento protegido, que implica un proceso de dos pasos. El primer paso es una prueba ómnibus, en la que evalúa si existe una diferencia significativa en el rendimiento de todos los modelos combinados. La hipótesis nula asume que las precisiones de clasificación de todos los modelos son iguales, mientras que la hipótesis alternativa sugiere que no son iguales.

Si se rechaza la hipótesis nula en la prueba ómnibus, lo que indica que hay una diferencia en el rendimiento del modelo, puede continuar con el segundo paso, que implica pruebas post hoc por pares. Sin embargo, es crucial hacer ajustes para comparaciones múltiples para controlar la tasa de error. Un método de ajuste comúnmente utilizado es el método de Bonferroni, donde el nivel de significación se divide por el número de comparaciones.

Para las pruebas por pares, se puede emplear la prueba de McNemar. Es importante tener en cuenta que, si bien estos procedimientos estadísticos son formales y brindan información valiosa, en la práctica del aprendizaje automático, no es muy común realizar comparaciones tan extensas. Por lo general, los investigadores informan sobre la precisión o los errores de predicción y clasifican los modelos en función de su rendimiento.

Si bien la prueba Cochran-Q se puede implementar en la biblioteca "mlxtend" para comparar múltiples modelos, vale la pena mencionar que el uso de dichos procedimientos para comparaciones de múltiples modelos aún es relativamente poco común en el campo del aprendizaje automático. Sin embargo, si encuentra una situación en la que desea comparar varios modelos y realizar pruebas estadísticas, puede explorar estas opciones y consultar las notas de clase y la literatura relevante para obtener información más detallada.

Es importante tener en cuenta que estos temas no se cubren de manera extensa en esta lección para permitir suficiente tiempo para cubrir otros conceptos esenciales como la selección de funciones.

Un problema con las comparaciones múltiples es el mayor riesgo de errores de tipo I, también conocidos como falsos positivos. Al realizar múltiples pruebas, existe una mayor probabilidad de rechazar incorrectamente hipótesis nulas, lo que lleva a conclusiones erróneas. Para mitigar esto, los investigadores a menudo aplican métodos de ajuste como la corrección de Bonferroni o el control de la tasa de descubrimiento falso (FDR).

La corrección de Bonferroni es un ajuste conservador que divide el nivel de significación (alfa) por el número de comparaciones (k). Este nivel de significación ajustado, indicado como alfa prima (α'), garantiza que la tasa de error familiar general permanezca bajo control. Mediante el uso de la corrección de Bonferroni, cada prueba individual por pares se realiza en un nivel alfa/k.

Otro método popular es el control FDR, que se enfoca en controlar la proporción de descubrimientos falsos entre todos los rechazos. En lugar de reducir el nivel de significación de cada comparación, el control FDR ajusta los valores p de las pruebas individuales para controlar la tasa general de falsos descubrimientos. Este método permite un ajuste menos estricto en comparación con la corrección de Bonferroni, lo que puede resultar ventajoso en situaciones en las que se trata de un gran número de comparaciones.

Si bien la corrección de Bonferroni y el control FDR se usan ampliamente, es importante tener en cuenta que tienen sus limitaciones. La corrección de Bonferroni puede ser demasiado conservadora, lo que podría aumentar las posibilidades de errores de tipo II o falsos negativos. Por otro lado, el control FDR puede tener más poder para detectar diferencias verdaderas pero también puede aumentar el riesgo de falsos positivos.

En el contexto del aprendizaje automático, vale la pena considerar si el objetivo es evaluar las diferencias por pares de manera integral o identificar los modelos de mejor rendimiento. La realización de pruebas por pares para todas las combinaciones posibles puede ser costosa desde el punto de vista computacional y consumir mucho tiempo. En la práctica, los investigadores a menudo se enfocan en clasificar los modelos en función de sus métricas de rendimiento e identificar los modelos de mejor rendimiento en lugar de realizar pruebas estadísticas formales.

También es importante reconocer que las pruebas estadísticas son solo un aspecto de la comparación de modelos. Otros factores como la interpretabilidad, la eficiencia computacional, la relevancia del dominio y las consideraciones prácticas también deben tenerse en cuenta al evaluar y seleccionar modelos.

En conclusión, si bien las comparaciones múltiples y las pruebas estadísticas pueden proporcionar información valiosa sobre las comparaciones de rendimiento del modelo, su aplicación práctica en el aprendizaje automático es menos común. Los investigadores suelen depender de la precisión o los errores de las predicciones de informes, las comparaciones visuales y los modelos de clasificación basados en métricas de rendimiento. Comprender los conceptos estadísticos subyacentes y los posibles problemas con las comparaciones múltiples sigue siendo esencial para realizar una investigación rigurosa e interpretar los resultados con precisión.

11.3 Multiple Pairwise Comparisons (L11 Model Eval. Part 4)
11.3 Multiple Pairwise Comparisons (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video extends the concept of McNemar's test, which is a pairwise procedure, but recommending Cochran's Q (a generalization of McNemar's test) as an omni...
 

11.4 Pruebas estadísticas para la comparación de algoritmos (L11 Model Eval. Part 4)


11.4 Pruebas estadísticas para la comparación de algoritmos (L11 Model Eval. Part 4)

En los videos anteriores, discutimos cómo se puede usar la inferencia estadística para comparar diferentes modelos que ya se han ajustado a un conjunto de datos determinado. Ahora, exploraremos pruebas estadísticas que nos permitan comparar algoritmos. Esto significa que podemos comparar modelos que se han ajustado con diferentes conjuntos de entrenamiento o subconjuntos de entrenamiento. Esta discusión se centra en la aplicación de la inferencia estadística y varias pruebas estadísticas para la comparación de algoritmos.

Hay varias pruebas estadísticas disponibles para comparar algoritmos, cada una con sus pros y sus contras. En las notas de clase, puede encontrar una explicación más detallada de estas pruebas, junto con materiales adicionales. Aquí, proporcionaré una descripción general de las pruebas y resaltaré algunos puntos clave.

Una prueba común es la prueba de McNemar, que se usa principalmente para comparar modelos en lugar de algoritmos. Vale la pena mencionarlo porque tiene una baja tasa de falsos positivos y es computacionalmente eficiente. Sin embargo, no está diseñado específicamente para la comparación de algoritmos.

Otra prueba es la prueba de diferencia de proporciones, que desafortunadamente tiene una alta tasa de falsos positivos. Esta prueba requiere el ajuste de múltiples modelos, lo que la hace más adecuada para la comparación de algoritmos. Sin embargo, puede ser computacionalmente costoso debido a la necesidad de múltiples ajustes de modelos.

La prueba t de validación cruzada K-fold es otro método utilizado para la comparación de algoritmos. Proporciona una evaluación más precisa, pero aún tiene una tasa de falsos positivos ligeramente elevada. A pesar de este inconveniente, sigue siendo una prueba útil.

La prueba t pareada con validación cruzada repetida es otro enfoque que requiere el ajuste de múltiples modelos. Si bien tiene una tasa de falsos positivos más baja que otras pruebas, aún puede ser computacionalmente intensivo debido al ajuste repetido del modelo.

Una técnica más avanzada es la prueba t pareada con validación cruzada 5x2, que muestra una tasa baja de falsos positivos y un poder estadístico ligeramente superior en comparación con la prueba de McNemar. Ofrece un enfoque más sólido para la comparación de algoritmos. Además, existen enfoques más nuevos, como la prueba f pareada con validación cruzada 5x2, que brindan mejoras adicionales.

En las notas de la conferencia, profundizo en más detalles sobre estas pruebas y otros enfoques estadísticos. Además, he implementado la mayoría de estas pruebas en MLA extend, una biblioteca que acompaña a los materiales de lectura. Puede encontrar implementaciones de la prueba de McNemar, la prueba Q de Cochrane, la prueba t pareada remuestreada (no recomendada), la prueba t pareada con validación cruzada K-fold, la prueba t combinada con validación cruzada 5x2 y más.

Si bien las pruebas estadísticas ofrecen información valiosa, también existen enfoques computacionales o empíricos para la comparación de algoritmos. En el próximo video, exploraremos la motivación detrás de la selección y comparación de algoritmos en aplicaciones del mundo real. Por ejemplo, es posible que deseemos comparar diferentes algoritmos para identificar el mejor desempeño en escenarios como el desarrollo de una aplicación de correo electrónico o la creación de un sistema de recomendación para artículos de investigación.

En conclusión, hay varias pruebas estadísticas disponibles para comparar algoritmos, cada una con sus fortalezas y limitaciones. Estas pruebas pueden proporcionar información sobre las diferencias de rendimiento entre los algoritmos equipados con diferentes conjuntos de entrenamiento. Sin embargo, es importante tener en cuenta la eficiencia computacional, las tasas de falsos positivos y el poder estadístico al seleccionar una prueba adecuada. Además, los enfoques empíricos pueden complementar las pruebas estadísticas en la comparación de algoritmos.

11.4 Statistical Tests for Algorithm Comparison (L11 Model Eval. Part 4)
11.4 Statistical Tests for Algorithm Comparison (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video gives a brief overview of different statistical tests that exist for model and algorithm comparisons.More details in my article "Model Evaluation,...