Evaluando las Hipótesis Inductivas Tomás Arredondo Vidal 8/9/2011 Evaluando las Hipótesis Inductivas Contenidos • Estimando la Precisión • Comparando Hipótesis • Comparando Algoritmos de Clasificación Evaluando las Hipótesis Inductivas • La precisión (accuracy) de la hipótesis h sobre los datos de entrenamiento esta sesgada dado que h fue construida para calzar esos datos (e.g. bias en la estimación y posible sobreajuste). • La precisión debe ser evaluada en un conjunto de pruebas independiente (generalmente disjunto) de los datos de entrenamiento. • Mientras mayor es el conjunto de prueba, mejor la precisión medida y menor es la varianza observada en distintos conjuntos de prueba. Definición: X es un conjunto de posibles instancias (e.g. el conjunto de todas las personas con varios atributos como edad, ocupacion, veces que han esquiado, ...) sobre la cual se puede definir una función objetivo f: X -> {0, 1} (e.g. las personas que van a comprar esquís este año). X se puede encontrar con distintas frecuencias dada una distribución D de probabilidades (e.g. D puede asignar mayor probabilidad a los de 19 años que a la gente de 100 años). Error de Muestra vs Error Verdadero Definición: El error de muestra (sample error) de la hipótesis h con respecto a la función objetivo f( ) dado una muestra S es 1 error S ( h)= ∑ δ ( f ( x),h( x )) n x∈S δ ( f ( x ),h( x ))=1 si f ( x )≠h( x ), 0 de otra forma. Definición: El error verdadero (true error) es el error de la hipótesis h con respecto a la función objetivo f( ) dado la distribución D. Es la probabilidad que h mis-clasifique una instancia elegida de acuerdo a D. [ f ( x )≠h ( x ) ] Relación con la Distribución Binomial Como es que la desviación entre el error de muestreo y el error verdadero depende del tamaño de la muestra? La respuesta tiene que ver con que cuando medimos el error de la muestra S estamos haciendo un experimento aleatorio con un resultado aleatorio. Tomemos una muestra Si de n instancias independientes de la distribución D y midamos el errorSi (h). Si repetimos este experimento k veces {Si : S1 , S2. , ..., Sk } esperaríamos distintos números de errores cada vez. Decimos que errorSi (h) es una variable aleatoria y si graficamos un histograma mostrando la frecuencia de obtener cada posible valor de error a medida que k creciera esta distribución seria una Binomial. Relación con la Distribución Binomial (cont) Ej: En la distribución Binomial la probabilidad de observar r caras (X = r ) en una muestra de n tiros independientes de una moneda, cuando la probabilidad de sacar cara en un tiro individual es p esta dada por: n! r n−r P( X=r )=P(r )= p (1− p ) r!(n−r )! Estimar p de una muestra aleatoria es equivalente a estimar error D(h) al probar la hipótesis h en una muestra aleatoria Si . Un tiro de la moneda corresponde a sacar una muestra de D y determinar si esta mal clasificada por h. La probabilidad p corresponde a error D(h), r corresponde al numero de misclasificaciones y r / n a error Si(h). error D (h )=p r error S (h )= n i (1) Relación con la Distribución Binomial (cont) Si una variable aleatoria X sigue una distribución Binomial entonces: • La probabilidad Pr (X = r) = P(r) • El promedio (mean) de X es E(X) = Σxi Pr(X=xi ) = np • La varianza de X, Var(X) es Var(X) = E[(X-E[X])2] = np(1 – p) • La desviación std de X, σX es σX = Var(X)1/2 = (np(1 – p))1/2 n! r n−r P(r )= p (1− p) r!(n−r )! n=40, p=0.3 Bias y Varianza en el Estimador • Se puede considerar errorS(h) como un estimador del error verdadero errorD(h). • Definición: El sesgo de estimación (estimation bias) de un estimador Y para un parámetro arbitrario p es estimation Bias = E[ Y ] - p errorS(h) = E(r / n) = p indica un estimador sin sesgo (unbiased) • Definición: La desviación std de errorS(h) dado nuestro estimador de p con r errores en n muestras (constante) es σ error σr S √ error S (h )(1−error S (h )) p(1− p) = ≈ ( h) = n n n √ (2) • Dada la posible elección entre distintos estimadores es mejor uno sin estimation bias y con la varianza mas pequeña. La Distribución Normal como Aproximación • errorS(h) es el porcentaje de ejemplos en un conjunto de prueba S muestreada independientemente de tamaño n que son clasificados erróneamente por h. • errorD(h) es el error verdadero para la distribución general de datos D (la que se puede esperar cuando se aplica la hipótesis a ejemplos futuros). • Cuando n es al menos 30, el teorema del limite central (Central Limit Theorem) garantiza que la distribución de errorS(h) para una muestra aleatoria S va a ser aproximada de manera cercana por una distribución Normal (Gausiana). P(error S(h)) errorD(h) errorS(h) La Distribución Normal como Aproximación (cont) • Teorema: Teorema del limite central. Considerando un conjunto de variables aleatorias independientes (Yi ), idénticamente distribuidas gobernadas por una distribución arbitraria con promedio µ y varianza finita σ2. Se define el promedio de muestra como: n Ȳ n =( 1/n ) ∑ Y i i=1 A medida que n -> ∞, independiente de la distribución que gobierna las variables aleatorias subyacentes Yi , esta muestra se acerca a una distribución Normal con: Ȳ n =μ Ȳ n =σ / n Intervalos de Confianza Lo que se quiere saber es errorD(h) de la hipótesis porque este es el error que se puede esperar cuando se aplica la hipótesis a ejemplos futuros... Pero lo único que podemos medir es errorS(h) para los datos que tenemos disponibles... La pregunta entonces es: “ Cuan buena es la estimación de error D(h) dada por errorS(h)? ” Intervalos de Confianza • Si una variable aleatoria Y obedece una distribución Normal con promedio µ y una desviación std σ entonces el valor medido de Y va a estar en el siguiente intervalo un N% del tiempo yN = µ ± zN σ (3) Int. conf. N%: 50% 68% 80% 90% 95% 98% 99% Const. zN: 0.67 1.00 1.28 1.64 1.96 2.33 2.58 Ej: una Normal con µ = 0, σ = 1 1.28 -1.28 .4 Con un 80% de confianza el valor de la la variable aleatoria Y va a estar entre [-1.28, 1.28]. Con 90% de confianza Y va a estar en el intervalo [-∞, 1.28]. .4 0 -3 -2 -1 0 1 2 3 Intervalos de Confianza Asumiendo que: • la muestra S contiene n ejemplos independientes, independientes de h y de acuerdo a la distribución D, • n ≥ 30, • h comete r errores sobre estas n muestras (errorS(h) = r / n). Bajo estas condiciones la estadística nos permite decir que: • el valor mas probable de errorD(h) es el error promedio errorS(h), • el verdadero error con una probabilidad N% esta en el intervalo: poniendo (1) y (2) -> (3): error D,N ( h)=error S (h )±z N √ error S (h )(1−error S (h)) n La constante zN da la distancia desde la media en desviaciones std en cualquiera de las dos direcciones. Evaluando las Hipótesis Inductivas Contenidos • Estimando la Precisión • Comparando Hipótesis • Comparando Algoritmos de Clasificación Comparando Dos Hipótesis Aprendidas • Cuando se evalúan dos hipótesis distintas, su ordenamiento observado con respecto a precisión puede o no reflejar el orden de sus precisiones individuales reales. – Se asume que h1 es probado en el set S1 de tamaño n1 – h2 es probado en un conjunto S2 de tamaño n2 P(error S(h)) errorS1(h1) errorS2(h2) Se observa h1 mas precisa que h2 errorS(h) Comparando Dos Hipótesis Aprendidas • Cuando se evalúan dos hipótesis distintas, su ordenamiento observado con respecto a precisión puede o no reflejar el orden de sus precisiones individuales reales. – Se asume que h1 es probado en el set S1 de tamaño n1 – h2 es probado en un conjunto S2 de tamaño n2 P(error S(h)) errorS1(h1) errorS2(h2) Se observa h1 menos precisa que h2 errorS(h) Pruebas Estadísticas de Hipótesis • Como determinar si la probabilidad que una diferencia observada empíricamente entre dos variables es aleatoria sin diferencias estadísticas subyacentes? • Como determinar lo significativo de dos promedios calculados de dos muestras distintas bajo distintas condiciones? • Es común usar la hipótesis nula, que es la probabilidad de que ambas muestras fueron sacadas de la misma distribución subyacente. • Por convención científica rechazamos la hipótesis nula y decimos que la diferencia es estadísticamente significativa si la probabilidad de la hipótesis nula es menor que el 5% (p < 0.05) o alternativamente podemos aceptar que la diferencia esta dada por una causa subyacente con confianza de (1 – p). Tests de uno o dos lados • Tests usando un lado (one sided tests) asumen que uno espera una diferencia en una dirección (e.g. A es mejor que B) y que la diferencia es consistente con esa suposición • Tests de dos lados no asumen una diferencia en una u otra dirección. • Tests de dos lados (i.e. two-sided tests) son mas conservativos dado que requieren una mayor diferencia para concluir que la diferencia es significativa. Test Z-Score para Comparar Hipótesis Aprendidas • Se asume que h1 es probado en un test set S1 de tamaño n1 y h2 en un test set S2 de tamaño n2. Se calcula la diferencia entre la precisión de h1 y h2: d=∣error S (h1 )−error S (h 2 )∣ 1 2 • Se calcula la desviación estándar de la estimación muestreada de la diferencia: √ error S (h 1 )⋅(1−error S ( h1 )) error S ( h2 )⋅(1−error S ( h2 )) σ d= + n1 n2 1 1 2 2 • Se calcula el z-score de la diferencia (viene de (3)): d z= σd Test Z-Score para Comparar Hipótesis Aprendidas (cont) • Se determina la confianza de la diferencia al buscar la confianza mas alta C, para el z-score calculado usando una tabla. confidence level z-score 50% 68% 80% 90% 95% 98% 99% 0.67 1.00 1.28 1.64 1.96 2.33 2.58 • Esto da la confianza para un test de dos lados (twotailed test), para un test de un lado incremente la confianza una mitad hacia 100%. (100−C ) C =(100− ) 2 ' Ejemplo 1 Z-Score Test Asumir que probamos dos hipótesis en sets de prueba de tamaño 100 y se observa: error S (h1 )=0 . 20 error S ( h2 )=0 . 30 1 2 d=∣error S (h1 )−error S (h 2 )∣=∣0.2−0.3∣=0.1 1 √ 2 error S 1 ( h1 )⋅(1−error S 1 (h1 )) error S 2 (h 2 )⋅(1−error S 2 (h 2 )) σd= + n1 n2 = z= √ 0 . 2⋅(1−0 . 2) 0 . 3⋅(1−0 . 3) + =0 . 0608 100 100 d 0 .1 = =1. 644 σ d 0 . 0608 Confianza para z-test de dos colas: 90% Confianza para z-test de una cola: (100 – (100 – 90)/2) = 95% Ejemplo 2 Z-Score Test Asumir que probamos dos hipótesis en sets de prueba de tamaño 100 y se observa: error S (h1 )=0 . 20 error S ( h2 )=0 . 25 1 2 d=∣error S (h1 )−error S (h 2 )∣=∣0.2−0.25∣=0.05 1 √ 2 error S 1 ( h1 )⋅(1−error S 1 (h1 )) error S 2 (h 2 )⋅(1−error S 2 (h 2 )) σd= + n1 n2 = z= √ 0 . 2⋅(1−0 . 2) 0 . 25⋅(1−0 . 25) + =0 . 0589 100 100 d 0 . 05 = =0 . 848 σ d 0 . 0589 Confianza para test de dos colas: 50% Confianza para test de una cola: (100 – (100 – 50)/2) = 75% Suposiciones del Test Z-Score • Hipótesis pueden ser probadas en distintos sets de prueba. Si se usa el mismo set de prueba se podrían justificar conclusiones mas fuertes. • Sets de prueba deben tener por lo menos 30 ejemplos elegidos independientes. • Hipótesis son construidas desde sets de entrenamiento independientes. • Solo compara dos hipótesis especificas independiente de los métodos usados para construirlos. No compara los métodos de aprendizaje subyacentes en general. Evaluando las Hipótesis Inductivas Contenidos • Estimando la Precisión • Comparando Hipótesis • Comparando Algoritmos de Clasificación Comparando Algoritmos de Aprendizaje • Comparando la precisión promedio de hipótesis producidas por dos métodos distintos de aprendizaje es mas difícil dado que se debe promediar sobre múltiples casos de entrenamiento. Idealmente queremos medir: E S⊂D (error D ( L A ( S ))−error D ( LB ( S))) en el cual LX(S) representa la hipótesis aprendida por el método LX usando los datos S. • Para estimar precisamente esto necesitamos promediar sobre múltiples sets independientes de entrenamiento y prueba. • Dado que los datos etiquetados son limitados, generalmente se debe promediar usando múltiples divisiones de los datos de entrenamiento y prueba. Validación Cruzada K-Fold Aleatoriamente dividir datos D en k dsets disjuntos de igual tamaño P1…Pk For i from 1 to k do: Usar Pi de test set y el resto como sets de entrenamiento Si = (D – Pi) hA = LA(Si) hB = LB(Si) δi = errorPi(hA) – errorPi(hB) Retornar el error promedio de la diferencia: k 1 δ= ∑ δ i k i= 1 Validación Cruzada K-Fold (cont) • Cada set se usa como set de prueba una vez y como set de entrenamiento k–1 veces. • Todo los sets de prueba son independientes pero los sets de entrenamiento se sobrelapan. • Mediciones de precisión de hipótesis se generan para [(k– 1)/k]⋅|D| datos de entrenamiento. • Método standard es 10-fold. • Si k es bajo, no hay suficiente numero de sets de entrenamiento/test; si k es alto, el test set es pequeño, la varianza en el test es alto y el tiempo de ejecución se incrementa. • Si k = |D|, método de validacion cruzada se llama deja-unoafuera (leave-one-out). Test de Relevancia (significance tests) • Típicamente si k<30, no son suficientes muestras para un z test. • Se puede usar un t-test apareado (paired), que puede determinar diferencias mas pequeñas dado que los sets de entrenamiento/prueba son los mismos para ambas hipótesis siendo comparadas . • Puede usarse un (Student’s) t-test, que es mas preciso cuando el numero de muestras es bajo. • Los tests z y t asumen que las muestras son independientes.No es asi para validación cruzada k-fold: – Conjuntos de prueba son independientes – Conjuntos de entrenamiento no son independientes • Otros tests estadísticos han sido propuestos (e.g. McNemar’s test) • A pesar de que ningún test es perfecto, cuando los datos son limitados y no hay muestras independientes, algunos tests que consideran varianzas son deseables. Ejemplo de Resultados Experimentales Cual experimento provee mejor evidencia que el sistema A es mejor que B? Experimento 2 Experimento 1 Syst. A Syst. B Diff Trial 1 90% 82% +8% +5% Trail 2 93% 76% +17% 83% +5% Trial 3 80% 85% –5% 82% 77% +5% Trial 4 85% 75% +10% Trial 5 85% 80% +5% Trial 5 77% 82% – 5% Average 85% 80% +5% Average 85% 80% +5% Syst. A Syst. B Diff Trial 1 87% 82% +5% Trail 2 83% 78% Trial 3 88% Trial 4 Curvas de Aprendizaje • Grafico precisión vs tamaño de set de entrenamiento. • La máxima precisión (Bayes Optimal) se ha logrado o podría mejorar con mas ejemplos? • La mayoría de métodos (i.e. learners) eventualmente convergen al optimo de Bayes dado suficientes ejemplos de entrenamiento. 100% Test Accuracy Bayes optimal Random guessing # Training examples Validación Cruzada de Aprendizaje Divide data in k partitions of equal size For trial i = 1 to k do: Use partition i for testing and the union of the other partitions for training. For each desired point p on the learning curve do: For each learning system L Train L on the first p examples of the training set and record training time, training accuracy, and learned concept complexity. Test L on the test set, recording testing time and test accuracy. Compute average for each performance statistic across k trials. Plot curves for any desired performance statistic versus training set size. Use a paired t-test to determine significance of any differences between any two systems for a given training set size. Curvas de Ruido • Graficar precisión versus el nivel de ruido para determinar la resistencia relativa a datos de entrenamiento ruidosos. • Artificialmente se agrega ruido en las categorías o características al remplazar alguna fracción de estos con valores aleatorios. 100% Test Accuracy % noise added Conclusiones de Evaluación Experimental • Una buena metodología experimental es clave para poder evaluar métodos experimentales de aprendizaje. • Es importante probar en una variedad de problemas para demostrar una utilidad para una variedad de problemas. Probar en 20 o + sets de datos es común. • Variedad de fuentes de datos disponibles: – UCI Machine Learning Repository http://www.ics.uci.edu/~mlearn/MLRepository.html – KDD Cup (large data sets for data mining) http://www.kdnuggets.com/datasets/kddcup.html – CoNLL Shared Task (natural language problems) http://www.ifarm.nl/signll/conll/ • Datos de problemas reales son preferidos a datos artificiales. Evaluando las Hipótesis Referencias: [1] Mitchel, T., Machine Learning , McGraw Hill, 1997 [2] Mooney, R., Machine Learning Slides, University of Texas