Introduccion a Machine learning Flashcards
Defina Machine learning
Llamamos machine learning a la rama de la computacion que se encarga de construir algoritmos que aprenden a hacer algo util a partir de los datos.
Explique train/test/validation sets.
En general trabajaremos con un set de entrenamiento y un set de test. Para poder validar el modelo necesitamos dividir el set de entrenamiento original en dos: un set de entrenamiento y un set de validación. La idea es entrenar el modelo con el set de entrenamiento y luego probarlo con el set de validación a efectos de encontrar los mejores hiper-parámetros. El set de validación en general es un 20-30% del set de entrenamiento. Luego aplicamos al set de test el modelo con los hiper parámetros que encontramos.
Explique cross validation
El proceso de K-fold Cross Validation comienza particionando el set de entrenamiento en k bloques. Luego vamos a realizar varias iteraciones en las cuales entrenamos nuestro algoritmo con k − 1 bloques y lo validamos con el restante. Este proceso se repite k veces para que todos los datos hayan participado alguna vez del set de validación. El resultado es el promedio de las k iteraciones del algoritmo. Esto hay que hacerlo por cada valor posible para nuestros hiperparámetros, por lo que, dependiendo de los datos, puede resultar un proceso costoso.
Explique conceptos de overfitting y underfitting.
Overfitting se da cuando el modelo ajusta muy bien a los datos con los que entreno, pero luego no generaliza bien. Esto se debe a que el modelo es demasiado complejo. Por ejemplo, si hay n puntos en un set de datos, existe un polinomio de grado n-1 que pasa por todos los puntos. Sin embargo, probablemente al introducir un nuevo punto, el modelo no lo este considerando de forma correcta obteniendo asi mucho error.
Underfitting se da en cambio cuando el modelo es demasiado simple, y por lo tanto no aprende bien los datos sobre los cuales entrena.
A que otros conceptos estan intimamente ligados los de overfitting y underfitting? Como se relacionan?
Bias y variance.
Podemos asociar el bias al error que tenemos en el set de entrenamiento y variance al error que tenemos en el set de test (o validación). A medida que aumenta la complejidad del modelo, el error del set de entrenamiento disminuye. Este es el bias, el cual es siempre decreciente. Por otro lado, a medida que aumentamos la complejidad, el error del set de test aumenta. El óptimo está en algún punto medio. Cuando el modelo no es óptimo porque le falta complejidad tenemos alto bias, baja varianza y underfitting. Cuando el modelo no es óptimo porque es demasiado complejo tenemos bajo bias, alta varianza y overfitting.
El bias puede asociarse al poder de representación del modelo y la varianza a la variabilidad del mismo.
Como se puede detectar en la practica si se tiene un problema de bias o varianza?
En la práctica podemos identificar si tenemos un problema de bias o varianza ploteando el error del set de entrenamiento y del set de test en función de la cantidad de datos en el set de entrenamiento.
Cuando tenemos un problema de alto bias (underfitting) veremos que las entrenamiento es reflejo de un modelo que no tiene la complejidad necesaria para entender los datos.
Cuando el problema es la alta varianza tenemos que las curvas se aproximan pero el error total es demasiado alto. Esto es un caso de overfitting, el modelo es demasiado complejo y generaliza mal.
Enuncie el No Free lunch theorem y/o el corolario que se desprende del mismo.
Dos algoritmos de optimización cualesquiera son equivalentes si los promediamos sobre el set de todos los problemas posibles.
Corolario:
Dado un problema de optimización, si un algoritmo funciona muy bien, entonces existe un problema en el cual el algoritmo funciona igual de mal.
Mencione tipos de ensambles
bagging y boosting.
Explique bagging. Que algoitmo se suele usar con este metodo?
Bagging en general implica aplicar el mismo clasificador n veces y luego promediar sus resultados para el obtener el resultado final. El problema es que aplicar el mismo clasificador n veces al mismo set de datos nos darı́a n veces el mismo resultado. Es por esto que bagging siempre se usa en conjunto con bootstrapping.
Bootstrapping consiste en tomar una muestra del set de entrenamiento del mismo tamaño del set de entrenamiento pero con reemplazo.
Bagging puede usarse con cualquier algoritmo de clasificación o regresión pero es muy popular con árboles de decisión, en donde da origen al algoritmo de Random Forests que veremos más adelante.
Boosting
El método de boosting consiste en construir un algoritmo muy preciso a partir de un conjunto de algoritmos muy simples, los cuales por separado pueden funcionar bastante mal. El método consiste en entrenar un algoritmo simple, analizar sus resultados y luego entrenar otro algoritmo simple, en donde se le da mayor peso a los resultados para los cuáles el anterior tuvo peor performance. Cada algoritmo tiene a su vez un peso proporcional a la cantidad de aciertos que tuvo para el set de entrenamiento. El resultado final del algoritmo se construye mediante un promedio ponderado de todos los algoritmos usados con sus respectivos pesos.
Menciones formas de combinar algoritmos distintos.
Majority voting, Averaging, Blending