AA-3. Los m'etodos de Aprendizaje Automático.ppt
Transcript of AA-3. Los m'etodos de Aprendizaje Automático.ppt
Introducción al Aprendizaje Automático
Prof. Dr. Carlos Morell
Algoritmos: Los métodos básicos
Deducción de reglas rudimentarias Modelación estadística Construcción de árboles de decisión Construcción de reglas Aprendizaje de reglas de la asociación Modelos lineales Aprendizaje basado en casos Agrupamiento
La simplicidad primero
¡Los algoritmos simples trabajan a menudo muy bien!
Hay muchas clases de estructura simple: ♦ Una característica hace todo el trabajo♦ Todas las cualidades contribuyen igualmente e independientemente♦ Una combinación lineal pesada puede servir. ♦ Basado en casos: utilizar pocos prototipos♦ El uso de reglas lógicas simples
El éxito del método depende del dominio
Deducción de reglas rudimentarias
1R: aprende un árbol de decisión de 1 nivel ♦ reglas donde todas prueban por un atributo en particular
Versión básica♦ Un rama para cada valor♦ Cada rama asigna la clase más frecuente♦ Tasa de error: proporción de los casos que no pertenecen a la clase de la mayoría de su rama correspondiente♦ Elija el atributo con la tasa de error más baja(asume atributos nominales)
Pseudo-código de 1R
Para cada atributo,Para cada valor del atributo, haga una regla como sigue:
♦ cuente cuantas veces aparece cada clase ♦ encuentre la clase más frecuente ♦ haga que la regla asigne esa clase a este
atributo-valorCalcule el índice de error de las reglas
Elija las reglas con la tasa de error más pequeña
Evaluación de los atributos de weather.nominal.arff
Lidiando con atributos numéricos
Discretizar los atributos numéricos Divida el rango de cada atributo en intervalos
♦ Ordene las instancias según el valor del atributo ♦ Ponga los límites de ruptura donde la clase cambia (clase mayoritaria) ♦ Esto minimiza el error total error
Ejemplo: temperatura de los datos del tiempo 64 65 68 69 70 71 72 72 75 75 80 81 83 85 Yes | No | Yes Yes Yes | No No Yes | Yes Yes | No | Yes Yes | No
El problema de overfitting
●Este procedimiento es muy sensible al ruido♦ Un caso con una etiqueta incorrecta de la clase producirá
probablemente un intervalo separado
Una solución simple: – Forzar un número minimo de instancia en la clase
mayoritaria para cada intervalo
● Ejemplo (con min = 3):
64 65 68 69 70 71 72 72 75 75 80 81 83 85 Yes | No |Yes Yes Yes | No No Yes | Yes Yes | No | Yes Yes | No
Evitando el overfitting
Sistema de reglas que resulta:
Discusión de 1R
1R fue descrito en un artículo de Holte (1993) )♦ Contiene una evaluación experimental en 16 datasets (que
usan la validación cruzada de modo que los resultados fueran el representativos del funcionamiento en los datos futuros)
♦ El número mínimo de casos fue fijado a 6 después de cierta experimentación
♦Las reglas simples de 1R se comportaron no mucho peor que los mucho más complejos árboles de decisión
●La simplicidad primero funciona!
La modelación estadística
“Opuesto” a 1R: usa todos los atributos Dos asunciones: Los atributos son
♦ igualmente importante
♦ estadísticamente independiente (dado el valor de la clase)
♦ es decir, sabiendo el valor de un atributo no dice nada sobre el valor de otro (si se sabe la clase)
La asunción de independencia nunca es correcta! Pero… este esquema trabaja bien en la práctica
Probabilidades para los datos del tiempo
Probabilidades para los datos del tiempo
La regla de Bayes
Probabilidad del acontecimiento H dada la evidencia E:
Probabilidad Apriori de H: P[H] ● La probabilidad del acontecimiento antes de que se considere
la evidencia.
Probabilidad Aposteriori de H: P[H|E] ● La probabilidad del acontecimiento después que la evidencia
se considera
Clasificación mediante Naïve Bayes
● El aprender de la clasificación: cual es la
probabilidad de la clase dada un caso?♦ Evidencia E = instancia
♦ Evento H = valor de la clase para una instancia
● Asunción de Naïve: la evidencia se parte en piezas (es decir atributos) que son independientes
Ejemplo de los datos del tiempo
Ejemplo de los datos del tiempo
Qué si un valor de un atributo no ocurre con cada valor de la clase? (por ejemplo. “Humidity = high” para la clase “yes”)♦ La probabilidad será cero!
♦ la probabilidad Aposteriori también será cero!
Remedio: agregue 1 a la cuenta para cada combinación valor-clase (el estimador de Laplace)
Resultado: ¡las probabilidades nunca serán cero! (también: estabiliza estimaciones de la probabilidad)
Valores ausentes
Entrenamiento: el caso no se incluye en la cuenta de la frecuencia para la combinación clase-valor del atributo
Clasificación: el atributo será omitido del cálculo ● Ejemplo:
Likelihood of “yes” = 3/ 9 × 3/ 9 × 3/ 9 × 9/ 14 = 0.0238
Likelihood of “no” = 1/ 5 × 4/ 5 × 3/ 5 × 5/ 14 = 0.0343
P(“yes”) = 0.0238 / (0.0238 + 0.0343) = 41%
P(“no”) = 0.0343 / (0.0238 + 0.0343) = 59%
Atributos Numéricos
Asunción general: los atributos tienen una distribución de probabilidad normal o Gaussiana (dada la clase)
La función de la densidad de la probabilidad para la distribución normal es definida por dos parámetros:
Estadística para los datos del tiempo
Valor de densidad del ejemplo:
Clasificar un nuevo día
Un nuevo día:
Likelihood of “yes” = 2/9 × 0.0340 × 0.0221 × 3/9 × 9/14 = 0.000036
Likelihood of “no” = 3/5 × 0.0221 × 0.0381 × 3/5 × 5/14 = 0.000108
P(“yes”) = 0.000036 / (0.000036 + 0. 000108) = 25%
P(“no”) = 0.000108 / (0.000036 + 0. 000108) = 75%
Los valores ausentes durante el entrenamiento no se incluyen en el cálculo de la media ni la desviación estándar
Densidades de la probabilidad
Relación entre la probabilidad y la densidad:
Pero: esto no cambia el cálculo de la probabilidades a posteriori porque los ε se cancelan
Naïve Bayes: discusión
Naïve Bayes trabaja asombrosamente bien (aunque la asunción de la independencia se viola claramente)
¿Por qué? Porque la clasificación no requiere estimaciones exactas de la probabilidad mientras sea máximo probabilidad se asigna a la clase correcta
No obstante, la adición de demasiados atributos redundantes causará problemas (por ejemplo atributos idénticos)
Note también que muchos atributos numéricos no se distribuyen normalmente (→ estimadores de densidad basados en kernel)
Construcción de árboles de decisión
Estrategia: top down A la manera de divida y conquiste repetido
♦ Primero: seleccione el atributo para el nodo raízCree una rama para cada valor posible del atributo
♦ Entonces: particionar los casos en subconjuntosUno para cada rama que extiende del nodo
♦ Finalmente: repita recurrentemente para cada rama, usando solamente los casos que alcanzan la rama
● Pare si todos los casos tienen la misma clase
¿Qué cualidad a seleccionar?
¿Qué cualidad a seleccionar?
Criterio para la selección del atributo
●¿Cuál es la mejor cualidad?♦ Se desea conseguir el árbol más pequeño♦ Heuristica: elija la cualidad que produce los nodos “más
puros”
● Criterio popular de la impureza: aumento de la información (Information gain)♦ Information gain aumento con la pureza media de los
subconjuntos
● Estrategia: elija el atributo que da el aumento más grande de la información
Cálculo de la Información
● La información se mide en bits ♦ Dado una distribución de la probabilidad, la informacion
requerida para predecir un acontecimiento es la entropía de la distribución
♦ La entropía da la información requerida en bits (puede implicar fracciones de bits!)
Fórmula para computar la entropía:
Ejemplo: el atributo Outlook
● Outlook = Sunny: info([2,3])=entropy(2/5,3/5)=−2/5log(2/5)−3/5log(3/5)=0.971bits ● Outlook = Overcast: info([4,0])=entropy (1,0)=−1log(1)−0log(0)=0bits
esto es normalmente indefinido.● Outlook = Rainy : info([2,3])=entropy(3/5,2/5)=−3/5log(3/5)−2/5log(2/5)=0.971bits ● Información esperada para el atributo: info([3,2],[4,0],[3,2])=(5/14)×0.971+(4/14) ×0+(5/14)×0.971=0.693bits
Cálculo de la ganancia de la información
● Information gain: información antes de particionar – información despues de particionar
gain(Outlook ) = info([9,5]) – info([2,3],[4,0],[3,2]) = 0.940 – 0.693 = 0.247 bits
● Information gain para los atributo de weather.arff: gain(Outlook ) = 0.247 bits gain(Temperature ) = 0.029 bits gain(Humidity ) = 0.152 bits gain(Windy ) = 0.048 bits
Continuación de la partición
gain(Temperature )=0.571 bitsgain(Humidity )=0.971 bitsgain(Windy )=0.020 bits
árbol de decisión final
Atributos altamente ramificados
Problemática: atributos con una gran cantidad de valores (caso extremo: ID code)
● Los subconjuntos son más probables a ser puros si hay una gran cantidad de valores– “Information gain” está predispuesta hacia
atributos con una gran cantidad de valores– Esto puede dar lugar a overfitting (selección de
un atributo que produce una predicción no óptima)
Árbol para el atributo “ID Code”
Entropía del corte: Info(ID code)=info([0,1])+info([0,1])+...+info([0,1])=0bits
Aumento de la información es máxima para el atributo “ID code” (0.940 bits)
Gain ratio
Gain ratio: una modificación del aumento de la información que reduce la influencia de atributos con múltiples valores.
Gain ratio toma en cuenta el numero y tamaño de las ramas en consideración al elegir un atributo ♦ Corrige el aumento de la información tomando la información
intrínseca de la partición bajo consideración
Discusión
● Inducción Top-down de árboles de decisión: ID3, algoritmo desarrollado por Ross Quinlan ♦ Radio de la ganancia es apenas una modificación de este
algoritmo básico♦ C4.5: trata con atributos numéricos, valores ausentes, datos
ruidosos Acercamiento similar: CART ¡Hay muchos otros criterios de selección del
atributo! (Solamente poca diferencia en la exactitud del resultado)
Modelos lineares: regresión lineal
Trabajan más naturalmente con atributos numéricos Técnica estándar para la predicción numérica
♦ El resultado es combinación linear de atributos
x=w0+w1a1+w2a2+...+wkak
Los pesos se calculan de los datos de entrenamiento
Valor predicho para el primer caso del entrenamiento a(1) w0a0
(1)+w1a1(1)+w2a2
(1)+...+wkak(1)=Σwjaj
(1)
(si se asume que cada caso se amplía con un atributo constante con valor 1)
Minimizar el error cuadrado
Elija k +1 coeficientes para reducir al mínimo el error cuadrado en los datos de entrenamiento
Error cuadrado: Σ(x(i) −Σwjaji)2
Derive los coeficientes usando operaciones estándares con matrices
Se puede hacer si hay más casos que atributos (en línea general)
La reducción al mínimo del error absoluto es más difícil
Clasificación
Cualquier técnica de regresión se puede utilizar para la clasificación ♦ Entrenamiento: realice una regresión para cada clase,
fijando la salida a 1 para los casos del entrenamiento que pertenecen a la clase, y 0 para los que no lo hagan
♦ Predicción: prediga la clase que corresponde al modelo con el valor más grande de la salida (membership value)
Para la regresión linear esto se conoce como regresión lineal multi-respuesta
Problema: valores de la salida no están en el intervalo [0.1], por lo que no son estimaciones apropiadas de probabilidad
Modelos lineales: regresión logística
Construye un modelo linear para una variable objetivo transformada
Asuma que tenemos dos clases La regresión logística substituye el objetivo:
por este otro:
Transformación Logit
Modelo que resulta:
Los parámetros se encuentran a partir de los datos de entrenamiento usando afinidad máxima
Afinidad Máxima
Puede utilizar logaritmos de probabilidades y maximizar el log de la afinidad del modelo:
Σ(1−x(i))log(1−Pr[1|a1(i), a2
(i),..., ak(i)]+
x(i)log Pr[1|a1(i) , a2
(i) ,..., ak(i)]
donde x(i) es cualquiera 0 o 1
● Los pesos wi se eligen de forma que se maximize el log de la afinidad
Múltiples clases
Puede realizar la regresión logística independientemente para cada clase (como la regresión linear multi-respuesta)
Problema: las estimaciones de la probabilidad para diversas clases no sumarán 1
Mejor: entrene a los modelos juntados maximizando la afinidad sobre todas las clases
Una alternativa que trabaja a menudo bien en la práctica: clasificación en parejas
Clasificación en parejas
Idea: construir el modelo para cada par de clases, usando solamente datos de entrenamiento de esas clases
¿Problema? Se tienen que solucionar k(k-1)/2 problemas de la clasificación para el problema de la clase de k
Resulta no ser un problema en muchos casos porque los conjuntos de entrenamiento llegan a ser pequeños: ♦ Asume datos distribuidos uniformemente, es decir 2n/k para
cada problema de aprendizaje de n instancias en total♦ Si se supone que el algoritmo de aprendizaje es linear en n
entonces el tiempo de clasificacion en parejas es proporcional a (k(k-1)/2) × (2n/k) = (k-1) n
Los modelos lineales son hiperplanos
● El límite de la decisión para la regresión logística de probelmas de dos clases es donde la probabilidad se hace 0.5:Pr[1|a1,a2, ...,ak ]=1/(1+exp(−w0−w1a1−...−wkak)=0.5
Lo que ocurre cuando −w0−w1a1−...−wkak =0
Así la regresión logística puede separar solamente los datos que se pueden separar por un hiperplano
Clasificadores basados en instancias
La función de distancia define qué se aprende. La mayoría de los esquemas basados en instancias utilizan la
distancia euclidiana:
a(1) y a(2): dos casos con k atributos
Tomar la raíz cuadrada no se requiere al comparar distancias Otra medida popular: medida de bloques de la ciudad
● Agrega diferencias sin elevarlas al cuadrado
Paradigma de aprendizaje perezoso
Se encuadran en el paradigma perezoso de aprendizaje, frente al voraz al que pertenecen los paradigmas anteriores • Perezoso: El trabajo se retrasa todo lo posible .No se construye
ningún modelo, el modelo es el propio conjunto de entrenamiento.
• Se trabaja cuando llega un nuevo caso a clasificar: Se buscan los casos más parecidos y la clasificación se construye en función de la clase a la que dichos casos pertenecen
• Los algoritmos más conocidos están basados en la regla del vecino más próximo
Normalización y otros asuntos
●Diversas cualidades se miden en diversas escalas necesidad de ser normalizado:
vi: el valor real del atributo i
● Atributos nominales: distancia de 0 o 1
● Política común para los valores ausentes: se asume distancia máxima (dado atributos normalizados)
Clasificación
La extensión a la regla del vecino más próximo, es considerar los k vecinos más próximos.
Funcionamiento: Dado e el ejemplo a clasificar 1. Seleccionar los k ejemplos con K = {e1,…, ek} tal que, no
existe ningún ejemplo e’ fuera de K con d(e,e’)<d(e,ei), i=1,…,k
2. Devolver la clase que más se repite en el conjunto {clase(e1), …, clase (ek)} (la clase mayoritaria)
Ejemplo
Por ejemplo, si k=7 el siguiente caso (?) se clasificaría como ●
Se podría tratar de forma diferente a los k-vecinos, p.e., dependiendo de la distancia al objeto a clasificar. De esta forma tendríamos: Clasificación
– Voto por la mayoría – Voto con pesos en función de la distancia
Características
El algoritmo k-NN es robusto frente al ruido cuando se utilizan valores de k moderados (k>1)
Es bastante eficaz, puesto que utiliza varias funciones lineales locales para aproximar la función objetivo
Es válido para clasificación y para predicción numérica (devolviendo la media o la media ponderada por la distancia)
La distancia entre vecinos podría estar dominada por variables irrelevantes • Selección previa de características
El algoritmo k-NN está disponible en WEKA bajo el nombre de ibk. Permite voto por mayoría o voto ponderado por la distancia (1/d y 1-d). No permite ponderar la variables
Encontrando a los vecinos más cercanos eficientemente.
● La manera más simple de encontrar al vecino más cercano: exploración linear de los datos ♦ La clasificación toma el tiempo proporcional al producto del
número de casos del entrenamiento y de la prueba Su complejidad temporal (para evaluar un ejemplo)
es O(dn2) siendo O(d) la complejidad de la distancia utilizada • Una forma de reducir esta complejidad es mediante el uso
de prototipos• Otra forma es hacer la busqueda más eficiente mediante las
estructuras de datos apropiadas: Arbole kD (kD-Tree)