Máquinas Vectoriales de Soporte - oldemarrodriguez.com · modelo basado en Análisis...

Post on 22-Sep-2018

240 views 1 download

Transcript of Máquinas Vectoriales de Soporte - oldemarrodriguez.com · modelo basado en Análisis...

Aprendizaje

Supervisado

Máquinas Vectoriales

de Soporte

Tipos de Variables

Modelo general de los métodos de Clasificación

|Id Reembolso Estado Civil

Ingresos Anuales Fraude

1 Sí Soltero 125K No

2 No Casado 100K No

3 No Soltero 70K No

4 Sí Casado 120K No

5 No Divorciado

95K Sí

6 No Casado 60K No 10

Tabla de Aprendizaje

Id Reembolso Estado Civil

Ingresos Anuales Fraude

7 No Soltero 80K No

8 Si Casado 100K No

9 No Soltero 70K No 10

Tabla de Testing

Generar

el

Modelo

Aplicar

el

Modelo

Modelo

Algoritmo

de

Aprendizaje

Nuevos

Individuos

Evaluar

Clasificación: Definición

• Dada una colección de registros (conjunto de

entrenamiento) cada registro contiene un conjunto de

variables (atributos) denominado x, con un variable

(atributo) adicional que es la clase denominada y.

• El objetivo de la clasificación es encontrar un modelo (una

función) para predecir la clase a la que pertenecería cada

registro, esta asignación una clase se debe hacer con la

mayor precisión posible.

• Un conjunto de prueba (tabla de testing) se utiliza para

determinar la precisión del modelo. Por lo general, el

conjunto de datos dado se divide en dos conjuntos al azar

de el de entrenamiento y el de prueba.

Definición de Clasificación

Dada una base de datos 𝐷 = {𝑡1, 𝑡2,… , 𝑡𝑛} de tuplas o registros

(individuos) y un conjunto de clases 𝐶 = {𝐶1,𝐶2,… ,𝐶𝑚 }, el

problema de la clasificación es encontrar una función 𝑓:𝐷 → 𝐶

tal que cada 𝑡𝑖 es asignada una clase 𝐶𝑗 .

𝑓:𝐷 → 𝐶 podría ser una Red Neuronal, un Árbol de Decisión, un

modelo basado en Análisis Discriminante, o una Red Beyesiana.

v1

v2

v4

v3

v5

v6

v8

Ejemplo: Créditos en un Banco

Tabla de Aprendizaje

Con la Tabla de Aprendizaje se entrena (aprende) el modelo matemático

de predicción, es decir, a partir de esta tabla se calcula la función f de la

definición anterior.

Variable

Discriminante

Ejemplo: Créditos en un Banco

Tabla de Testing

• Con la Tabla de Testing se valida el modelo matemático de predicción, es

decir, se verifica que los resultados en individuos que no participaron en la

construcción del modelo es bueno o aceptable.

• Algunas veces, sobre todo cuando hay pocos datos, se utiliza la Tabla de

Aprendizaje también como de Tabla Testing.

Variable

Discriminante

Ejemplo: Créditos en un Banco

Nuevos Individuos

Con la Tabla de Nuevos Individuos se predice si estos serán o no

buenos pagadores.

Variable

Discriminante

Idea: Las Máquinas Vectoriales de Soporte (Support

Vector Machines) tratan de encontrar el hiperplano que

separe a las clases con el mayor “margen” posible.

Margen

denota +1

denota -1

n=Vector Director

¿Por qué se denominan Máquinas Vectoriales de

Soporte (Support Vector Machines)?

x1

x2 Margen

x+

x+

x-

n

Vectores de Soporte

Vector Director

¿Por qué se denominan Máquinas Vectoriales de

Soporte (Support Vector Machines)?

g(x) es una función lineal:

( ) Tg b x w x

x1

x2

wT x + b < 0

wT x + b > 0

Se busca un hiperplano en

el espacio de las variables

n es el vector normal del

hiperplano

w

nw

n

Función discriminante lineal

¿Cómo clasificar estos

puntos mediante una función

discriminante lineal

reduciendo al mínimo el

error?

x1

x2

Podrían existir una cantidad

infinita de posibles hiperplanos!

Función discriminante lineal

x1

x2 ¿Cómo clasificar estos

puntos mediante una función

discriminante lineal

reduciendo al mínimo el

error?

Podrían existir una cantidad

infinita de posibles hiperplanos!

Función discriminante lineal

x1

x2 ¿Cómo clasificar estos

puntos mediante una función

discriminante lineal

reduciendo al mínimo el

error?

Podrían existir una cantidad

infinita de posibles hiperplanos!

Función discriminante lineal

x1

x2

¿Cuál es el mejor?

¿Cómo clasificar estos

puntos mediante una función

discriminante lineal

reduciendo al mínimo el

error?

Podrían existir una cantidad

infinita de posibles hiperplanos!

Función discriminante lineal

Clasificador lineal con el margen más amplio

“zona segura” La función discriminante

lineal con el máximo

margen es la mejor

El margen se define como

la ancho que limita los

datos (podría no existir)

¿Por qué es la mejor?

Generalización robusta y

resistente a los valores

atípicos x1

x2 Margen

Dada una tabla de

aprendizaje:

Con una transformación de

variables para w y b, el

problema es equivalente a:

x1

x2

{( , )}, 1,2, ,i iy i nx

Clasificador lineal con el margen más amplio

denota +1

denota -1

For 1, 0

For 1, 0

T

i i

T

i i

y b

y b

w x

w x

Para

Para

For 1, 1

For 1, 1

T

i i

T

i i

y b

y b

w x

w x

Para

Para

Se sabe que:

Entonces el margen es:

x1

x2

1

1

T

T

b

b

w x

w x

Margen

x+

x+

x-

( )

2 ( )

M

x x n

wx x

w w

n

Vectores de Soporte

Clasificador lineal con el margen más amplio

El problema es:

x1

x2 Margen

x+

x+

x-

n

Tal que:

Clasificador lineal con el margen más amplio

2maximize

wMaximizar

For 1, 1

For 1, 1

T

i i

T

i i

y b

y b

w x

w x

Para

Para

El problema es:

x1

x2 Margen

x+

x+

x-

n

Tal que:

Clasificador lineal con el margen más amplio

For 1, 1

For 1, 1

T

i i

T

i i

y b

y b

w x

w x

Para

Para

21minimize

2wMinimizar

El problema es:

x1

x2 Margen

x+

x+

x-

n

Tal que:

Clasificador lineal con el margen más amplio

21minimize

2wMinimizar

( ) 1T

i iy b w x

Resolver un Problema Optimización

Un problema de

programación

cuadrática con

restricciones

lineales ( ) 1T

i iy b w x

21minimize

2w

s.t.

Minimizar

2

1

1minimize ( , , ) ( ) 1

2

nT

p i i i i

i

L b y b

w w w x

s.t.

Minimización de

Lagrange

0i

Minimizar

Margen de

soporte débil

(más vectores

de soporte)

El número de vectores de soporte entra a jugar cuando los datos no son

linealmente separable, o sea, no existe un hiperplano que separe las 2 clases

en los datos.

En este caso el método trata entonces de encontrar un margen débil, lo cual

quiere decir que permite que algunos puntos de ambas clases queden dentro

del margen, esto se logra permitiendo más vectores de soporte lo cual hace

que el error aumente.

Esto se hace porque de contrario entonces no existiría el plano de

separación, claro el precio es un mayor error.

MVS no linealmente separables Datos linealmente separables:

0 x

0 x

x2

0 x

Datos no linealmente separables:

La idea es… Encontrar una función para trasladar los datos a

un espacio de mayor dimensión:

MVS no linealmente separables

Idea general: Los datos de entrada se puede trasladar a

algún espacio de mayor dimensión en el que la Tabla de

Entrenamiento sí sea separable:

Φ: x → φ(x)

MVS no linealmente separables

SVM en Rattle

> library(rattle)

Rattle: A free graphical interface for data mining with R.

Versión 2.6.21 Copyright (c) 2006-2012 Togaware Pty Ltd.

Escriba 'rattle()' para agitar, sacudir y rotar sus datos.

> rattle()

Ejemplo 1: IRIS.CSV

Ejemplo con la tabla de datos IRIS

IRIS Información de variables:

1.sepal largo en cm

2.sepal ancho en cm

3.petal largo en cm

4.petal ancho en cm

5.clase:

• Iris Setosa

• Iris Versicolor

• Iris Virginica

> library(scatterplot3d)

> scatterplot3d(datos$p.ancho,datos$s.largo,datos$s.ancho)

> library(rgl)

> D <- as.matrix(dist(datos[,1:4]))

> heatmap(D)

Ejemplo 1: iris.csv

SVM en Rattle

Matriz de confusión en Rattle

(Matriz de Error)

Usando solo 2 variables para poder graficar

Ejemplo 2:

Credit-Scoring MuestraAprendizajeCredito2500.csv

MuestraTestCredito2500.csv

Descripción de Variables

MontoCredito MontoCuota 1= Muy Bajo 1 =Muy Bajo 2= Bajo 2 =Bajo 3= Medio 3 =Medio 4= Alto 4 =Alto

IngresoNeto GradoAcademico 1= Muy Bajo 1 =Bachiller 2= Bajo 2 =Licenciatura 3= Medio 3 =Maestría 4= Alto 4 =Doctorado

CoeficienteCreditoAvaluo BuenPagador 1= Muy Bajo 1 =NO 2= Bajo 2 =Si 3= Medio 4= Alto

Árboles de Decisión en Ratlle

Matriz de confusión en Rattle

(Matriz de Error)

Curva ROC

Una curva ROC

compara la tasa

de falsos positivos

con la de

verdaderos

positivos.

El área bajo la

curva ROC =

0.8880

Curvas ROC - Árboles y SVM

Gracias….