Beruflich Dokumente
Kultur Dokumente
ndice
MINERA DE DATOS
INTRODUCCIN A LA MINERA DE DATOS TAREAS EN MINERA DE DATOS FASES EN MINERA DE DATOS TIPOS DE ALGORITMOS PARA PREDICCIN (CLASIFICACIN Y REGRESIN) EVALUACIN DEL CONOCIMIENTO MINADO SELECCIN DE ATRIBUTOS MINERA DE TEXTOS
Clasificacin Regresin
10
11
12
Ejemplo 2. Datos
Producto Televisor plano Video Nevera Microondas Discman ... Mes-12 20 11 50 3 14 ... ... ... ... ... ... ... ... Mes-4 52 43 61 21 27 ... Mes-3 14 32 14 27 2 ... Mes-2 139 26 5 1 25 ... Mes-1 74 59 28 49 12 ...
13
DVDs a vender
12 10 8 6 4 2 0 0 2 4 6 8 10 Y
Mes 12
14
15
.. ... .
...
...
...
...
...
...
...
. . .
16
Si paales=si, entonces leche=si (100%, 37%) Si At1=a y At2=b Entonces Atn=c, At4=D Precisin (confidence): veces que la regla es correcta Cobertura (support): frecuencia de ocurrencia de la regla en los datos
17
Precisin: Nmero de veces que Atn=c supuesto que At1=a y At2=b Ejemplo:
Si huevos=si, entonces aceite=si Nmero de veces que huevos=si y aceite=si: 2 Nmero de veces que huevos=si: 4 Precisin (aciertos) de la regla: 2/4 = 50%
18
Si huevos=si y aceite=si y paales=si entonces salmn=si Precisin: 1/1 = 100% Pero slo ocurre para un cliente (el octavo): 1/8 = 12% Si At1=a y At2=b Entonces Atn=c
Sea la regla:
Cobertura: nmero de datos que cumplen las dos condiciones At1=a, At2=b, dividido por nmero total de datos Representa el porcentaje de veces que ocurre la regla, lo til que es
19
20
Ejemplo 4. Datos
Id 1 2 3 4 5 .. . Sueldo 1000 2000 1500 3000 1000 ... Casado Si No Si Si Si ... Coche No Si Si Si Si ... Hijos 0 1 2 1 0 ... Alq/Pro p Alq Alq Prop Alq Prop Sindicado No Si Si No Si ... Bajas 7 3 5 15 1 ... Antiged Sexo ad 15 3 10 7 6 ... H M H M H ...
21
22
23
Representacin de clusters
Por sus centroides (ej: algoritmo k-medias) La pertenencia a un cluster puede ser probabilstica (ej: algoritmo EM)
25
Representacin de clusters
Jerrquica (ej: algoritmo cobweb)
Nota: las etiquetas filosofa, clsico, etc. aparecen slo a ttulo indicativo. El sistema simplemente detectara distintos grupos a distintos niveles
Analtica
Existencialista
Historica
Historica
Clasico
Moderno
26
Obtencin de patrones de uso fraudulento de tarjetas de crdito Prediccin de morosidad (prstamos) Anlisis de cesta de la compra Segmentacin de mercado
Anlisis de mercado:
Seguros y salud privada: determinacin de clientes potencialmente caros Educacin: deteccin de abandonos
27
Aplicaciones II
Medicina: diagnstico de enfermedades (ej: diagnstico de dolor abdominal) Ciencia:
Predecir si un compuesto qumico causa cncer Predecir si una persona puede tener potencialmente una enfermedad a partir de su DNA Clasificacin de cuerpos celestes (SKYCAT)
28
Aplicaciones III
Deteccin de spam (SpamAssassin, bayesiano) Web: asociar libros que compran usuarios en etiendas (amazon.com) Web: clasificacin automtica de pginas web para directorios Reconocimiento de caracteres, de voz. etc. Prediccin de la demanda elctrica, de gas, etc.
29
30
31
32
33
Sensory Homunculus
34
35
Sistema 10-20
El electro-encefalograma (EEG)
Cambios de potencial -> ondas electromagnticas (muy dbiles) Medicin: invasiva o no invasiva El aprendizaje se utiliza para decodificar las ondas (cada individuo tiene sus peculiaridades) Para hacer aprendizaje automtico es necesario convertir cada forma de onda en un conjunto de atributos que la caracterize (transformada de Fourier, PSD) Es til la banda de frecuencias entre 8Hz y 30Hz
37
38
39
El spellboard
40
41
Esquema de aprendizaje
OPERADOR
GUI SOCCERCLIENT
SOCCERSERVER
ENTRENADOR
FICHERO TRAZA
WEKA v. 3.2
AGENTE FINAL
REGLAS.C
42
GUI Soccerclient
43
Atributos a utilizar
CONO DE VISIN
Distancia_Contrario1 Vale_Contrario1 Distancia_Bola Distancia_SuPorteria Vale_SuPorteria Angulo_Bola Angulo_Contrario1 Angulo_SuPorteria Angulo Angulo_contrario2 Distancia_Contrario2 Vale_Contrario2
44
Acciones
Acciones Avanzar rpido: dash99 Avanzar lento: dash 60 Girar 10 Derecha: turn-right-10 Girar 10 Izquierda: turn-left-10 Tirar a puerta: kick99 Tiro corto: kick60
45
47
if ((Angulo_Bola > -37 )&&(Distancia_Bola > 1.2 ) &&(Angulo_Bola <= 24)) {dash99(memoria,puerto); break;} if ((Angulo_Bola > 19 )&&(Angulo_Bola <= 42 )&&(X <= 33.9477)) {dash99(memoria,puerto);break;} if ((Angulo_Bola > 11)) {turn10(memoria,puerto);break;} if ((Distancia_Bola <= 0.4 )&&(Angulo_Bola <= -20)) {turn10(memoria,puerto);break;}
48
49
50
Integracin y recopilacin
Almacenes de datos (data warehousing): repositorio de informacin obtenido de diversas fuentes (heterogneas), almacenada bajo un esquema unificado
51
Valores que no se ajustan al comportamiento general (outliers): eliminar o dejar Muestreo de datos Eliminar atributos redundantes o irrelevantes Reduccin/aumento dimensionalidad Calcular nuevos atributos que sean ms relevantes (area, poblacin -> densidad de poblacin, para predecir cantidad de daos en terremotos) Valores faltantes (missing values): rellenarlos Discretizacin, numerizacin, normalizacin,
Atributos:
52
Clase
Datos
103 104 105 ...
Mejorar la eficiencia de la herramienta de minera de datos Mejorar la calidad (precisin) del conocimiento obtenido Hacerlo a mano Utilizar herramientas de preproceso (ej: seleccin de atributos) Dejar que lo haga el algoritmo de minera de datos (peor solucin)
54
Posibilidades:
55
56
Dato a clasificar
Cielo Sol Tempe ratura 60 Humedad 65 Viento No Tenis ?????
Clasificador
Algoritmo MD
Clase = Si
57
58
59
Tipos de atributos
Nominales (discretos, categricos): cielo, viento Numricos: temperatura, humedad Hay atributos numricos que son realmente nominales (ej: DNI) Hay atributos nominales que son realmente numricos (ej: edad con valores nio, joven, adulto, mayor).
60
61
@data Sol, 85, 85, no, no Sol, 80, 90, si, no Nublado, 81, 86, no, si Lluvia, 70, 96, no, si ...
62
Formato Arff
@relation tiempo @attribute cielo {sol, nubes, lluvia} @attribute temperatura numeric @attribute humedad numeric @attribute viento {si, no} @attribute tenis {si, no} @data Sol, 85, 85, no, no Sol, 80, 90, si, no Nublado, 81, 86, no, si Lluvia, 70, 96, no, si
63
rboles de decisin: ID3, C4.5 (J48), ... Reglas: PART, CN2, AQ, ... Para regresin: linear regresson, neural networks Para clasificacin: simple logistics, support vector machines (SMO)
Funciones:
rboles de regresin: LMT (M5), ... Tcnicas perezosas. Para clasificacin y regresin
IB1, IBK, ... Naive Bayes Boosting, Bagging, Stacking, Random Forests
64
Lineales: la frontera es una lnea (en dos dimensiones) o un hiperplano (en N-dimensiones) No lineales: cualquier otro tipo de frontera
Caso de que hablemos de regresores, el objetivo en este caso es aprender una funcin y tambin encontramos los tipos lineal y no lineal
rboles de decisin: ID3, C4.5 (J48), ... Reglas: PART, CN2, AQ, ...
Cielo Nubes SI Si NO
Lluvia Viento No SI
67
68
69
2. Si no, elegir el mejor atributo para poner en ese nodo (el que minimice la entropa media) 3. Crear de manera recursiva tantos subrboles como posibles valores tenga el atributo seleccionado
Todos los ejemplos pertenecen a la misma clase Si no quedan ejemplos o atributos Si no se espera que se produzcan mejoras continuando la subdivisin
2. Si no, elegir el mejor atributo para poner en ese nodo (el que minimice la entropa media) 3. Crear de manera recursiva tantos subrboles como posibles valores tenga el atributo seleccionado
Viento? No
Cielo Nubes
V No Si Si No Ten Si Si Si Si
Lluvia
C Lluvia Lluvia Lluvia Lluvia Lluvia T 70 68 75 65 71 H 96 80 80 70 91 V No No No Si Si Ten No Si Si No No
3 No, 2 Si Tendencia al no
3 No, 2 Si Tendencia al no
p log ( p
Ci 2
2 si no 2
Ci
H(P) = ( p log( p ) + p
si
log( p ))
no
no
= (1 p )
si
3 No, 2 Si: H=-((3/5)*log2(3/5)+(2/5)*log2 (2/5) = 0.97 0 No, 4 Si: H=-((0/4)*log2 (0/4)+1*log2 (1))=0 3 No, 2 Si: H=-((3/5)*log2 (3/5)+(2/5)*log2 (2/5))= 0.97
Y si el atributo es contnuo?
Hay que partir por el valor X, donde sea mas conveniente, minimizando la entropa Temperatura
Nota: solo hemos probado algunas de las posibles particiones, entre las que se encuentra la mejor
X<=70
<=X
>X
64 Si, 65 No, 68 Si, 69 Si, 70 Si, 71 No, 72 No Si, 75 Si Si, 80 No, 81 Si, 83 Si, 85 - No
1 No, 4 Si 3 No, 5 Si
4 No, 5 Si
HP = 0.89
64 Si, 65 No, 68 Si, 69 Si, 70 Si, 71 No, 72 No Si, 75 Si Si, 80 No, 81 Si, 83 Si, 85 - No
2 No, 4 Si
HP = 0.93
64 Si, 65 No, 68 Si, 69 Si, 70 Si, 71 No, 72 No Si, 75 Si Si, 80 No, 81 Si, 83 Si, 85 - No
3 No, 7 Si
2 No, 2 Si HP = 0.91
Caso de humedad
Humedad <=75
0 No, 4 Si
> 75
5 No, 4 Si
65-Si, 70-No Si Si, 75Si, 80-Si Si, 85-No, 86-Si, 90-No Si, 91-No, 95-No, 96-Si,
1 No, 6 Si
4 No, 3 Si
HP = 0.79
Cielo Nubes
0 No, 4 Si
> 75
HP = 0.89 Viento Si
3 No, 3 Si
>X
4 No, 5 Si
No
2 No, 6 Si
Sol
C T H V Ten
Lluvia
3 No, 2 Si
0 No, 4 Si
3 No, 2 Si
Cielo Nubes
Lluvia
> 75
H V Ten No No
Aqu no es necesario seguir subdividiendo porque todos los datos son de la misma clase
Cielo Nubes
Lluvia
> 75 NO > 70
H 95 V No Ten No
Cielo Nubes
Lluvia
Cielo Nubes SI Si NO
Lluvia Viento No SI
NO
SI
SOL
NUBES
LLUVIA
Cielo
88
89
Funciones:
Para regresin: linear regresson, neural networks Para clasificacin: simple logistics, support vector machines (SMO)
X 0 1 2 3 4 5 6 7 8 9 10
Y 0 1,3 1,8 2,5 4,3 5,5 6,1 6,5 8,2 8,8 10,5
91
92
93
Funciones:
Para regresin: linear regresson, neural networks Para clasificacin: simple logistics, support vector machines (SMO)
La salida de las funciones es numrica. Basta con poner un lmite. Si lo supera se predice como positivo y si no, como negativo.
IF F(X1, X2, X3, ...) > 0.5 THEN Clase = Si ELSE Clase = No
95
96
97
rboles de regresin:
rboles de decisin: ID3, C4.5 (J48), ... Reglas: PART, CN2, AQ, ... Para regresin: linear regresson, neural networks Para clasificacin: simple logistics, support vector machines (SMO)
Funciones:
rboles de regresin: LMT (M5), ... Tcnicas perezosas. Para clasificacin y regresin
IB1, IBK, ... Naive Bayes Boosting, Bagging, Stacking, Random Forests
103
rboles de regresin
Y si tenemos atributos nominales y numricos y queremos predecir cantidades numricas (regresin)? Usar rboles de regresin: tienen funciones (regresin lineal) en las hojas
104
Inform tic o Si Si Si Si Si Si Si No No No No No No No
E dad 20 25 30 35 40 45 50 20 25 30 35 40 45 50
S alario 2000 2500 3000 3500 4000 4500 5000 2000 2050 2100 2150 2200 2250 2300
6 00 00 5 00 00 4 00 00 3 00 00 2 00 00 1 00 00 0 0 20 40 60 S a la rio S a la rio No
105
Informtico Si No
Salario = 2000+(edad-20)*100
Salario = 2000+(edad-20)*10
106
Algoritmo LMT
107
Altura
Altura
Altura
Altura
114
115
Naive Bayes
117
Esto implica que el que haga sol es independiente de la humedad (lo que no es cierto, pero suele funcionar) En suma, que podemos calcular Pr(si/...) a partir de:
pr(cielo = sol/si) = numero de das soleados y buenos para el tenis dividido por el nmero de das buenos para el tenis pr(humedad = alta /si) pr(viento = si /si) pr(si) = nmero de das buenos para el tenis dividido por el nmero de das totales
118
Datos de entrada
Da 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Cielo Soleado Soleado Nublado Lluvioso Lluvioso Lluvioso Nublado Soleado Soleado Lluvioso Soleado Nublado Nublado Lluvioso Temperatura Caliente Caliente Caliente Templado Frio Frio Frio Templado Frio Templado Templado Templado Caliente Templado Humedad Alta Alta Alta Alta Normal Normal Normal Alta Normal Normal Normal Alta Normal Alta Viento No Si No No No Si Si No No No Si Si No Si Tenis No No Si Si Si No Si No Si Si Si Si Si No
119
P(Temp/Tenis)
Tempera tura Caliente Si 2/9 No 2/5
P(Hum/Tenis)
Humedad Alta Normal Si 3/9 6/9 No 4/5 1/5
P(Tenis)
Tenis Si 9/14 No 5/14
Pr(si / sol, fro, alta, si) ~ 2/9 * 3/9 * 3/9 * 3/9 * 9/14 = 0.0053 Pr(no / sol, fro, alta, si) ~ 3/5 * 1/5 * 4/5 * 3/5 * 5/14 = 0.0206
Pr (si / ...) = 0.0053 / (0.0053+ 0.0206) = 20.5% Pr (no / ...) = 0.0206 / (0.0053+ 0.0206) = 79.5%
121
122
123
124
Bagging: construye varios modelos con el mismo algoritmo (varios rboles de decisin, por ejemplo) y cuando llega un dato de test, la clase se decide por votacin. Menos sensible al ruido. Boosting: construye varios modelos de manera secuencial, cada uno se centra en los datos que el anterior clasificaba mal. Funciona muy bien, pero es sensible al ruido en los datos. Stacking: usa la salida de clasificadores heterogneos y un metaclasificador Random Forests: Crea un ensemble de varios rboles de decisin
126
Inestables: redes de neuronas, rboles de decisin, rboles de regresin, decision stumps (rboles con un solo nodo), Estables: vecino ms cercano (IB1, IBK, )
Solucin: generar muchos conjuntos de entrenamiento y entrenar con cada uno de ellos un clasificador. La clase del clasificador agregado se decidir por votacin Los diferentes conjuntos de entrenamiento se generan a partir del conjunto de entrenamiento original por medio de muestreo aleatorio.
Randomization
Nota: tambin se pueden crear conjuntos de clasificadores generando distintos clasificadores a partir del mismo conjunto de entrenamiento, mediante randomizacin Ej: en J49 (C4.5) siempre se elige el mejor atributo para cada nodo. En lugar de eso, elegir para cada nodo un atributo elegido aleatoriamente de entre los 5 mejores. Cada vez que ejecutemos J48, se crear un clasificador distinto, incluso partiendo de los mismos datos
Nmero de clasificadores
Porqu funciona?
Supongamos que hay 25 clasificadores Cada clasificador tiene un error =0.35 Si los errores de los clasificadores son independientes o no correlacionados (es decir, si no se equivocan a la vez) El error del clasificador conjunto ser:
Adaboost (boosting)
Al igual que Bagging, Boosting se basa en entrenar varios clasificadores con distintas muestras de entrenamiento Pero en Boosting, las muestras se construyen de manera secuencial Los datos de entrenamiento son una lista de tuplas {(x1,y1), , (xa,ya), , (xd,yd)} Cada dato tiene un peso wa, inicialmente todos wa=1/d Los pesos se irn adaptando, de manera que los datos difciles tendrn mas peso y los ms fciles, menos Los pesos se pueden utilizar mediante remuestreo, o bien hay algoritmos (como J48 o NN) que pueden utilizar directamente datos con pesos
Adaboost (boosting)
1. 2. 3. Inicialmente, todos los datos de entrenamiento tienen el mismo peso (wa=1/d) Construye un clasificador h0 (con, por ejemplo, C4.5). Su error es e0 Repite mientras 0<ei<0.5 1. Observa en que datos falla hi-1 2. Construye un nuevo conjunto de entrenamiento, dndole mas importancia a los datos fallidos: 1. Si hi-1 clasifica mal el dato (xa,ya), aumenta el peso wa =wa* ei-1/(1-ei-1) 2. Si hi-1 clasifica bien el dato (xa,ya), decrementa el peso wa=wa* (1-ei-1)/ei-1 3. Construye un nuevo clasificador hi con los nuevos datos. Su error es ei ((calculado sobre la muestra con pesos)
El clasificador final f es una combinacin de todos los hi.. Los coeficientes alfa dependen de lo preciso que sea el clasificador hi (de su porcentaje de aciertos)
Nota: hi tiene que devolver un valor +1 o -1 (clase positiva o negativa en problemas biclase), o un valor intermedio.
Iteraciones de Adaboost
Problemas de Boosting
Si los datos tienen ruido, Boosting se puede sobreadaptar al ruido
Random Forests
Es Bagging con rboles de decisin (por ejemplo, creados con J48) Pero en cada nodo se pone, no el mejor atributo, sino:
El mejor de un subconjunto aleatorio de m atributos Un atributo elegido aleatoriamente de entre los m mejores Humedad? Cielo? Sol Lluvia Cielo Nubes <=X> X Sol Lluvia Nubes Humedad SI Viento Temperatura? Viento? <=75 > 75 Si No SI NO NO SI <=X> X Si No
Random Forests
Slo dos parmetros: nmero k de rboles en el ensemble y nmero m de atributos para ser tenidos en cuenta en cada creacin de nodo Alta precisin y menos sensible al ruido que Boosting
Nombres de algoritmos
rboles de decisin y reglas. Para clasificacin
rboles de decisin: ID3, C4.5 (J48), ... Reglas: PART, ... Para regresin: linear regresson, neural networks Para clasificacin: simple logistics, support vector machines (SMO)
Funciones:
rboles de regresin: LMT (M5), ... Tcnicas perezosas. Para clasificacin y regresin
IB1, IBK, Locally weighted regression, Naive Bayes AdaboostM1, Bagging, Stacking, StackingC, Random Forests
141
142
Ejemplo de sesgo: Sea un problema para determinar qu tipo de personas compran aparatos de DVD. Puede ocurrir por casualidad que en los datos de entrenamiento aparezcan muchas mas mujeres que hombres. El sistema creer que hay una correlacin entre el sexo y la clase.
143
144
Particiones estratificadas
Es conveniente que las particiones sean estratificadas La proporcin entre las clases que existe en el conjunto de datos original, se intenta mantener en los conjuntos de entrenamiento y test Ejemplo: si en el conjunto original un 65% de los datos pertenecen a la clase positiva, la estratificacin intentar que esa proporcin se mantenga en entrenamiento y test
145
Aprender con A, B y test con C (T1 = % aciertos con C) Aprender con A, C y test con B (T2 = % aciertos con B) Aprender con B, C y test con A (T3 = % aciertos con A) % aciertos esperado T = (T1+T2+T3)/3
El clasificador final CF se construye con todos los datos (los tres conjuntos A, B y C). Se supone que T es una estimacin del porcentaje de aciertos de CF Se suele utilizar k=10
147
Leave-one-out
Es una validacin cruzada con k = nmero de datos de entrenamiento Si hay n datos de entrenamiento, repetir k=n veces:
Reservar el dato nmero n para test Entrenar con los n-1 datos restantes Hacer el test con el dato n (el resultado slo puede ser acierto o fallo) (aciertos/n)*100
Es preciso porque se usan casi todos los datos para entrenar, y a la vez todos los datos figuran como test en alguno de los ciclos Pero es costoso en tiempo (hay que lanzar el algoritmo de aprendizaje n veces)
Mtodos de evaluacin: conjunto de entrenamiento, conjunto de test, validacin cruzada, particin del conjunto de entrenamiento
150
En problemas de clasificacin, si tenemos una clase con muchos ms datos que otra, el porcentaje de aciertos a superar es el porcentaje de datos de la clase mayoritaria Ej: Sean dos clases (+ y -). Hay 90 datos + y 10 -. Un clasificador
que prediga siempre + (independientemente de los atributos), ya acertar en un 90%. Hay que hacerlo mejor que eso.
151
El porcentaje de aciertos es
(TP+TN)/(TP+TN+FN+FP)
Clasificado Clasificado como + como Dato realmente + Dato realmente TP (true positive) FP (false positive) FN (false negative) TN (true negative)
De entre todos los datos positivos, cuantos clasificamos correctamente. Mide lo bien que acertamos en la clase +
153
Notese tambin que en los datos hay 100 personas con cncer y 100 personas sin cncer (sumar las lneas horizontales)
154
155
156
Visualizacin de resultados: % de aciertos, % de aciertos por clase (true positive), matriz de confusin
EN PROBLEMAS DE CLASIFICACIN
Clase como
Si no FN 2 TN 2
157
Clase real
Si no
TP 7 FP 3
EN PROBLEMAS DE REGRESIN
158
160
Idea de sobreadaptacin
Supongamos que se trata de un problema de regresin y los datos estn distribuidos segn una parbola, pero hay algo de ruido Es decir, el modelo subyacente es una parbola, pero los datos muestran ligeras variaciones (ruido)
161
Sobreadaptacin/subadaptacin
Derecha: el modelo se ha sobreadaptado al ruido porque es demasiado complejo Izquierda: el modelo lineal g(x) es demasiado simple para aproximar una parbola y subadapta los datos Conclusin: tiene que haber un equilibrio en la complejidad del clasificador (o del modelo en general)
162
Sobreadaptacin/subadaptacin
En general un algoritmo de aprendizaje va a generar clasificadores o regresores de determinada complejidad. Tenemos cierto control sobre la complejidad de los predictores mediante parmetros del algoritmo:
Redes de neuronas: nmero de neuronas ocultas Polinomios: grado del polinomio rboles de decisin: nmero de nodos
Tenemos que acertar con la complejidad apropiada: probar distintos valores del parmetro Afortunadamente, en muchas ocasiones el valor por omisin del parmetro nos va a proporcionar buenos resultados
Cielo Nubes SI Si NO
Lluvia Viento No SI
165
166
167
Sobreadaptacin. Resumen
Factores que influyen: ruido, nmero de datos y complejidad del clasificador Ej: si hay pocos datos y permitimos gran complejidad al clasificador (que crezca mucho) habr sobreadaptacin (memorizacin) Ej: si hay ruido en los datos y permitimos gran complejidad al clasificador, se sobreadaptar al ruido Ej: pero si la complejidad del clasificador es insuficiente, habr subadaptacin
168
Existen 2^8=256 funciones binarias distintas Supongamos que le damos a aprender cada una de ellas al J48 Sea %i los aciertos de J48 con la funcin binaria i (%1+ %2 + ... + %256)/256= ??
Supongamos que le planteamos a un algoritmo de minera de datos la funcin binaria OR Los datos en negrita son los de entrenamiento Supongamos que las predicciones dadas por el algoritmo de minera de datos acierta un P% con el resto de los datos (aparecen subrayados)
Si ahora le planteamos al algoritmo otra funcin binaria (FBIN), el porcentaje de aciertos sera 100-P% Es decir, donde se acertaba en OR, se falla en FBIN En media: (100-P%+P%)/2 = 50%
172
173
Espiral
40 30 20 10 0 -40 -30 -20 -10 -10 -20 -30 -40
174
Imposible aprender a separar dos espirales con reglas o rboles de decisin, aunque ib1 lo hace relativamente bien
Serie1 0 10 20 30 40 Serie2
Paridad par
A1 0 0 0 0 1 1 1 1 A2 0 0 1 1 0 0 1 1 A3 0 1 0 1 0 1 0 1 PAR? SI NO NO SI NO SI SI NO 175
Ningn sistema es capaz de aprender la regularidad nmero par de 1s porque su lenguaje de representacin no lo permite
Desordenar los datos de entrenamiento Calcular Pi de validacin cruzada (de por ejemplo, 10 folds)
Realizar test estadstico (t-test) para ver si las diferencias son significativas. Si la varianza es pequea es ms fcil que la diferencia sea significativa
SELECCIN DE ATRIBUTOS
183
Seleccin de atributos
Algunos atributos pueden ser redundantes (como salario y categora social) y hacen ms lento el proceso de aprendizaje Otros son irrelevantes (como el DNI para predecir si una persona va a devolver un crdito) En ocasiones el exceso de atributos puede llevar a sobreaprendizaje, pues incrementa la complejidad del modelo (sobre todo si hay pocos datos) En ocasiones es til tener el conocimiento de qu atributos son relevantes para una tarea Existen algoritmos de seleccin de atributos
184
Sea un problema de clasificacin de textos en dos clases informtica y filosofa Sean los atributos booleanos inteligencia y artificial, que son ciertos si esas palabras aparecen en el texto y falsos en caso contrario Por separado no permiten distinguir entre informtica y filosofa:
IF inteligencia=si THEN ?; IF artificial=si THEN ?
Pero juntos s:
IF inteligencia=si Y artificial=si THEN informtica
Por tanto, el objetivo ltimo de la seleccin de atributos es encontrar el subconjunto mnimo de atributos que hace ptima la prediccin
185
186
CfsSubsetEval: se evalan los atributos de manera separada, pero hay cierta evaluacin conjunta SubsetEval: se evalan realmente de manera conjunta
La anterior es la nomenclatura usada en Weka, pero tradicionalmente a los mtodos se los divide en dos tipos:
Filter: los atributos se evalan de manera independientemente. Esto incluira a los mtodos Ranker y (hasta cierto punto) CfsSubsetEval de Weka Wrapper: los atributos se evalan de manera conjunta. Esto incluira a todos los mtodos subsetEval de Weka y principalmente a ClassifierSubsetEval y Wrapper
187
No detecta atributos redundantes En ocasiones no tiene sentido evaluar a los atributos por separado, sino en conjunto. Ej: las aparicin de las palabras inteligencia y artificial no est excesivamente correlacionado por separado con textos de informtica, pero juntas su correlacin se incrementa notablemente
189
P(Temp/Tenis)
Tempera tura Caliente Si 2/9 No 2/5
P(Hum/Tenis)
Humedad Alta Normal Si 3/9 6/9 No 4/5 1/5
Tenis
Si 9/14
No 5/14
Pr(si / sol, caliente, alta, si) ~ 2/9 * 2/9 * 3/9 * 3/9 * 9/14 Pr(no / sol, caliente, alta, si) ~ 3/5 * 2/5 * 4/5 * 3/5 * 5/14
Supongamos que Cielo y Temperatura estn correlacionados. El mismo atributo contara dos veces
190
Tipos:
CfsSubsetEval SubsetEval
53,0 94,5 53,2
51,0
51,0
191
La media de las correlaciones (o similar) de cada atributo con la clase Descontando puntos por redundancias entre atributos
Mtodo rpido Problemas: elimina atributos redundantes, pero como Ranker, puede eliminar atributos que por si solos no estn correlacionados con la clase, pero con otro atributo si que lo estn (ej: inteligencia artificial)
192
194
Seleccin de atributos
Mtodo evaluacin de subconjuntos de atributos
197
Evaluadores de subconjuntos
CfsSubsetEval : rpidos CfsSubsetEval: considera el valor predictivo (correlacin) de cada atributo y de su redundancia SubsetEval: ms lentos ClassifierSubsetEval: usa un clasificador para evaluar el conjunto WrapperSubsetEval: classificador + validacin cruzada
198
Mtodos de bsqueda
BestFirst: Mejor primero (lento) ExhaustiveSearch: Bsqueda exhaustiva (muy lento) GeneticSearch: Bsqueda gentica (rpido) GreedyStepWise: Escalada (muy rpido) RankSearch: Primero ordena los atributos y despus construye el subconjunto de manera incremental, en direccin del mejor al peor, hasta que no merece la pena aadir nuevos atributos (rpido)
199
Seleccin Ranker
200
201
Seleccin Filter
Subconjunto seleccionado
202
Seleccin Filter con validacin cruzada Nmero de folds en que el atributo fue
seleccionado
203
204
205
Subconjunto seleccionado
206
Mtodo Wrapper
207
Usaremos PART como clasificador Usaremos el conjunto de entrenamiento para calcular los aciertos
208
Subconjunto seleccionado
209
210
Resultados PCA
211
212
213
214
215
Resultados de la seleccin
Atributos seleccionados
217
218
MINERA DE TEXTOS
Minera de Textos
Se trata de realizar tareas de minera de datos, donde los datos son textos (pginas web, peridicos, ) Un texto es un dato Pero no est representado como una lista de valores para ciertos atributos Por tanto, habr que convertir cada texto a una represenacin de atributos/valores
Cdigos html innecesarios (<body>, <p>, <href ...>, etc.) Nmeros Signos de puntuacin Palabras con poca semntica (artculos, preposiciones, conjunciones, ...): stopwords (buscar en google spanish stopwords)
Bolsas de palabras
Un texto se representa como un vector con tantos componentes como palabras haya en el texto. Cada componente contiene la frecuencia de la palabra en el texto Ignora el orden de aparicin de las palabras Ejemplo: En un agujero en el suelo viva un Hobbit. No un agujero hmedo, sucio, repugnante, con restos de gusanos y olor a fango, era un agujero Hobbit ...
EN A1 2 UN A2 4 AGUJERO A3 3 EL A4 1 SUELO A5 1 HOBBIT A6 2 ... ... ...
N-gramas
En ocasiones, los atributos relevantes son secuencias de palabras.
Ej: computer science, source code, inteligencia artificial, minera de datos, ...
N-gramas: como bag of words, pero los atributos son todas las tuplas de palabras de longitud n Ejemplo (bigramas)
EN-UN A1 1 UN-AGUJERO A2 2 AGUJEROEN A3 1 EN-EL A4 1 EL-SUELO A5 1 NO-UN A6 1 ... ... ...
N-gramas
Problema: hay demasiados (todas las combinaciones posibles de dos palabras) Los bigramas funcionan bien en algunos problemas pero mal en otros (ej: en zoologa es suficiente con unigramas)
Frases
Considera el documento como un conjunto de frases sintcticas Permite mantener el contexto de las palabras Ej: a cada palabra, se le aade la informacin de qu papel juega en la frase, gramaticalmente (nombre, adjetivo, verbo, ) o sintcticamente (sujeto, predicado, objeto directo, ).
Categoras de conceptos
Considera slo la raz morfolgica (stem) de las palabras Ejemplo: informacin, informando, informador, ... Se representan como inform Reduce la dimensionalidad del bag of words Problemas: informal e informar se pueden confundir
Reduccin de dimensionalidad
Eliminacin de palabras muy muy poco frecuentes Eliminacin de palabras muy frecuentes (suelen ser las stopwords: el, la, que, y, ...) Se pueden utilizar tcnicas de seleccin de atributos tpicas de minera de datos Se suele utilizar Indexacin Semntica Latente (LSI), que es una tcnica de proyeccin a espacios de dimensionalidad menor, similar a anlisis de componentes principales (tcnica existente en Weka: PCA) LSI tambin reduce los problemas de sinonimia y polisemia
Y los ordena. Nos podemos quedar con los M primeros mas relevantes (que expliquen, por ejemplo, el 90% de la varianza) Hay un mtodo Weka de seleccin de atributos mediante PCA
tf ij
ij kj
n
k j
nij es el nmero de veces que la palabra i aparece en el documento j. El sumatorio suma las cuentas de todas las palabras en el documento j
tfidf ij
= xij log( ) DF i
tf
O bien
tfidf ij
1+ D = xij log( ) DF i
tf
|D| es el nmero de documentos y DFi es el nmero de documentos en los que aparece la palabra i La idea es premiar aquellas palabras que aparecen en pocos documentos (|D| >> DFi), porque se supone que son las mas discriminativas
Uso de Naive Bayes para clasificar artculos en grupos de News (20 newsgroups). Conjunto de entrenamiento: 1000 artculos. Precisin obtenida: 89% Newsweeder: clasificacin de artculos de news en interesantes y no interesantes (etiquetados por el usuario). Filtros de spam: clasificadores bayesianos de emails en spam y no-spam (ej: spamassassin)