Está en la página 1de 240

Introduccin al Aprendizaje

Automtico y a la Minera de Datos


con Weka
HERRAMIENTAS DE LA INTELIGENCIA
ARTIFICIAL
INGENIERA INFORMTICA

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

INTRODUCCIN A LA MINERA DE DATOS

SKYCAT: Clasificacin automtica de


objetos del firmamento

Minera de Datos. Justificacin


Nuevas posibilidades: disponibilidad de
grandes cantidades de datos (bancos, la
web, tarjetas fidelizacin, ...), potencia de
cmputo
Nuevas necesidades: Es complicado analizar
los datos de manera manual. Necesidad de
tcnicas automticas: resmenes (BBDD),
inferencias (estadstica, aprendizaje
automtico)

Minera de Datos. Objetivos


Convertir datos en conocimiento para tomar
decisiones
Es importante la inteligibilidad del
conocimiento obtenido (los modelos
estadsticos no son siempre sencillos de
entender)
MD = BBDD + estadstica + aprendizaje
automtico

TAREAS EN MINERA DE DATOS

Minera de Datos. Tareas


Prediccin:

Clasificacin
Regresin

Asociacin
Agrupacin (clustering)

Ejemplo1. Crditos bancarios (clasificacin)


Un banco por Internet desea obtener reglas
para predecir qu personas de las que
solicitan un crdito no van a devolverlo.
La entidad bancaria cuenta con una gran
base de datos correspondientes a los
crditos concedidos (o no) a otros clientes
con anterioridad.

Ejemplo1. Datos (instancias, patrones, )


IDC

Aos

Euros

Salario

Casa
propia

Cuentas
morosas

...

Devuelve el
crdito

101

15

60000

2200 Si

...

No

102

30000

3500 Si

...

Si

103

9000

1700 Si

...

No

104

15

18000

1900 No

...

Si

105

10

24000

2100 No

...

No

...

...

...

...

...

...

...

10

Ejemplo 1. Conocimiento obtenido


SI (cuentas-morosas > 0) ENTONCES Devuelvecrdito = no
SI (cuentas-morosas = 0) Y ((salario > 2500) O
(aos > 10)) ENTONCES devuelve-crdito = si

11

Ejemplo 2. Determinar las ventas de


un producto (Regresin)
Una gran cadena de tiendas de
electrodomsticos desea optimizar el
funcionamiento de su almacn manteniendo
un stock de cada producto suficiente para
poder servir rpidamente el material
adquirido por sus clientes.

12

Ejemplo 2. Datos
Producto

Mes-12

...

Mes-4

Mes-3

Mes-2

Mes-1

Televisor
plano

20

...

52

14

139

74

Video

11

...

43

32

26

59

Nevera

50

...

61

14

28

Microondas

...

21

27

49

Discman

14

...

27

25

12

...

...

...

...

...

...

...

13

Ejemplo 2. Conocimiento obtenido


Modelo que prediga lo que se va a vender
cada mes a partir de lo que se vendi en los
meses anteriores (serie temporal)
Y

DVDs a vender
12
10
8
6

4
2
0
0

10

Mes 12

14

Ejemplo 3. Anlisis de la cesta de la


compra (Asociacin)
Un supermercado quiere obtener
informacin sobre el comportamiento de
compra de sus clientes.
Se piensa que de esta manera se puede
mejorar el servicio, colocando ciertos
productos juntos, etc.

15

Ejemplo 3. Datos de las cestas


Id

Huevos

Aceite

Paales

Vino

Leche

Manteq
uilla

Salmn

Lechugas

...

Si

No

No

Si

No

Si

Si

Si

...

No

Si

No

No

Si

No

No

Si

...

No

No

Si

No

Si

No

No

No

...

No

Si

Si

No

Si

No

No

No

...

Si

Si

No

No

No

Si

No

Si

...

Si

No

No

Si

Si

Si

Si

No

...

No

No

No

No

No

No

No

No

...

Si

Si

Si

Si

Si

Si

Si

No

...

...

...

...

...

...

...

...

.
.
.

.. ...
.

16

Ejemplo 3. Conocimiento obtenido


Reglas Si At1=a y At2=b y ... Entonces Atn=c

Si paales=si, entonces leche=si (100%, 37%)

Las reglas tambin pueden ser:

Si At1=a y At2=b Entonces Atn=c, At4=D

(a,b) = (precisin, cobertura)

Precisin (confidence): veces que la regla es


correcta
Cobertura (support): frecuencia de ocurrencia
de la regla en los datos

17

Ejemplo 3. Precisin (confidence)


Sea la regla:

Si At1=a y At2=b Entonces Atn=c

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

Ejemplo 3. Cobertura (support)


Una regla puede ser muy precisa (100%), pero ocurrir
muy poco y ser poco relevante
Ejemplo:

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%

Sea la regla:

Si At1=a y At2=b Entonces Atn=c

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

Ejemplo 4. Agrupacin de empleados


(clustering)
El departamento de RRHH de una empresa
desea categorizar a sus empleados en
distintos grupos con el objetivo de entender
mejor su comportamiento y tratarlos de
manera adecuada

20

Ejemplo 4. Datos
Id

Sueldo

Casado

Coche

Hijos

Alq/Pro
p

Sindicado

Bajas

Antiged Sexo
ad

1000

Si

No

Alq

No

15

2000

No

Si

Alq

Si

1500

Si

Si

Prop

Si

10

3000

Si

Si

Alq

No

15

1000

Si

Si

Prop

Si

..
.

...

...

...

...

...

...

...

...

21

Ejemplo 4. Conocimiento obtenido


GRUPO 1

GRUPO 2

GRUPO 3

Sueldo

1535

1428

1233

Casado (No/Si)

77%/22%

98%/2%

0%/100%

Coche

82%/18%

1%/99%

5%/95%

Hijos

0.05

0.3

2.3

Alq/Prop

99%/1%

75%/25%

17%/83%

Sindicado

80%/20%

0%/100%

67%/33%

Bajas

8.3

2.3

5.1

Antigedad

8.7

8.1

Sexo (H/M)

61%/39%

25%/75%

83%/17%

22

Ejemplo 4. Conocimiento obtenido


Grupo 1: sin hijos y con vivienda de alquiler.
Poco sindicados. Muchas bajas
Grupo 2: sin hijos y con coche. Muy
sindicados. Pocas bajas. Normalmente son
mujeres y viven en alquiler
Grupo 3: con hijos, casados y con coche.
Mayoritariamente hombres propietarios.
Poco sindicados.

23

Idea general de agrupacin


Detectar agrupaciones naturales en los datos
Agrupacin (o clustering) = aprendizaje no
supervisado: se parte de una tabla, como en
clasificacin, pero sin la clase
Y: Long.
media
frases

Ejemplo: clustering de
libros. 2 grupos:
* Palabras y frases largas
(filosofa?)
* Palabras y frases cortas
(novela?)
X: Longitud media de palabras

24

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

Libros
Filosofa

Analtica

Teatro

Existencialista

Clasico

Novela

Historica

Historica

Moderno
26

Aplicaciones de Minera de Datos


(tcnica de carcter horizontal)
Financieras y banca

Obtencin de patrones de uso fraudulento de


tarjetas de crdito
Prediccin de morosidad (prstamos)

Anlisis de mercado:

Anlisis de cesta de la compra


Segmentacin 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

El Brain Computer Interface (BCI)


Objetivo: comunicar personas con
ordenadores mediante el pensamiento
Ayudar a personas inmovilizadas
Existen otros mtodos (movimiento de los
ojos, nervios, etc.)

30

Neuronas (interruptor 0/1)

31

El cerebro (red de billones de


neuronas)

32

reas funcionales del cerebro

33

Sensory Homunculus

34

Electrodos del BCI

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

Aplicaciones del EEG


Diagnstico de enfermedades (epilepsia)
Biofeedback
El Interfaz cerebro-mquina

38

Esquema del BCI

39

El spellboard

40

Modelizacin de Jugadores Humanos


para la Robocup
Se trata de obtener un modelo de una
persona jugando a Robosoccer, para despus
programar a un agente que juegue de forma
similar
Datos para aprender: (Sensores, Accin) [lo
que ve el agente en el momento t, lo que
hace la persona en t]
PFC Alberto Lpez Cilleros

41

Esquema de aprendizaje

OPERADOR

GUI
SOCCERCLIENT

SOCCERSERVER

ENTRENADOR

FICHERO
TRAZA

PASO 2: OBTENCIN REGLAS

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

Atributos con los que aprender


@attribute Distancia_Bola real,
@attribute Angulo_Bola real,
@attribute X_Bola real,
@attribute Y_Bola real
@attribute Angulo real,
@attribute Distancia_Contrario1 real,
@attribute Angulo_Contrario1 real
@attribute Vale_Contrario1 real,
@attribute Distancia_Contrario2 real,
@attribute Angulo_Contrario2 real
@attribute Vale_Contrario2 { 0, 1 },
@attribute Distancia_SuPorteria real,
@attribute Angulo_SuPorteria real
@attribute Vale_SuPorteria { 0, 1 },
@attribute Accion { dash99, dash60, turnmenos45, turn45, kick99, kick60 }

46

Datos de los que aprender


36.6,-4,3.26785,36.9995,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99
36.6,-4,3.26785,36.9995,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99
36.6,-4,3.12456,36.1997,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99
13.5,-13,6.88539,12.4929,-91,1000,1000,0,1000,1000,0,1000,1000,0,turn10
33.1,-5,2.92243,33.3897,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99
33.1,-5,2.92243,33.3897,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99
33.1,-5,3.63682,33.3897,-91,1000,1000,0,1000,1000,0,1000,1000,0,dash99

47

Ejemplo de conocimiento obtenido

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

FASES EN MINERA DE DATOS

49

Fases del proceso de extraccin de


conocimiento
Integracin y recopilacin de datos
Seleccin, limpieza y transformacin -> Datos
Aprendizaje Automtico -> Patrones
Evaluacin e interpretacin -> Conocimiento
Difusin y uso -> Decisiones

50

Integracin y recopilacin
Almacenes de datos (data warehousing):
repositorio de informacin obtenido de
diversas fuentes (heterogneas), almacenada
bajo un esquema unificado

51

Seleccin, limpieza, transformacin


Datos:

Valores que no se ajustan al comportamiento general


(outliers): eliminar o dejar
Muestreo de datos

Atributos:

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,

52

Datos (instancias, patrones, )

Clase

Atributos
IDC

Aos

Euros

Salario

Casa
propia

Cuentas
morosas

...

Devuelve
el crdito

101

15

60000

2200 Si

...

No

102

30000

3500 Si

...

Si

103

9000

1700 Si

...

No

104

15

18000

1900 No

...

Si

105

10

24000

2100 No

...

No

Datos

...

...

...

...

...

...

...

Seleccin, limpieza, transformacin


Objetivos:

Mejorar la eficiencia de la herramienta de minera


de datos
Mejorar la calidad (precisin) del conocimiento
obtenido

Posibilidades:

Hacerlo a mano
Utilizar herramientas de preproceso (ej: seleccin
de atributos)
Dejar que lo haga el algoritmo de minera de datos
(peor solucin)
54

TIPOS DE ALGORITMOS PARA PREDICCIN


(CLASIFICACIN Y REGRESIN)

55

Datos de entrada (ej: clasificacin)


Cielo

Temperatura

Humedad

Viento

Tenis

Sol

85

85

No

No

Sol

80

90

Si

No

Nublado

83

86

No

Si

Lluvia

70

96

No

No

Lluvia

68

80

No

Si

Nublado

64

65

Si

Si

Sol

72

95

No

No

Sol

69

70

No

Si

Lluvia

75

80

No

Si

Sol

75

70

Si

Si

Nublado

72

90

Si

Si

Nublado

81

75

No

Si

Lluvia

71

91

Si

No

56

Esquema general en prediccin


Dato a clasificar

Datos
Cielo

Temperatura

Humedad

Viento

Tenis

Sol

85

85

No

No

Sol

80

90

Si

No

Nube
s

83

86

No

Si

Lluvi
a

70

96

No

So

Lluvi
a

68

80

No

Si

Nubl
ado

64

65

Si

Si

Sol

72

95

No

No

Sol

69

70

No

Si

Lluvi
a

75

80

No

Si

Sol

75

70

Si

Si

Nubl
ado

72

90

Si

Si

Nubl
ado

81

75

No

Si

Lluvi
a

71

91

Si

No

Cielo

Tempe
ratura

Humedad

Viento

Tenis

Sol

60

65

No

?????

Clasificador

Algoritmo
MD

IF Cielo = Sol Y
Humedad <= 75
THEN Tenis = Si ...
Prediccin

Clase = Si
57

Idea general en prediccin


Utilizar un conjunto de datos disponibles, en forma de
tabla de atributos, para aprender un predictor
(clasificador o regresor), que sea capaz de predecir la
clase de datos NO VISTOS TODAVA. Hay
GENERALIZACIN a partir de los datos
El predictor puede tomar diversas formas, segn el
algoritmo (rbol de decisin, reglas, funcin, red de
neuronas, probabilidades, centroides, ..)
Pero en ltimo trmino, un predictor es una
estructura que toma una entrada (los distintos valores
de los atributos que representan al dato) y devuelve
una salida (la clase o cantidad predicha para ese
dato)

58

CLASSIFY: clasificacin y
regresin
CLUSTER: agrupacin
ASSOCIATE: asociacin

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

Formato arff. Definicin de


atributos
% Comentarios precedidos de %
@relation tiempo
@attribute cielo {sol, nubes, lluvia}
@attribute temperatura numeric
@attribute humedad numeric
@attribute viento {si, no}
@attribute tenis {si, no}

61

Formato arff. Definicin de datos

@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

Algoritmos de clasificacin / regresin


(prediccin)
rboles de decisin y reglas. Para clasificacin

rboles de decisin: ID3, C4.5 (J48), ...


Reglas: PART, CN2, AQ, ...

Funciones:

Para regresin: linear regresson, neural networks


Para clasificacin: simple logistics, support vector
machines (SMO)

rboles de regresin: LMT (M5), ...


Tcnicas perezosas. Para clasificacin y regresin

IB1, IBK, ...

Tcnicas Bayesianas. Para clasificacin:

Naive Bayes

Metatcnicas. Para clasificacin y regresin:

Boosting, Bagging, Stacking, Random Forests


64

Tipos de clasificadores (y regresores)


En el fondo, la clasificacin consiste en
encontrar fronteras de separacin entre las
clases)
Tipos:

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 y reglas. Para


clasificacin

rboles de decisin: ID3, C4.5 (J48), ...


Reglas: PART, CN2, AQ, ...

rboles de decisin (para


clasificacin)

Sol

Cielo

Lluvia

Nubes
Humedad

Viento

SI

<=75

> 75

Si

SI

NO

NO

No
SI

67

Algoritmos de prediccin (classifiers) en Weka

68

Arbol de decisin J48

69

Algoritmos de construccin de rboles de


decisin
El ms bsico es el ID3: construye rboles de
decisin de manera recursiva, de la raz
hacia las hojas, seleccionando en cada
momento el mejor nodo para poner en el
rbol
El C4.5 (o J48), trata con valores continuos y
utiliza criterios estadsticos para impedir que
el rbol se sobreadapte (que crezca
demasiado, que se aprenda los datos en
lugar de generalizar)

Algoritmo ID3 simplificado


1. Detener la construccin del rbol si:
1.
2.

Todos los ejemplos pertenecen a la misma clase


Si no quedan ejemplos o atributos

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

Algoritmo ID3 detallado

Algoritmo C4.5 simplificado


1. Detener la construccin del rbol si:
1.
2.
3.

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

Qu nodo es el mejor para poner en la


raz del rbol?
Humedad?

Cielo?

Sol

Lluvia

Nubes

<=X

Temperatura?
<=X

>X

>X

Viento?
Si

No

Supongamos que usamos Cielo


Cielo nos genera tres particiones de los datos, tantas como valores
posibles tiene
Cielo

Sol
C

Lluvia

Nubes

Ten
C

Ten

Nubes

83

86

No

Si

Ten

Lluvia

70

96

No

No

Sol

85

85

No

No

Sol

80

90

Si

No

Nubes

64

65

Si

Si

Lluvia

68

80

No

Si

Sol

72

95

No

No

Nubes

72

90

Si

Si

Lluvia

75

80

No

Si

Sol

69

70

No

Si

Nubes

81

75

No

Si

Lluvia

65

70

Si

No

Sol

75

70

Si

Si

Lluvia

71

91

Si

No

3 No, 2 Si

0 No, 4 Si

3 No, 2 Si

Tendencia al no

Particin perfecta

Tendencia al no

Cmo medimos lo bueno que es Cielo


como atributo para clasificar?
Usaremos una medida que obtenga el
mejor valor cuando el atributo me
obtenga particiones lo mas homogneas
posible, en media
Homognea: 0 No, todo Si; o bien
todo No, 0 Si
Indecisin: 50% No, 50% Si
Una medida que me dice lo lejana que
est una particin de la perfeccin es la
entropa
A mayor entropa, peor es la particin

H ( P ) =

p log ( p
Ci

Ci

H(P) = ( p log( p ) + p
si

no

= (1 p )
si

si

Ci

log( p ))

no

no

Entropa media de Cielo


Cielo genera tres particiones cuya entropa es:
1.
2.
3.

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

La entropa media ponderada de Cielo ser:

HP=(5/14)*0.97+(4/14)*0+(5/14)*0.97 = 0.69
Nota: hay 14 datos en total

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

X<=70

>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

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

3 No, 5 Si

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

Nota: hay otras posibilidades de particiones, pero esta es la mejor

HP = 0.79

Qu nodo es el mejor para poner en la raz?


HP = 0.79

HP=0.69

Humedad

Cielo

Sol

Lluvia
<=75

Nubes
3 No, 2 Si

0 No, 4 Si

3 No, 2 Si
0 No, 4 Si

HP = 0.89

HP = 0.89

Temperatura

Viento

<=X
1 No, 4 Si

> 75

>X
4 No, 5 Si

Si
3 No, 3 Si

5 No, 4 Si

No
2 No, 6 Si

Construccin recursiva del rbol


Ahora que ya tenemos el nodo raz, el proceso continua
recursivamente: hay que construir tres subrboles con los datos
que se muestran en cada rama
Cielo

Sol
C

Lluvia

Nubes

Ten
C

Ten

Nubes

83

86

No

Si

Sol

85

85

No

No

Sol

80

90

Si

No

Nubes

64

65

Si

Si

Sol

72

95

No

No

Nubes

72

90

Si

Si

Sol

69

70

No

Si

Nubes

81

75

No

Si

Sol

75

70

Si

Si

3 No, 2 Si

0 No, 4 Si

Ten

Lluvia

70

96

No

No

Lluvia

68

80

No

Si

Lluvia

75

80

No

Si

Lluvia

65

70

Si

No

Lluvia

71

91

Si

No

3 No, 2 Si

Construccin recursiva del rbol


Aqu un criterio estadstico
determina que no merece la
pena seguir subdividiendo y se
asigna la clase mayoritaria

Cielo

Sol

Lluvia

Nubes
Humedad
<=75
T

Ten

72

95

No

No

69

70

No

Si

75

70

Si

Si

> 75
T

Ten

85

85

No

No

80

90

Si

No

Aqu no es necesario
seguir subdividiendo
porque todos los datos son
de la misma clase

Porqu no seguir subdividiendo?


Cielo

Sol

Lluvia

Nubes
Humedad
<=75

> 75
NO

Humedad
<=70

> 70

Ten

Ten

69

70

No

Si

72

95

No

No

75

70

Si

Si

Puede que esta


decisin est
fundamentada en
muy pocos datos

Porqu no seguir subdividiendo?


Hay que detener la construccin cuando tenemos 1 no, 2
si?
Tal vez. Cuando hay tan pocos datos (y suponiendo que
haya ruido) es posible que el 1 no haya aparecido por
azar, e igualmente podriamos tener 2 no, 2 si
Pasamos de una situacin en la que hay mayora de si a
otra en la que estn equiparados con los no
Se puede utilizar algn criterio estadstico para saber si es
probable que 1 no, 2 si se deba al azar
Cuando se manejan pocos datos (3 en este caso), es
bastante probable que las regularidades (humedad<=70 en
ete caso) sean slo aparentes y se deban al azar

Construccin recursiva del rbol

Sol

Cielo
Nubes

Humedad
<=75

> 75

SI

NO

Lluvia

Construccin recursiva del rbol

Sol

Cielo

Lluvia

Nubes
Humedad

Viento

SI

<=75

> 75

Si

SI

NO

NO

No
SI

C4.5 (J48) Tipo de clasificador


Es no lineal
Las fronteras de separacin entre las clases
son rectas paralelas a los ejes
Viento
NO

SI

NO

SI

SOL

NUBES

LLUVIA

Cielo

Reglas (para clasificacin)


IF Cielo = Sol
Humedad <= 75 THEN Tenis = Si
ELSE IF Cielo = Sol
Humedad > 75 THEN Tenis = No
ELSE IF Cielo = Nubes THEN Tenis = Si
ELSE IF Cielo = Lluvia
Viento = Si

THEN Tenis = Si

ELSE Tenis = No

88

Algoritmo de reglas PART

89

Funciones:

Para regresin: linear regresson, neural


networks
Para clasificacin: simple logistics, support
vector machines (SMO)

Funciones (para regresin)

Y
0
1
2
3
4
5
6
7
8
9
10

0
1,3
1,8
2,5
4,3
5,5
6,1
6,5
8,2
8,8
10,5

Y=1*X
Caso general (regresin lineal)
Y = A1*X1 + A2*X2 + A3*X3 + A4
Y
12
10
8
6

4
2
0
0

10

12

91

Visualizacin datos linea.arff y=10*x

92

Resultados regresin lineal

93

Funciones:

Para regresin: linear regresson, neural


networks
Para clasificacin: simple logistics, support
vector machines (SMO)

Funciones (para clasificacin)

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

Visualizacin datos separables linealmente

96

Algoritmo simple logistics (separacin lineal)

97

Redes de Neuronas (Multilayer perceptron)


El grado de no linealidad depende del nmero de neuronas ocultas

Mquinas de vectores de soporte (SVM)

Tipo de clasificador SVM


Depende del kernel:

Lineal (con kernel polinonial con exponente 1)


No lineal:
Con kernel polinomial con exponente 2
Con kernel RBF

rboles de regresin:

LMT (M5), ...

Algoritmos de clasificacin / regresin


(prediccin)
rboles de decisin y reglas. Para clasificacin

rboles de decisin: ID3, C4.5 (J48), ...


Reglas: PART, CN2, AQ, ...

Funciones:

Para regresin: linear regresson, neural networks


Para clasificacin: simple logistics, support vector
machines (SMO)

rboles de regresin: LMT (M5), ...


Tcnicas perezosas. Para clasificacin y regresin

IB1, IBK, ...

Tcnicas Bayesianas. Para clasificacin:

Naive Bayes

Metatcnicas. Para clasificacin y regresin:

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

rboles de regresin. Ejemplo

Inform tic o
Si
Si
Si
Si
Si
Si
Si
No
No
No
No
No
No
No

E dad

S alario
20
25
30
35
40
45
50
20
25
30
35
40
45
50

2000
2500
3000
3500
4000
4500
5000
2000
2050
2100
2150
2200
2250
2300

6 00 00
5 00 00
4 00 00
S a la rio

3 00 00

S a la rio No

2 00 00
1 00 00
0
0

20

40

60

105

rboles de regresin. Ejemplo

Informtico
Si

Salario = 2000+(edad-20)*100

No

Salario = 2000+(edad-20)*10

106

Algoritmo LMT

107

Tcnicas perezosas. Para clasificacin y


regresin

IB1, IBK, ...

Tcnicas perezosas (almacenar


instancias)
Tambin llamadas tcnicas basadas en instancias (o
en ejemplos)
En lugar de construir una estructura predictora
(rbol de decisin, reglas, ...), simplemente se
guardan las instancias (los datos) o representantes
de los mismos
Para clasificar un nuevo dato, simplemente se
busca(n) la(s) instancia(s) ms parecida(s) o
cercana(s)
Parecido a lo que hacen las personas: para resolver
un nuevo problema, intentan recordar el caso ms
parecido que ya sepan resolver
Ejemplo: sistema legal anglosajn
109

Tcnicas perezosas (clasificacin)

Altura

Nio
Adulto
Mayor

Se guardan todos los ejemplos


Peso
110

Tcnicas perezosas (clasificacin)

Altura

Nio
Adulto
Mayor

Se guardan todos los ejemplos


Peso
111

Tcnicas perezosas (clasificacin)

Altura

Nio
Adulto
Mayor

Se guardan las fronteras


Peso
112

Tcnicas perezosas (clasificacin)

Altura

Nio
Adulto
Mayor

Se guardan un representante por clase


(centroide o prototipo)
Peso
113

Algoritmo perezoso IB1 (1 vecino) e IBK (k vecinos)

114

Tcnicas perezosas en regresin


Ejemplo: prediccin de la carga de
electricidad segn la hora y la temperatura
Ahora se trata de un problema de regresin
Simplemente se cogen las n instancias ms
cercanas y se calcula la media entre ellas
El IBK permite hacer regresin (el IB1 no)

115

Tcnicas Bayesianas. Para clasificacin:

Naive Bayes

Tcnicas Bayesianas (almacenar


probabilidades)
(sol, fro, alta, si, clase=????)
Pr(Tenis = si / cielo = sol, temperatura = fro,
humedad = alta, viento = si)?
Pr(Tenis = no / cielo = sol, temperatura = fro,
humedad = alta, viento = si)?
Naive Bayes:
Pr(si / ...) ~ pr(cielo = sol/si) * pr(humedad = alta /si) *
pr(viento = si /si) * pr(si)

117

Teorema de Bayes y Naive Bayes


Pr(A|B) = k*Pr(B|A)*P(A)
Pr(Tenis = si / cielo = sol, temperatura = fro, humedad = alta, viento
= si)
= k * Pr(cielo = sol, temperatura = fro, humedad = alta, viento = si /
Tenis = si) * Pr(Tenis = si)

Y si suponemos a todos los atributos independientes


= Pr(si/cielo = sol, temperatura = fro, humedad = alta, viento = si)
= k* pr(cielo = sol/si) * pr(humedad = alta /si) * pr(viento = si /si) * Pr(si)

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

Cielo

Temperatura

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Soleado
Soleado
Nublado
Lluvioso
Lluvioso
Lluvioso
Nublado
Soleado
Soleado
Lluvioso
Soleado
Nublado
Nublado
Lluvioso

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

Tenis

No
Si
No
No
No
Si
Si
No
No
No
Si
Si
No
Si

No
No
Si
Si
Si
No
Si
No
Si
Si
Si
Si
Si
No

119

Datos de entrada ordenados


Cielo

Temperatura

Humedad

Viento Tenis

Soleado Frio
Soleado Templado
Nublado Frio
Nublado Caliente
Nublado Templado
Nublado Caliente
Lluvioso Templado
Lluvioso Frio
Lluvioso Templado

Normal
Normal
Normal
Alta
Alta
Normal
Alta
Normal
Normal

No
Si
Si
No
Si
No
No
No
No

Si
Si
Si
Si
Si
Si
Si
Si
Si

Soleado
Soleado
Soleado
Lluvioso
Lluvioso

Alta
Alta
Alta
Normal
Alta

No
No
Si
Si
Si

No
No
No
No
No

Caliente
Templado
Caliente
Frio
Templado

120

Tcnicas Bayesianas. Ejemplo


P(Cielo/Tenis)
Cielo

Si

No

Sol

2/9

3/5

Nubes

4/9

0/5

Lluvia

3/9

2/5

Pr(si

P(Temp/Tenis)
Tempera
tura

Si

No

Caliente

2/9

2/5

Templado

4/9

2/5

Frio

3/9

1/5

P(Hum/Tenis)
Humedad

Si

No

Alta

3/9

4/5

Normal

6/9

1/5

Viento

Si

No

Si

3/9

3/5

No

6/9

2/5

P(Tenis)
Tenis

Si

No

9/14

5/14

/ 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

Algoritmo Naive Bayes

P(A|Tenis=si)
Soleado, nublado, lluvioso
Ojo: el estimador
Laplaciano suma 1:
Pr(Sol / Si) =
(2+1)/(9+1+1+1)

122

Naive Bayes con atributos numricos


Cielo

Temperatura

Humedad

Viento

Tenis

Sol

85

85

No

No

Sol

80

90

Si

No

Nublado

83

86

No

Si

Lluvia

70

96

No

So

Lluvia

68

80

No

Si

Nublado

64

65

Si

Si

Sol

72

95

No

No

Sol

69

70

No

Si

Lluvia

75

80

No

Si

Sol

75

70

Si

Si

Nublado

72

90

Si

Si

Nublado

81

75

No

Si

Lluvia

71

91

Si

No

123

Naive Bayes con atributos numricos

Supone normalidad
y calcula la media y
la varianza

124

Metatcnicas. Para clasificacin y regresin:

Boosting, Bagging, Stacking, Random Forests

Meta-algoritmos o conjuntos de
clasificadores (ensembles of classifiers)
Construyen varios predictores (clasificacin o regresin) y
despus los usan de manera conjunta
Suelen ser mas precisos que los algoritmos individuales,
siempre que los algoritmos base predigan mejor que el azar
La idea es que si los distintos clasificadores no estn
correlacionados en los errores, el uso conjunto de todos ellos
ser mejor que usar cualquiera de ellos por separado
Tipos principales:

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

Bagging (Bootstrap aggregating)


Justificacin: un algoritmo de aprendizaje
automtico genera clasificadores distintos si le
pasamos datos de entrenamiento distintos
Si el algoritmo es inestable, pequeas diferencias en
los datos de entrenamiento darn lugar a
clasificadores muy distintos

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.

Bagging (Bootstrap aggregating)

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

Bagging y descenso del error

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:

Pero es difcil conseguir clasificadores no


correlacionados

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.

Importancia de cada clasificador

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, ...

Funciones:

Para regresin: linear regresson, neural networks


Para clasificacin: simple logistics, support vector machines (SMO)

rboles de regresin: LMT (M5), ...


Tcnicas perezosas. Para clasificacin y regresin

IB1, IBK, Locally weighted regression,

Tcnicas Bayesianas. Para clasificacin:

Naive Bayes

Metatcnicas. Para clasificacin y regresin:

AdaboostM1, Bagging, Stacking, StackingC, Random Forests

141

EVALUACIN DEL CONOCIMIENTO MINADO

142

Evaluacin: entrenamiento y test


Una vez obtenido el conocimiento es necesario
validarlo para observar su comportamiento con
datos no vistos
Ejemplo: si a un alumno se le evala (examen) con
los mismos problemas con los que aprendi, no se
demuestra su capacidad de generalizacin
Solucin: dividir el conjunto de datos en un
subconjunto para entrenamiento (66%) y otro para
test (33%)
Problema: es posible que por azar, los datos de
entrenamiento y test estn sesgados

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

Evaluacin: entrenamiento y test


mltiples veces (repetido)
Consiste en partir el conjunto de datos totales mltiples
veces y calcular el porcentaje de aciertos medio
La idea es que los sesgos de unas y otras particiones se
cancelen
Mtodo:

Repetir mltiples veces:


1. Desordenar el conjunto de datos total aleatoriamente
2. Escoger los primeros 70% para entrenamiento y construir el modelo
con ellos
3. Escoger los ltimos 30% para el test y estimar el porcentaje de
aciertos

Calcular el porcentaje de aciertos medio

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

entrenamiento y test mltiples veces


(repetido)
Problema: las distintas particiones de test no son
independientes (pueden solaparse unas con otras
por casualidad)
Explicacin: en el caso extremo, si por casualidad
todas las particiones de test contuvieran
exactamente los mismos datos, el repetir muchas
veces el clculo en test no nos aportara ninguna
informacin adicional
El caso extremo no ocurre, pero siempre hay
algn solape entre las particiones de test
Lo ideal es que las particiones de test no solapen

Validacin cruzada (crossvalidation)


Solucin: dividir varias veces el mismo conjunto de datos
en entrenamiento y test y calcular la media. As, las
particiones de test no solaparn.
Se divide el conjunto de datos original en k partes. Con
k=3 tenemos los subconjuntos A, B, y C.
Tres iteraciones:

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

Validacin cruzada (crossvalidation)


El mtodo de validacin cruzada utiliza muy
bien los datos al calcular el porcentaje de
aciertos esperado, porque todos ellos se
utilizan para test (en alguna particin).
De hecho, todos los datos figuran como
entrenamiento o test en alguno de los ciclos
de validacin cruzada.
Las particiones de test de los distintos ciclos
son independientes (no solapan)
Nota: a cada una de las k divisiones de los
datos de entrenamiento se la denomina fold

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)

El porcentaje de aciertos esperado ser:

(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

Criterios bsicos para evaluar


En problemas de clasificacin, si tenemos 2 clases (o M),
el porcentaje de aciertos a superar es el 50% (o 100*1/M).
De otra manera, sera mejor tirar una moneda (azar) que utilizar
el clasificador para predecir

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

Criterios bsicos para evaluar. Coste


En ocasiones el coste de fallar en una clase
no es el mismo que fallar en otra
Por ejemplo, para un clasificador de cncer
si/no, es preferible predecir que una
persona tiene cncer (sin tenerlo) que
predecir que no lo tiene (tenindolo)
Ambos casos disminuyen el porcentaje de
aciertos, pero lo primero tiene menos coste
que lo segundo
Para analizar esos casos es conveniente
utilizar la matriz de confusin
152

Evaluacin. La matriz de confusin y


el coste
Sea un problema con dos clases
+ y (positivo y negativo)
Los datos correctamente
clasificados estn en la
diagonal, los incorrectos fuera
de ella

El porcentaje de aciertos es
(TP+TN)/(TP+TN+FN+FP)

El porcentaje de aciertos de + es:


TP rate = TP / positivos = TP/(TP+FN)

Clasificado Clasificado
como +
como -

El porcentaje de aciertos es:


TN rate = TN / negativos = TN/(FP+TN)

Dato
realmente
+

TP (true
positive)

FN (false
negative)

Dato
realmente
-

FP (false
positive)

TN (true
negative)

De entre todos los datos positivos, cuantos clasificamos correctamente. Mide lo bien que
acertamos en la clase +

153

Evaluacin. La matriz de confusin y


el coste
Supongamos que en el problema de predecir cncer
si/no tenemos dos matrices de confusin. Cul es la
mejor situacin?
Ntese que el % de aciertos es (90+60)/200 = 75% en
los dos casos
Clasificado
como +

Clasificado
como -

Dato
realmente +

TP 90

FN 10

Dato
realmente -

FP 40

TN 60

Clasificado
como +

Clasificado
como -

Dato
realmente +

TP 60

FN 40

Dato
realmente -

FP 10

TN 90

Notese tambin que en los datos hay 100 personas con cncer y
100 personas sin cncer (sumar las lneas horizontales)

154

Evaluacin. La matriz de confusin y


el coste
En este caso es mejor disminuir el nmero de falsos
negativos (pacientes que tienen cncer, pero que el
clasificador no lo detecta). O lo que es lo mismo,
maximizar los TP.
Es mejor el clasificador que nos de la matriz de la
izquierda
Clasificado
como +

Clasificado
como -

Clasificado
como +

Clasificado
como -

Dato
TP 90
realmente +

FN 10

Dato
realmente +

TP 60

FN 40

Dato
realmente -

TN 60

Dato
realmente -

FP 10

TN 90

FP 40

155

Evaluacin. La matriz de confusin y


el coste
Si vemos que el porcentaje de aciertos de la
clase positiva es bajo, podemos intentar
incrementarlo duplicando las instancias
positivas en el conjunto de entrenamiento
O utilizando directamente matrices de coste
(metacost en Weka)

156

Visualizacin de resultados: % de aciertos, % de aciertos por


clase (true positive), matriz de confusin

EN PROBLEMAS DE
CLASIFICACIN

Clase como
Clase
real

Si

no

Si

TP 7

FN 2

no

FP 3

TN 2
157

Visualizacin de resultados en Regresin

EN PROBLEMAS DE
REGRESIN

158

La Sobreadaptacin o sobreaprendizaje
(overfitting)
Se produce sobreadaptacin cuando el clasificador
obtiene un alto porcentaje de aciertos en
entrenamiento pero pequeo en test (es decir, no
generaliza bien)
Se puede decir que el clasificador est
memorizando los datos en lugar de generalizando
Ej: Un alumno aprende a realizar perfectamente los
problemas de exmenes anteriores, pero no sabe
resolver los del examen final
Podemos detectarlo tambin porque en validacin
cruzada saldrn porcentajes cercanos al azar

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

Sobreadaptacin/subadaptacin de un
clasificador lineal
Sea un problema de clasificacin biclase con 1000
atributos
Disponemos de un algoritmo que genera
clasificadores lineales (como el logistic regresion)
Supongamos que tenemos 1000 datos de
entrenamiento (y por ejemplo 10000 para test)
?Cul ser el porcentaje de aciertos en
entrenamiento?
?Cul ser el porcentaje de aciertos en test?

Y = A1*X1 + A2*X2 + A3*X3 + + A1000*X1000+ A0

Sobreadaptacin por excesiva


complejidad del clasificador
Los rboles de decisin se van construyendo nodo a nodo. Cuantos
ms nodos, ms complejo y ms probable que sobreadapte

Sol

Cielo

Lluvia

Nubes
Humedad

Viento

SI

<=75

> 75

Si

SI

NO

NO

No
SI
165

Sobreadaptacin por excesiva


complejidad del clasificador
Al principio, incrementar el tamao del rbol de
decisin disminuye el error en entrenamiento y test
Pasada cierta complejidad del rbol, el error sigue
decreciendo en entrenamiento pero crece en test
Muchos algoritmos tienen parmetros que permiten
controlar la complejidad del clasificador (en rboles de
decisin, el parmetro de poda detiene el crecimiento)

166

Parmetro de j48 contra la sobreadaptacin

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

Teorema No Free Lunch


A1

A2

A3

OR

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= ??

169

Teorema No Free Lunch I


A1

A2

A3

OR

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)

170

Teorema No Free Lunch II


A1

A2

A3

OR

A1

A2

A3

FBIN

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%

171

Teorema No Free Lunch III


Cuando todas las combinaciones de los datos
son posibles, las predicciones de un
algoritmo de minera de datos concreto no
son mejores que el azar (en media)
No hay ningn algoritmo de minera de datos
que sea mejor que todos los dems en todos
los posibles problemas

172

Teorema No Free Lunch IV


El aprendizaje de regularidades es posible porque
en el mundo real, no todas las posibles
combinaciones de los datos son posibles
La minera de datos funciona porque en el mundo
real es posible suponer determinadas cosas acerca
de los datos. Por ejemplo, que su comportamiento
es simple, o suave en las funciones continuas
Cada algoritmo hace suposiciones distintas (bias)
acerca de los datos. El algoritmo funcionar mejor o
peor segn acierte o falle en esas suposiciones

173

Espiral
40

Imposible aprender a
separar dos espirales
con reglas o rboles de
decisin, aunque ib1 lo
hace relativamente
bien

30
20
10
Serie1

0
-40

-30

-20

-10

-10

10

20

30

40

Serie2

-20
-30
-40
174

Paridad par
Ningn sistema es
capaz de aprender la
regularidad nmero par
de 1s porque su
lenguaje de
representacin no lo
permite

A1

A2

A3

PAR?

SI

NO

j48: 40%

NO

PART: 15%

SI

IB1: 0%

NO

IBK: 0%

SI

NBAYES: 36%

SI

SIMPLE LOG.: 50%

NO

Id3: 1%

175

Otras medidas de evaluacin:


comprensibilidad
En ocasiones es importante evaluar el conocimiento
obtenido con otras medidas
Comprensibilidad: si el conocimiento es fcilmente
comprensible para un ser humano. til para evaluar
si el conocimiento es correcto o para tomar
decisiones en base al conocimiento obtenido
Muy relacionado con el tamao (nmero de reglas o
nodos en el rbol de decisin)
A veces merece la pena perder en porcentaje de
aciertos (= subadaptacin) para ganar en
comprensibilidad (construyendo rboles de decisin
ms pequeos, discretizando atributos, etc.)
176

Comparacin de varios algoritmos de


generacin de clasificadores
Tenemos un conjunto de datos
Sabemos que algunos algoritmos de generacin de
clasificadores funcionar mejor sobre esos datos que otros
?Cul usar, ej: J48 o SVM?
Podemos hacer validacin cruzada y quedarnos con el mas
alto
En la prctica esto es suficiente
Pero en ocasiones la diferencia puede ser debida al azar y
no ser significativa estadsticamente
Ejemplo: buscamos un algoritmo preciso pero tambin
rpido (lo vamos a utilizar en una situacin dinmica que
exige un entrenamiento rpido). Tenemos un algoritmo A
(J48) que obtiene un 90% de aciertos, y otro B (NN) que
obtiene un 92%, pero B es 100 veces mas lento que A.
?Merece la pena usar B?

Comparacin de varios algoritmos de


generacin de clasificadores
Ejemplo, sobre un conjunto de datos E, J48 puede
obtener un 90% de aciertos (en 10-fold
crossvalidation) y NN 92%. ?Podemos asegurar que
NN es mejor que J48 en este dominio?
No necesariamente, si usaramos otro conjunto de
datos E, puede que J48 sacara 92% Y NN 89%
Existe variabilidad, debido a que no disponemos
del conjunto total de datos (que puede ser
infinito), sino muestras finitas y pequeas E,E,
Necesitamos saber como de grande es esa
variabilidad (varianza)

Comparacin de varios algoritmos (A y B)


de generacin de clasificadores
Necesitamos saber como de grande es esa
variabilidad (varianza)
Hacemos la validacin cruzada muchas veces
Para cada algoritmo, repetir 10 veces

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

Comparacin de varios algoritmos (A y B)


de generacin de clasificadores
Idea importante: el que la diferencia sea
significativa depende mas de que la varianza
sea pequea que de que las medias estn
muy separadas.
?Cul de estos dos casos es mas probable que
corresponda a una diferencia significativa?.
Hacemos para A y B 10 crossvalidations de 10
folds cada una. (media, desviacin)

A = (90%, 8%), B=(94%, 7%)


A = (90%, 0.001%), B=(91%, 0.002%)

Comparacin de varios algoritmos (A y B)


de generacin de clasificadores
Cmo lo hace Weka?
Data Mining, practical machine learning tools
and techniques. Second Edition. Witten and
Frank. Pgina 153.

Comparacin de varios algoritmos de


generacin de clasificadores

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

Idea importante a tener en cuenta


En ocasiones, dos atributos por separado no dan
informacin, pero juntos s
Ejemplo:

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

Mtodos de seleccin de atributos


El mtodo mas preciso es la bsqueda
exhaustiva
Supongamos que tenemos 4 atributos A, B, C, D
Sera necesario comprobar la validez de todos
los posibles subconjuntos (24=16): {A, B, C, D},
{A, B, C}, {A, B, D}, {B, C, D}, {A, C, D}, {A, B},
{A, C}, ..., {A}, {B}, {C}, {D}
En general, el mtodo es poco prctico: 2n
posibles subconjuntos

186

Mtodos de seleccin de atributos


Evaluacin individual de atributos (Ranker u
ordenacin)
Evaluacin de subconjuntos de atributos:

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

Seleccin de atributos. Ranker


Dado unos atributos A1, A2, ..., An
Se evala cada uno de manera independiente,
calculando medidas de correlacin del atributo con
la clase
Un atributo A1 est correlacionado con la clase, si
conocer su valor implica que podemos predecir la
clase con cierta probabilidad
Por ejemplo, el sexo de una persona est
correlacionado (de momento) con que le guste el
ftbol. Su DNI no lo est
Por ejemplo, el salario de una persona est
correlacionado con el hecho de que vaya a devolver
un crdito
188

Seleccin de atributos. Ranker


Se evala cada atributo con algn estadstico que
detecte la correlacin (ej: chi-cuadrado, infogain,
etc.)
Se ordenan los atributos segn ese valor
Se seleccionan los k mejores
Mtodo muy rpido
Problemas:

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

Problema con atributos redundantes (ej:


Naive Bayes)
P(Tenis)
P(Cielo/Tenis)

Pr(si

Cielo

Si

No

Sol

2/9

3/5

Nubes

4/9

0/5

Lluvia

3/9

2/5

P(Temp/Tenis)
Tempera
tura

Si

No

Caliente

2/9

2/5

Templado

4/9

2/5

Frio

3/9

1/5

P(Hum/Tenis)
Humedad

Si

No

Alta

3/9

4/5

Normal

6/9

1/5

Viento

Si

No

Si

3/9

3/5

No

6/9

2/5

Tenis

Si

No

9/14

5/14

/ 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

Seleccin de atributos. Evaluacin


de subconjuntos
Estos mtodos recorren un espacio de bsqueda de subconjuntos
de atributos, evaluando subconjuntos completos de atributos
No se recorre el espacio entero (eso sera bsqueda exhaustiva),
sino slo aquellos subconjuntos ms prometedores
Se evala el subconjunto de manera conjunta
63
51,0

50,5

82

52,2

Tipos:
CfsSubsetEval

94,5

53,0

53,2

SubsetEval

51,0

51,0
191

Seleccin de atributos. Filter


Los mtodos CfsSubsetEval evalan un
subconjunto de atributos calculando:

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

Seleccin de atributos. Wrapper


Los mtodos SubsetEval evalan un
subconjunto de atributos ejecutando un
algoritmo de minera de datos (MD)
concreto, sobre un conjunto de
entrenamiento
El valor del subconjunto es el porcentaje de
aciertos obtenido con esos atributos
Son lentos
Obtienen subconjuntos de atributos
adecuados para un algoritmo de MD concreto
Evalan a los atributos de los subconjuntos
de manera realmente conjunta
193

Mtodos de seleccin de atributos


Recordatorio de mtodos de seleccin de
atributos:

Evaluacin individual de atributos


(Ranker/AttributeEval)
Evaluacin de subconjuntos de atributos
(SubsetEval):
CfsSubsetEval: se evalan los atributos de manera
individual, pero tiene en cuenta la redundancia entre
atributos
SubsetEval: se evalan de manera conjunta

Hay que definir:

Una manera de moverse por el espacio de


bsqueda

194

Seleccin de atributos
Mtodo evaluacin de
subconjuntos de atributos

Click para seleccin de atributos


Mtodo de bsqueda
Conjunto a usar en la evaluacin
195

Seleccin atributos. Tipos


Evaluacin de atributos individuales,
Ranker/AttributeEval:

Bsqueda: Ranker
Evaluador: ChiSquareAttributeEval, GainRatioAttributeEval,
InfoGainAttributeEval

Evaluacin de subconjuntos de atributos


(SubsetEval):

Bsqueda: greedy, stepwise, genetic, ...


Evaluador:
CfsSubsetEval
SubsetEval:
ClassifierSubsetEval
WrapperSubsetEval

196

Evaluadores de atributos (Ranker)


ChiSquaredAttributeEval: usa el estadstico
Chi-squared para evaluar el valor predictivo
del atributo
GainRatioAttributeEval: usa gainratio
InfoGainAttributeEval: usa infogain

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

Atributos ordenados por


importancia (1 y 2: char_freq_!
y char_freq_$)

200

Seleccin Ranker con validacin


cruzada (mrito y rango medios)

201

Seleccin Filter

Subconjunto
seleccionado

202

Seleccin Filter con validacin


cruzada Nmero de folds en que el atributo fue
seleccionado

203

Bsqueda partiendo del conjunto total


de atributos (backward en lugar de
forward)
Click para parmetros de la bsqueda

204

Bsqueda partiendo del conjunto total de


atributos (backward en lugar de forward)

205

Bsqueda partiendo del conjunto total de


atributos (backward en lugar de forward)

Subconjunto
seleccionado

206

Mtodo Wrapper

Click para parmetros de Wrapper

207

Seleccin parmetros Wrapper

Usaremos
PART como
clasificador
Usaremos el
conjunto de
entrenamiento
para calcular
los aciertos
208

Resultados Wrapper (lento!)

Subconjunto
seleccionado

209

Seleccin con Principal Component


Analysis (PCA)
Este mtodo construye nuevos atributos
como combinacin lineal de los anteriores
Esos nuevos atributos estn ordenados por
importancia (varianza explicada)
Se puede reducir la dimensionalidad
escogiendo slo algunos de los atributos

210

Resultados PCA

211

Notas seleccin de atributos


Permite ver por pantalla los atributos
seleccionados
Pero no permite utilizar esa seleccin de
atributos automticamente para clasificar
Para ello es necesario ir a la pestaa
preprocess y seleccionar el filtro
Attribute Selection

212

Filtros (pestaa de preproceso)


*Supervisados (tienen
en cuenta la clase)
*No supervisados

De atributos y de
instancias (datos)

213

Filtro de seleccin de atributos

214

Filtro de seleccin de atributos


Click para parmetros

215

Parmetros de seleccin de atributos

Seleccionaremos los 10
mejores atributos, tras la
ordenacin
216

Resultados de la
seleccin

Podemos deshacer los cambios

Hay que
pulsar Apply!

Atributos
seleccionados

217

Resultados de la clasificacin con


los nuevos atributos

218

CURVAS DE APRENDIZAJE EN WEKA


http://weka.wiki.sourceforge.net/Lea
rning+curves

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

Minera de textos. Tareas tpicas


Clasificacin: asignacin de una clases a
cada documento
Categorizacin: asignacin de varias clases
a cada documento
Agrupamiento (clustering) de documentos:
para organizar los documentos
jerrquicamente, segn alguna medida de
similitud

Minera de textos. Ejemplos de


aplicacin
Ordenacin automtica de correo electrnico en carpetas, segn
va llegando (categorizacin o clasificacin)
Filtro automtico de spam/no-spam (clasificacin binaria)
Filtro de noticias de un peridico relevante/no-relevante para el
usuario (clasificacin)
Un agente (programa) personal busca por internet pginas
interesantes para el usuario (clasificacin)
Un agente de un directorio de pginas (como el directorio google)
va buscando pginas y las categoriza automticamente
Para crear inicialmente la estructura de categoras, sera
necesario partir de un conjunto grande de pginas y, o bien
categorizarlas a mano, o bien utilizar un algoritmo de clustering
para descubrir categoras

Minera de textos. Fases


1. Generacin de corpus: obtencin de gran cantidad
de pginas Web y etiquetado, para el aprendizaje
2. Preprocesado: eliminacin de cdigos html, signos
de puntuacin, palabras con poca semntica, etc.
3. Generacin de atributos: representacin de los
textos mediante atributos-valores (tabla datos x
atributos)
4. Reduccin de dimensionalidad
5. Aplicacin de algoritmos de clasificacin o
agrupamiento

Minera de textos. Generacin de


corpus
Se pueden obtener de diversas fuentes, como directorios:
Directorio google: pginas preclasificadas por temas
Corpus standard de noticias reuters-21578
Etc.

Minera de textos. Corpus standard


Reuters: 10700 documentos etiquetados con 30000
trminos y 135 categoras (21MB). Un documento
pertenece a mltiples categoras
OHSUMED: 348566 abstracts de revistas mdicas.
230000 trminos (400MB). Cada uno etiquetado con
mltiples palabras clave.
20NG: 18800 mensajes de Usenet clasificados en 20
temas. 94000 trminos (95MBs). Jerarqua de
clases/etiquetas con 5 clases en el nivel ms alto y
20 en el ms bajo
Industry: 10000 homepages de compaas de 105
sectores industriales (publicidad, carbn,
ferrocarril, ...). Jerarqua con 80 clases arriba y 105
abajo.

Minera de textos. Preproceso


Eliminacin de:

Cdigos html innecesarios (<body>, <p>, <href


...>, etc.)
Nmeros
Signos de puntuacin
Palabras con poca semntica (artculos,
preposiciones, conjunciones, ...): stopwords
(buscar en google spanish stopwords)

Minera de textos. Generacin de


atributos
Es necesario convertir el texto plano en algo
caracterizado por atributos (tabla
datos*atributos), para poder aplicar
algoritmos de minera de datos
Tcnicas:

Bolsas de palabras (bags of words)


Frases
N-gramas
Categoras de conceptos

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

UN

AGUJERO

EL

SUELO

HOBBIT

...

A1

A2

A3

A4

A5

A6

...

...

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

UN-AGUJERO

AGUJEROEN

EN-EL

EL-SUELO

NO-UN

...

A1

A2

A3

A4

A5

A6

...

...

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, ).

Ej: En un agujero en el suelo


Agujero-sujeto, suelo-complemento_circunstancial

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

Problemas de las representaciones


Sinonimia: diferentes palabras con el mismo
significado se representan con diferentes
atributos (ej: coche y automvil)
Quasi-sinonimia: palabras relacionadas con
la misma materia (ej: declaracin y
comunicado)
Polisemia: palabras iguales con distinto
significado (ej: la masa (cemento, concepto
fsico, panadero, Increible Hulk, )
Lemas: palabras distintas con la misma raz
(ej: informal e informante)

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

Reduccin de dimensionalidad. PCA


Partimos de los atributos originales A1, A2, A3, , An
PCA crea combinaciones de atributos ortogonales
(independientes) que cubran el mximo de varianza:

A1 = 3*A1+2*A2- - An
A2 = A1-2*A2+ +5* An

Elimina redundancia. ejemplo: altura x peso

A = peso altura; P = peso+altura

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

Clculo de frecuencias (term frequency)


Las frecuencias de aparicin (term
frequency) (xtfij) de la palabra i en el
documento j se suele calcular como:

tf
ij

ij

n
k j

)
kj

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

Normalizacin inverse document


frequency
Posteriormente, las xtfij se suelen normalizar
con inverse document frequency:
tfidf

ij

= xij log( )
DFi
tf

tfidf

O bien

ij

1+ D
= xij log(
)
DFi
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

Normalizacin inverse document


frequency
TFIDF es til para problemas de clustering
(aprendizaje supervisado)
Para problemas de clasificacin puede
funcionar peor
La razn es que en clasificacin, para decidir
si un atributo es relevante, habra que
utilizar la clase
Pero en TFIDF se le da ms/menos
importancia a un trmino
independientemente de la clase

Minera de textos. Utilizacin


prctica
Se puede utilizar cualquier algoritmo de
clasificacin
Naive Bayes ha sido usado con bastante xito
Ejemplos:

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)

También podría gustarte