Máquinas Vectoriales de Soporte - oldemarrodriguez.com · modelo basado en Análisis...
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….