Taz TFG 2016 2057
Taz TFG 2016 2057
El aprendizaje estadístico supervisado es un conjunto de técnicas para deducir una función a par-
tir de datos de entrenamiento y es una de las herramientas principales de la minería de datos y del
aprendizaje automático. Los datos de entrenamiento, ejemplos o instancias consisten en pares de ob-
jetos (normalmente vectores) en los que una componente del par son los datos de entrada y el otro,
los resultados deseados. El objetivo es crear o estimar una función capaz de predecir el valor deseado
correspondiente a cualquier objeto de entrada válida después de haber visto una serie de ejemplos. Para
ello, tiene que generalizar a partir de los datos presentados anteriormente a las nuevas situaciones no
vistas previamente. La salida de la función puede ser un valor numérico (como en los problemas de
regresión) o una etiqueta de clase (como en los de clasificación) [WAS].
En este contexto, las máquinas de vector soporte (Support Vector Machines, SVMs) son un con-
junto de algoritmos de aprendizaje estadístico supervisado pertenecientes a la familia de los clasificado-
res lineales desarrollados por Vladimir Vapnik y su equipo en los laboratorios AT &T entorno a 1995.
Sin pérdida de generalidad, suponiendo que tenemos ejemplos de sólo dos categorías una SVM
construye un hiperplano en un espacio de dimensionalidad muy alta o incluso infinita. Este hiperplano
separa de forma óptima los puntos de una clase de la de otra. En el concepto de “separación óptima”
es donde reside la característica fundamental de las SVM, se busca el hiperplano que tenga la máxima
distancia (margen) con los puntos que estén más cerca de él mismo. Por eso también a veces se les
conoce a las SVM como clasificadores de margen máximo [WSVM].
Las SVM se desarrollaron inicialmente para resolver problemas de clasificación. Sin embargo, se
han reformulado de múltiples formas a lo largo de los años, sus variantes mas conocidas son: SVM para
regresión, SVM para resolución de ecuaciones integrales, SVM para estimar el soporte de una densidad,
SVMs que usan diferentes costes de margen blando y parámetros. También se han ensayado otras for-
mulaciones del problema dual (ver [BL]). Las técnicas de óptimización cuadrática son fundamentales a
la hora de resolver estos problemas.
Actualmente, las SVM tienen utilidad en una extensa variedad de áreas. Algunas de sus aplicaciones
mas importantes son el reconocimiento de caracteres, detección de intrusos, reconocimiento del habla o
la bioinformática.
III
Summary
The Support Vector Machine (SVM) algorithm is probably the most widely used kernel learning
algorithm. It achieves relatively robust pattern recognition performance using well established concepts
in optimization theory. The pattern recognition has a wide range of applications including optical cha-
racter recognition, intrusion detection, speech recognition, and bioinformatics.
Statistical learning is consolidated as a branch of Statistics around 1995 when Vladimir Vapnik pu-
blished his renowned book “The Nature of Statistical Learning Theory”. Supervised statistical learning
is the machine learning task of inferring a function from labeled training data. The training data consist
of a set of training examples. Each example or instance is a pair consisting of an input object, typically
a vector x, and a desired output value y. A supervised learning algorithm analyzes the training data and
produces an inferred function, which can be used for mapping new examples. An optimal scenario will
allow for the algorithm to correctly determine the class labels for unseen instances. This requires the
learning algorithm to generalize from the training data to unseen situations. The parallel task in human
and animal psychology is often referred to as concept learning.
This work shows an introduction to the extensive field of support vector machines and its utility as
classifiers. In addition, we will see a practical application in medicine to a clinical case of patients with
breast cancer. The model is build using learnig algorithms. In this way if a new patient is received, our
classifier will be able to predict if she is suffering a malignant or benign tumor.
In chapter 1, we present the earliest pattern regognition systems, binary classifiers. For each pat-
tern x ∈ Rd is given a class y ∈ {−1, 1}. These examples have the property of being perfectly and
linearly separable, so they will be classified without error by a linear discriminant function D(x) =
(w1 x1 + . . . + wd xd ) + b, where w ∈ Rd and b is a real coefficient. When a training set is linearly sepa-
rable there usually is an infinity of separating hyperplanes. Vapnik and other authors propose to choose
the separating hyperplane that maximizes the margin, that is to say the hyperplane that leaves as much
room as possible between the hyperplane and the closest example. Formally, this situation is represen-
ted as an optimization problem in which we minimize the norm of the hyperplane’s directional vector w
under some constraints. However this state of perfect separability does not happen in real life. Usually
all examples may not be correctly classified. In that case we have two solutions, the choice of each one
depend on the degree of separability of the examples.
In the first situation, when the problem is very noisy is usually to address it by allowing some
examples to violate the margin constraints in the optimization problem. These potential violations are
represented using positive slack variables ξi , i = 1, . . . , n. An additional parameter called cost C controls
the compromise between large margins and small margin violations.
V
VI Capítulo 0. Summary
n
1
mı́n kwk2 +C ∑ ξi
2 i=1
(1)
s.a yi (hw, xi i + b) + ξi − 1 ≥ 0,
ξi ≥ 0, i = 1, . . . , n.
In the second case the set of examples cannot be separated by a linear function, so we use the so-
called kernel functions, which represent a scalar product. Kernel function induces a high dimensional
Hilbert space, called features space. Each pattern x is transformed into a feature vector Φ(x) ∈ Rm , so
the linear discriminant function will be D0 (x) = (w1 φ1 (x + · · · + wm φm (x)) + b. In the original space this
hyperplane will be transformed into a non linear decision boundary. The Reproducing Kernel Hilbert
Spaces theory states that, although the corresponding feature space has infinite dimension, if we know
the kernel function, all computations can be performed without ever computing a feature vector Φ(x).
In both cases the optimization problem (primal) is transformed to its dual, so we can solve it by qua-
dratic optimization techniques. Dual problem is computationally easier because the number of variables
to optimize in the primal problem is directly proportional to the dimensionality of the examples while
in the dual problem it is directly proportional with the size of the sample, so the constraints are much
simple.
In chapter 2, we present two main extensions of SVM: multiclass classifiers and SVR for regres-
sion. Support vector machine originally separates the binary classes with a maximized margin criterion.
However, real-world problems often require the discrimination for k ≥ 2 categories. The most used
multiclass solving technique is SimMSVM. This method designs a unique objective function that trains
simultaneously k(k−1)
2 binary classifiers and through a voting strategy is assigned to each example its la-
bel. We obtain a quadratic optimization problem with a higher misclassification rate than other methods,
in exchange of, reducing the number of variables to the number of examples. In conclusion SimMSVM
approach can greatly speed up the training process, while maintaining a competitive classification accu-
racy.
The other extension, SVR, is the adaptation of the original SVM problem to solving a regression
problem. In this case we have yi ∈ R, for i = 1 . . . , n, instead of a class label. We define a loss function
L that controls the error between the predicted and actual value. This function only takes non-zero
values when the separation distance between the regression hyperplane and the example is greater than
the parameter . In the same way to the classification problem the slack variables associated to each
example are used to allow certain prediction error.
In chapter 3 we make a brief summary about currently packages containing SVM related software
and specially for the statistical software package R, the e1071 library among others. Using a popular
dataset of patients with breast cancer, we optimize several models for different kernel functions and we
obtain the corresponding ROC curves to analyze the quality of each one. In all three models, we have
excellent results about the accuracity of the true diagnosis with respect to the type of tumor (malignant
or benign) for a new patient.
Índice general
Prólogo III
Summary V
3. Aplicaciones prácticas 19
3.1. Introducción al software para SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2. Aplicación al cáncer de mama: datos WDBC . . . . . . . . . . . . . . . . . . . . . . 20
Anexos 25
A. Optimización cuadrática 27
Bibliografía 43
VII
Capítulo 1
Consideramos un conjunto de elementos representados por el par (xi , yi ) que llamaremos ejemplos,
cada uno con una serie de características que se almacenan en un vector xi . Además tienen asignada una
categoría que es la segunda componente de (xi , yi ). Observemos la figura 1.1 (a), tenemos dos clases de
ejemplos, si podemos separar todos los ejemplos a través de un hiperplano, de forma que, cada uno este
en el semiplano de la clase correcta, entonces diremos que el conjunto de ejemplos es separable.
Dado un conjunto separable de ejemplos, S = {(x1 ; y1 ), · · · , (xn ; yn )}, donde xi ∈ Rd e yi ∈ {−1, 1},
se define un hiperplano de separación como una función lineal que es capaz de separar dicho conjunto
sin error:
donde w ∈ Rd y b es un coeficiente real. Las restricciones que debe satisfacer un hiperplano de separa-
ción para todo ejemplo del conjunto de entrenamientos son:
Equivalentemente,
Sin embargo existen infinitos hiperplanos (ver figura 1.1 (b)) que satisfacen la restricción anterior, de-
bemos buscar un criterio que nos proporcione una regla de decisión sobre el conjunto de ejemplos, de
forma que hallemos el hiperplano separador óptimo.
1
2 Capítulo 1. SVM para clasificación binaria
Proposición. Un hiperplano separador se dirá óptimo si y solo si equidista del ejemplo más cercano
de cada clase.
Demostración. La demostración se puede hacer por reducción al absurdo. Supongamos que la distancia
del hiperplano óptimo al ejemplo más cercano de la clase +1 fuese menor que la correspondiente al
ejemplo más cercano de la clase -1. Esto significa que se puede alejar el hiperplano del ejemplo de la
clase +1 una distancia tal que la distancia del hiperplano a dicho ejemplo sea mayor que antes y, a su vez,
siga siendo menor que la distancia al ejemplo más cercano de la clase -1. Llegamos a contradicción, pues
podemos aumentar el tamaño del margen cuando inicialmente suponíamos que éste era máximo.
Figura 1.2: Margen de un hiperplano de separación: (a) hiperplano de separación no-óptimo y su margen
asociado (no máximo) (b) hiperplano de separación óptimo y su margen asociado (máximo). [Fuente:
Figura 2 [C2014]]
Introducción a las SVM - Elena Campo León 3
|D(x0 )|
,
kwk2
que junto con (1.2) obtenemos que todos los ejemplos de entrenamiento deben cumplir:
yi D(xi )
>τ i = 1, . . . , n. (1.3)
kwk2
De la expresión anterior se deduce que encontrar el hiperplano separador óptimo equivale a hallar el w
que maximiza el margen. Puesto que existen infinitas soluciones que difieren solo en la escala de w se
fija por convenio que
τkwk2 = 1.
Así llegamos a la conclusión de que maximizar el margen equivale a disminuir la norma de w y por
tanto la condición (1.3) queda
yi D(xi ) > 1, i = 1, . . . , n. (1.4)
Observar que las restricciones de (1.2) quedan incluidas en (1.4). El hiperplano definido por w y b que
minimizan el problema (1.5) recibe el nombre de hiperplano de separación de margen duro (hard
margen). Resolver este problema de optimización cuadrática es difícil debido a la complejidad de las
restricciones, por ello haremos uso de la teoría de optimización.
Un problema de optimización, primal, tiene una forma dual si la función a optimizar y las restric-
ciones son estrictamente convexas. En ese caso resolver el problema dual es equivalente a obtener la
solución del primal (véase Apéndice A). En el caso que nos ocupa se puede demostrar que tanto la
función objetivo como las restricciones son funciones estrictamente convexas, por tanto admite un dual.
Para hallarlo haremos uso de la función de Lagrange:
n
L(w, b, α) = 1/2(hw, wi) − ∑ αi (yi (hw, xi i + b) − 1), i = 1, . . . , n, (1.6)
i=1
∂ L(w∗ , b∗ , α) n
≡ w∗ − ∑ αi yi xi = 0, i = 1, . . . , n,
∂w i=1
(1.7)
∂ L(w∗ , b∗ , α) n
≡ ∑ αi yi = 0, i = 1, . . . , n,
∂b i=1
El vector direccional w∗ del hiperplano óptimo lo obtenemos sustituyendo la solución del dual en
(1.9)
n
D(x) = ∑ αi∗ yi (hx, xi i) + b∗ , i = 1, . . . , n. (1.12)
i=1
Un ejemplo se dirá separable si satisface la restricción (1.4). Llamaremos vectores soporte (ver figura
1.3) a aquellos ejemplos que satisfacen (1.4) con igualdad. Caracterizamos estos ejemplos, para ello nos
fijamos de nuevo en la condición complementaria de KKT (1.8) y se deduce que si en un ejemplo αi > 0
entonces
yi (hw∗ , xi i + b∗ ) = 1,
por consiguiente, se puede afirmar que sólo los ejemplos que tengan asociado un αi > 0 serán vectores
soporte y por tanto son los únicos ejemplos que intervienen en la construcción del hiperplano. Además
al ser los más cercanos al hiperplano de separación serán los mas difíciles de clasificar.
Figura 1.3: Distancia de cualquier ejemplo, xi , al hiperplano de separación óptimo, viene dada por |D(xi )|
kwk .
En particular, si dicho ejemplo pertenece al conjunto de vectores soporte (identifcados por siluetas
1
sólidas), la distancia a dicho hiperplano será siempre kwk . Además, los vectores soporte aplicados a la
función de decisión siempre cumplen que |D(xi )| = 1. [Fuente: Figura 3 [C2014]]
Introducción a las SVM - Elena Campo León 5
La determinación de b∗ la realizamos a partir de (1.8), de tal forma que si αi > 0, es decir, estamos
con un vector soporte del problema, en ese caso
yi (hw∗ , xi i + b∗ ) = 1,
y si despejamos b∗ , obtenemos
donde (xvs , yvs ) representa la tupla de cualquier ejemplo que satisfaga la igualdad anterior, es decir que
sea vector soporte. En la práctica es más robusto obtener b∗ promediando a partir de todos los vectores
soporte, sea vs dicho conjunto de índices y Nvs su cardinal, en tal caso
1
b∗ = ∑ (yi − hw∗ , xi i).
Nvs i∈vs
En la realidad es muy frecuente disponer de ejemplos que no son perfecta y linealmente separa-
bles. Cortes y Vapnik [CV1995] demuestran en 1995 que este tipo de problemas son mejores de tratar
si permitimos que algunos ejemplos no verifiquen las restricciones sobre el margen formuladas en el
problema primal (1.5). Dicho de otra forma, podemos relajar el grado de separabilidad entre los con-
juntos de ejemplos permitiendo que haya errores de clasificación en algunos ejemplos del conjunto de
entrenamiento. En este contexto se pueden dar dos situaciones para un ejemplo: cae dentro del margen
asociado a la clase correcta, de acuerdo a la frontera de decisión que define el hiperplano de separación
y en el otro caso, el ejemplo cae al otro lado de dicho hiperplano. En ambos casos se dice que el ejemplo
es no-separable, pero en el primer caso es clasificado de forma correcta y en el segundo, no lo es.
Podemos entender la variable de holgura asociada a cada ejemplo (xi , yi ) como la desviación de la
situación separable, medida desde el margen de la clase correspondiente a dicho ejemplo. Estas variables
representan el potencial incumplimiento de las restricciones sobre el margen para cada ejemplo. Los
ejemplos se pueden clasificar (ver figura 1.4) en separables si su variable de holgura correspondiente
toma valor cero, si toma valor entre cero y uno, no separables pero correctamente clasificados y si es
mayor que uno son ejemplos no separables y mal clasificados. Por tanto es fácil deducir que ∑ni=1 ξi
permite medir el coste asociado al numero de ejemplos no-separables, cuanto mayor sea el valor de esta
suma, mayor sera el número de ejemplos no separables.
6 Capítulo 1. SVM para clasificación binaria
Figura 1.4: Los ejemplos xi , xj y xk son, cada uno de ellos, no separables (ξi , ξ j , ξk > 0). Sin embargo, xi
está correctamente clasificado, mientras que xj y xk están en el lado incorrecto de la frontera de decisión
y, por tanto, mal clasificados. [Fuente: Figura 4 [C2014]]
En el caso que nos ocupa la función a optimizar debe incluir los errores de clasificación que comete
el hiperplano de separación, es decir:
n
1
f (w, ξ ) = kwk2 +C ∑ ξi , (1.14)
2 i=1
donde C es una constante suficientemente grande, cuyo valor se determina manualmente y que permite
controlar en qué grado influye el término del coste de ejemplos no-separables en la minimización de la
norma, es decir, permitirá regular el compromiso entre el grado de sobreajuste del clasificador final y la
proporción del número de ejemplos no separables (complejidad y error empírico o de entrenamiento).
La elección de una C u otra determinará en cierto modo la calidad del clasificador como veremos en el
último capítulo. En consecuencia el nuevo problema de optimización es:
n
1
mı́n kwk2 +C ∑ ξi
2 i=1
(1.15)
s.a yi (hw, xi i + b∗ ) + ξi − 1 ≥ 0,
ξi ≥ 0, i = 1, . . . , n.
La resolución del problema primal (1.15) es similar al caso separable de la sección anterior con la
principal diferencia de que al tener dos familias de restricciones en (1.15) aparecerán dos familias de
multiplicadores de Lagrange. La resolución detallada se puede consultar en [C2014]. El problema dual
Introducción a las SVM - Elena Campo León 7
0 ≤ αi ≤ C, i = 1, . . . , n.
Observar que ahora tenemos una clasificación aún más completa, que en el caso separable, de los vec-
tores soportes dado que los multiplicadores de Lagrange αi tienen cota superior. El razonamiento (ver
[C2014]) discurre paralelamente al de la obtención de una expresión para el calculo de b∗ y se deduce
principalmente del criterio de optimalidad (1.13) y de aplicar las KKT al problema primal.
Tenemos dos tipos de ejemplos de entrenamiento para los que αi > 0, luego satisfacen la restric-
ción (1.13) con igualdad, es decir, son vectores soporte y por tanto intervienen en la construcción del
hiperplano separador óptimo:
si 0 < αi∗ < C se tiene que ξi = 0 por tanto son ejemplos separables. Se denotan vectores soporte
"normales" (free support vectors).
si αi∗ = C, entonces 0 < ξi luego son ejemplos no separables y clasificados correctamente si
0 < ξi < 1 o mal clasificados si ξi > 1. Reciben el nombre de vectores soporte acotados (bounded
support vectors).
Los ejemplos de entrenamiento tales que αi = 0, no son vectores soporte. Además, verifican ξi = 0 y
por tanto corresponden a los ejemplos separables.
Figura 1.5: El problema de la búsqueda de una función de decisión no lineal en el espacio de entradas,
se puede transformar en un nuevo problema consistente en la búsqueda de una función de decisión lineal
(hiperplano) en un nuevo espacio transformado, el espacio de características. [Fuente: Figura 5 [C2014]]
8 Capítulo 1. SVM para clasificación binaria
Sea Φ : X −→ F la función de transformación que hace corresponder a cada vector de entrada x con
un punto en el espacio de características F , donde Φ(x) = [φ1 (x), . . . , φm (x)] y ∃ φi (x), i = 1, . . . , m tal
que φi (x) es una función no lineal. Por definición una función kernel es una función K : X × X −→ R
que a cada par de elementos del espacio de entrada X, le asigna, un valor real correspondiente al pro-
ducto escalar de las imágenes de dichos elementos en el espacio de las características F :
La teoría de Espacios de Hilbert con Núcleo Reproductor [A1944], muestra que las funciones Ker-
nel se corresponden con un producto escalar y que este induce un espacio lineal con mayor dimensión
que el espacio original, posiblemente infinita. La respuesta de como transformar el espacio de entradas,
de dimensión finita, en otro espacio de dimensión infinita nos la da el siguiente teorema.
Teorema (de Aronszajn). Para cualquier función K : X × X −→ R que sea simetrica1 y semidefinida
positiva2 , existe un espacio Hilbert y una función Φ : X −→ F tal que
Boser, Guyon y Vapnik [BGV1992] demostraron en 1992 que como consecuencia de este teorema
para construir una función kernel no es necesario hacerlo a partir de un conjunto de funciones base
Φ(x) = [φ1 (x), . . . , φm (x)], simplemente basta definir una función que cumpla las dos condiciones del
teorema. De esta forma el kernel representa el producto escalar hφ (x), φ (x0 )i que induce un espacio de
alta dimensionalidad. Por tanto, para evaluar una función kernel no se necesitara conocer dicho conjunto
de funciones base.
Este hecho nos permite reproducir cualquier algoritmo lineal en un espacio de Hilbert o equivalen-
temente para cualquier algoritmo existe una versión no lineal, donde la transformación (no lineal) es Φ.
Este hecho se conoce como el truco de los kernels.
Una caracterización de las funciones kernel la proporciona el teorema de Mercer [J1982], que nos
asegura que toda función K(u, v) que verifica
Z
K(u, v)g(u)g(v) du dv > 0,
uv
Observar que omitimos el parámetro b dado que se puede incluir en la base de funciones de transforma-
ción con la función constante φ1 (x) = 1.
El planteamiento del problema es igual que en la sección anterior, basta sustituir en el dual (1.16) el
producto escalar por la función Kernel:
n n
1
máx ∑ αi − 2 ∑ αi α j yi y j K(xi , xj )
i=1 i, j=1
n
(1.20)
s.a ∑ αi yi = 0,
i,=1
0 ≤ αi ≤ C, i = 1, . . . , n.
La razón por la que, ahora, el problema de optimización se expresa sólo en su forma dual, es la posible
dimensionalidad infinita del espacio de características ya que la solución del dual no depende de la
dimensionalidad del espacio sino de la cardinalidad del conjunto de ejemplos.
La función de decisión vendrá dada por:
n
D(x) = ∑ αi∗ yi K(x, xi ), i = 1, . . . , n, (1.21)
i=1
Ejemplo x = (x1 , x2 ) y
1 (+1, +1) +1
2 (−1, +1) −1
3 (−1, −1) +1
4 (+1, −1) −1
La resolución que se propone para el problema es crear un clasificador SVM usando un Kernel
polinómico con p = 2,γ = 1 y τ = 1, K2 (x, x0 ) = [hx, x0 i + 1]2
10 Capítulo 1. SVM para clasificación binaria
0 ≤ αi ≤ C, i = 1, . . . , 4,
la solución queda αi = 0,125, i = 1, . . . 4 y la funcion de decisión lineal D(x) = 0,125 ∑4i=1 yi K2 (x, xi ).
Dado que ningún i cumple αi∗ = 0, podemos afirmar que todos los ejemplos son vectores soporte. Haga-
mos un estudio de la función kernel y el conjunto de funciones base (las operaciones se pueden consultar
en [C2014]).
Figura 1.6: Solución al problema XOR: (a) hiperplano de separación en el espacio de características,
junto con su margen asociado (los cuatro ejemplos son vectores soporte) (b) función de decisión no
lineal en el espacio de ejemplos original resultante de transformar el hiperplano obtenido en (a) en
coordenadas del espacio original.[Fuente: Figura 7 [C2014]]
Capítulo 2
En este capítulo vamos a introducir dos extensiones de las SVM especialmente útiles en la práctica:
la clasificación en más de dos categorías y la predicción de una respuesta continua, es decir, un modelo
de regresión.
Para extender SVM al caso de clasificación múltiple han sido propuestos muchos modelos. A gran-
des rasgos podemos diferenciar las técnicas existentes en métodos directos e indirectos.
Suponer que tenemos un problema de clasificación con k clases diferentes, el método 1VR construye
(entrena) k hiperplanos separadores. Para construir el m-ésimo clasificador binario, dado por fm (x) =
wm T Φ(x) + bm se consideran los ejemplos de entrenamiento de la m-ésima clase como de tipo positivo
y los restantes ejemplos de las k − 1 clases como negativos. De entre los k clasificadores el que nos
proporciona el máximo valor de fi (xnew ), i ∈ 1, . . . , k es elegido para determinar la etiqueta (clase) del
ejemplo de prueba xnew . El principal problema de la técnica uno frente al resto es el desequilibrio del
conjunto de entrenamientos: si suponemos que de cada clase hay el mismo numero de ejemplos de
1
entrenamientos la ratio de ejemplos positivos frente a negativos sera de k−1 , por tanto la simetría del
problema original se pierde.
Dada una clase el método uno frente a uno estudia todos los posibles pares de clases, entre la dada y
cada una de las restantes induciendo un clasificador para cada uno de ellos. Se generan por tanto k(k−1)
2
11
12 Capítulo 2. Clasificación multinomial y regresión
Los métodos directos de clasificación múltiple basados en SVM enfocan el problema a un único
proceso de optimización, a través de combinar problemas de clasificación binaria en una única función
objetivo, de forma que se logra simultáneamente una clasificación de todas las clases. Sin embargo esto
conlleva una mayor complejidad a nivel computacional debido al tamaño del problema de optimización
cuadrática resultante.
Vapnik [V1998], Weston y Watkin [WW1999] proponen que para un problema de clasificación
de k-clases se diseñe una única función objetivo que entrene las k SVMs binarias simultáneamente y
maximice los márgenes de cada cada clase con el resto de ejemplos. A grandes rasgos, es la idea del
método uno frente al resto unificado en una sola función objetivo. Dado un conjunto de l ejemplos
S = {(x1 , y1 ), . . . , (xl , yl )}, xi ∈ Rd correspondientes a k clases distintas, yi ∈ {1, . . . , k}, la formulación
general del problema primal en el espacio de características es:
1 k l
mı́n ∑ kwm k2 +C ∑ ∑ ζi,t
2 m=1 i=1 t6=yi
(2.1)
s.a wyi T Φ(xi ) + byi ≤ wyi T Φ(xi ) + bt + 2 − ζi,t ,
ζi,t ≥ 0, i = 1, . . . , l , t ∈ 1, . . . , k r yi ,
donde wm son cada uno de los vectores direccionales del hiperplano separador en el espacio Hilbert
correspondiente para cada problema de clasificación binario, b ∈ Rk son los términos independientes
para cada uno de los k clasificadores lineales, que se almacenan en un vector y la matriz ζ ∈ Rl×k las
variables de holgura. Las variables de holgura ζi,m = 1 − fyi (xi ) + fm (xi ), m ∈ 1, . . . , k r yi , si son positi-
vas representan la desviación respecto al margen correcto entre la clase i y otra clase m (ver figura 2.1).
Considerar la función [.]+ ≡ max(0, .), definimos la función de pérdida como ξi (1) = ∑m6=yi [ζi,m ]+ . La
función de decisión resultante es:
La principal desventaja de este método es que el tiempo computacional puede ser muy grande dado
la enorme cantidad de variables en el problema de optimización cuadrática.
Introducción a las SVM - Elena Campo León 13
1 k l
mı́n ∑ kwm k2 +C ∑ ξi
2 m=1 i=1
(2.2)
s.a wyi T Φ(xi ) − wyi T Φ(xi ) ≤ 1 − δyi ,t − ξi ,
i = 1, . . . , l, t ∈ 1, . . . , k,
La siguiente técnica se basa en estos algoritmos [CS2001] para desarrollar un método mas simplifi-
cado llamado SimMSVM, mediante la relajación de las restricciones. Dicho de otro modo resolver un
único problema de programación cuadrática de l variables es suficiente para resolver un problema de
clasificación multiclase.
SimMSVM
Con el objetivo de reducir el tamaño del problema, el número de restricciones debe ser proporcio-
nal al número de ejemplos l en lugar de l × k. Para construir el clasificador multiclase de SimMSVM
introducimos las siguientes funciones de pérdida relajadas,
k
1
ξi (3) = [ ∑ ζi,m ]+ .
k − 1 m=1,m6=yi
La pérdida sufrida es linealmente proporcional a la media de las distancias entre el ejemplo y el margen
correspondiente a su clase. La relación entre las funciones de pérdida ξi (1) , ξi (2) , ξi (3) es la que sigue:
Es de esperar que la función de pérdida relajada ξi (3) incurra en mas errores de clasificación (recor-
dar capítulo 1) en el sentido de que la pérdida para cada ejemplo puede no estar entre 0 y 1, y por tanto
el ejemplo estar mal clasificado. Sin embargo en la práctica estamos dispuestos a admitir cierto numero
tolerable de errores de clasificación pues de esta forma obtenemos una velocidad significativa durante
el proceso de entrenamiento.
14 Capítulo 2. Clasificación multinomial y regresión
Figura 2.1: Clasificación multiclase. Representamos tres clases con círculos, rectángulos y triángulos.
Las lineas de trazo grueso representan posibles frontera de decisión. Las lineas punteadas son margenes
positivos para cada par de clases delimitadas por la frontera de decisión. Observar que para un ejemplo
correctamente clasificado como x1 tenemos que ξi (1) = ξi (2) = ξi (3) = 0 puesto que las variables de
holgura son negativas ζ1,2 < 0, ζ1,3 < 0. En el caso opuesto el ejemplo x2 esta mal clasificado y viola
las dos fronteras de los margenes ζ2,1 > 0, ζ2,3 > 0. Los tres métodos generan una pérdida [Modificado
de Fuente: Figura 2.1 [WX2014]]
Tras la aplicación de las nuevas funciones de pérdida, el problema (2.2) de Crammer y Singer queda:
1 k 2
l
mı́n ∑ mkw k +C ∑ ξi
2 m=1 i=1
1 (2.3)
s.a wyi T Φ(xi ) − wm T Φ(xi ) ≤ 1 − ξi ,
k − 1 m6∑
=yi
ξi ≥ 0, i = 1, . . . , l.
Para transformar el problema a su dual usamos los argumentos habituales de KKT (ver capítulo 2
de [WX2014]). La función de decisión resultante es
Los métodos propuestos por Weston y Watkins, Crammer y Singer satisfacen el rango [0,1] de
la función de pérdida. Sin embargo en la práctica son de una gran complejidad a nivel computacional
debido al gran tamaño del problema de optimización cuadrática cuyo número de variables es el producto
del numero de ejemplos l por el numero de clases k. SimMSVM reduce el tamaño del problema dual
de l × k a l variables introduciendo una cota del error de clasificación relajada. En conjuntos de datos
reales SimMSVM alcanza una velocidad satisfactoria durante el proceso de entrenamiento, al mismo
tiempo que mantiene a la hora de clasificar una exactitud muy competitiva frente a los otros métodos de
resolución de problemas multiclase.
Introducción a las SVM - Elena Campo León 15
Definimos el ruido o perturbación aleatoria ∼ N (0, σ ) como el error en la medición del valor
y, es decir y = f (x) + . Para permitir cierto ruido en los ejemplos de entrenamiento se puede relajar la
condición de error entre el valor predicho por la función y el valor real. Para esto se utiliza la función
de perdida -insensible, L , definida por:
0 si |y − f (x)| ≤ ,
L (x) = (2.4)
|y − f (x)| − en otro caso.
Es una función lineal con una zona insensible de anchura 2, en la que la función de pérdida toma valor
nulo. Eligiendo esta función permitimos cierta flexibilidad en la función solución, de forma que todos
los ejemplos que quedan confinados en la región tubular no serán considerados vectores soporte, pues
como hemos visto el coste asociado a la función de pérdida es 0. En la práctica es muy difícil lograr
un modelo de regresión lineal con error de predicción cero por ello recurriremos al concepto de margen
blando introducido en el capitulo 1.
Definimos las variables de holgura como la distancia al ejemplo medida desde la zona tubular del
hiperplano de regresión. Las variables de holgura ξi + y ξi − permitirán cuantificar el error de predicción
que se esta dispuesto a admitir para cada ejemplo de entrenamiento y con la suma de todas ellas el coste
asociado a los ejemplos con un error de predicción no nulo. Tomaremos ξi + > 0 cuando la predicción del
ejemplo f (xi ) es mayor que su valor real, yi , en una cantidad superior a equivalentemente f (xi ) − yi >
. Análogamente ξi − > 0 cuando el valor real del ejemplo es mayor que su predicción en una cantidad
superior a , es decir, yi − f (xi ) > . En cualquier otro caso las variables de holgura toman valor cero.
Notar que ambas variables no pueden tomar simultáneamente valor distinto de cero, ocurre siempre que
−
ξi + ξ˙i = 0 (ver figura 2.2).
Figura 2.2: SVR con margen blando: se muestra la relación entre las variables de holgura, ξi − ,ξ j + ,
asociadas a ejemplos que quedan fuera de la zona tubular -insensible y la función de pérdida, L .
[Fuente: Figura 8 [C2014]]
16 Capítulo 2. Clasificación multinomial y regresión
Con todo esto ya podemos plantear el problema a optimizar. Nuestro objetivo es minimizar la su-
ma de las funciones de pérdida asociadas, cada una a un ejemplo del conjunto de entrenamientos 1
∑ni=1 L (yi , f (xi )) = ∑i∈zona no tubular |yi − f (xi )| − . Esto es equivalente a maximizar la zona tubular
definida por la función de pérdida, en la cual esta toma valor nulo2 por tanto maximizar equivale a
minimizar kwk. Todo ello unido a la penalización impuesta por las variables de holgura definen un pro-
blema de optimización análogo al problema de clasificación con margen blando (1.15) con la salvedad
de que ahora tenemos dos tipos de variables de holgura:
n
1
mı́n kwk2 +C ∑ (ξi + + ξi − )
2 i=1
s.a (hw, xi i + b) − yi − − ξi + ≤ 0, (2.5)
−
yi − (hw, xi i + b) − − ξi ≤ 0,
ξi + , ξi − ≥ 0, i = 1, . . . , n.
La transformación al problema dual (ver [C2014]) es análoga a las vistas hasta ahora con la diferencia
de que consideraremos cuatro familias de multiplicadores de Lagrange: αi + , αi − , βi + , βi − .
n n n
1
máx ∑ (αi − − αi + )yi − ∑ (αi − + αi + ) − 2 ∑ (αi − − αi + )(α j − − α j + )hxi , xj i
i=1 i=1 i, j=1
n
(2.6)
s.a ∑ (αi + − αi − ) = 0,
i=1
0 ≤ αi + , αi − ≤ C, i = 1, . . . , n.
El valor óptimo de b∗ se obtiene (ver [C2014]) a partir de las restricciones resultantes de la aplicación
de la segunda condición KKT y las restricciones sobre el dual, de forma que:
Observar que para definir el hiperplano de regresión tenemos en cuenta los ejemplos con función de
pérdida no nula, es decir, los que se encuentran en el exterior de la región tubular. Visto en términos de
los parámetros introducidos anteriormente, para los vectores soporte se deduce de las condiciones KKT
que αi + αi − = 0, entonces
para los ejemplos que están fuera de la zona tubular se cumplirá ξi + ξi − = 0, si ξi − = 0 y ξi + > 0
entonces αi + = C y αi − = 0 y si ξi − > 0 y ξi + = 0 entonces αi − = C y αi + = 0.
los vectores soporte que caen justo en la frontera de la zona de sensibilidad verifican que si
0 < αi + < C entonces αi − = 0, en ese caso debe ser ξi + = 0 y ξi − = 0. Análogamente para el
otro caso.
1 Enla práctica se minimiza ∑i∈zona no tubular (yi − f (xi )2 dada la complejidad en el manejo del valor absoluto.
2 Observar 1
que la zona tubular juega en el problema de regresión el mismo papel que el margen τ = kwk en el problema de
clasificación.
Introducción a las SVM - Elena Campo León 17
Los ejemplos para los que αi + = αi − = 0, no son considerados vectores soporte, se encuentran dentro
de la región tubular.
Cuando los ejemplos no pueden ajustarse por una función lineal, recurrimos al igual que en el pro-
blema de clasificación, al uso de funciones Kernel. A través de un Kernel adecuado se induce un espacio
Hilbert, denominado también espacio de características, en este sí es posible ajustar los ejemplos trans-
formados mediante un regresor lineal, que sera de la forma:
n
f (x) = ∑ (αi − − αi + )K(x, xi ). (2.8)
i=1
Los coeficientes αi + , αi − se obtienen como resultado de resolver el problema dual que resulta de (2.6)
con los productos escalares sustituidos por las funciones Kernel.
n n
1 n
máx ∑ (αi − − αi + )yi − ∑ (αi − + αi + ) − 2 i,∑
(αi − − αi + )(α j − − α j + )K(xi , xj )
i=1 i=1 j=1
n
(2.9)
s.a ∑ (αi + − αi − ) = 0,
i=1
0 ≤ αi + , αi − ≤ C, i = 1, . . . , n.
En problemas de clasificación tenemos que elegir un Kernel adecuado y un parámetro C. Para re-
solver problemas de regresión mediante SVRs a lo anterior, se añade la selección de un adecuado .
Ambos parámetros C y afectan a la complejidad del modelo. En el caso de problemas de regresión
con ruido, el parámetro debería ser elegido de forma que refleje la varianza del ruido de los datos.
Puesto que en la mayoría de casos prácticos es posible obtener una medida aproximada de la varianza
del ruido a partir de los datos de entrenamiento. Para problemas de regresión sin ruido (problemas de
interpolación) el valor corresponde a la exactitud preestablecida de interpolación, de forma que, cuan-
to mayor sea el valor de , menor número de vectores soporte se necesitarán, y viceversa. Por otro lado,
la metodología usada para seleccionar los valores óptimos de C y el resto de parámetros del kernel, se
basa normalmente en técnicas de validación cruzada al igual que en clasificación.
Capítulo 3
Aplicaciones prácticas
Las variaciones de SVM para los que existe solución implementada son los siguientes:
ν-clasificación, este modelo permite un mayor control sobre el numero de vectores soporte espe-
cificando un parámetro adicional ν que aproxima la proporción de vectores soporte.
Clasificación de clase única (novelty detection). Este modelo trata de encontrar el soporte de una
distribución y por lo tanto permite la detección de valores atípicos.
En cuanto a los kernels, el gaussiano y el laplaciano son generalmente usados cuando no hay ningún
conocimiento previo del conjunto de datos dada su validez general. El kernel lineal es útil cuando trata-
mos grandes vectores con datos muy dispersos, como es el problema de la categorización de un texto.
El kernel polinomial es comúnmente usado para el procesamiento de imagenes y el sigmoide para redes
neuronales. Por último los splines y el kernel anova se suelen emplear en problemas de regresión. (ver
[KMH2006])
La mayor parte del software existente esta escrito en C o C++, como la biblioteca libsvm [M2015],
ganadora del premio ’IJCNN 2001 Challenge’, que proporciona una robusta y rápida implementación de
SVM y produce resultados muy competentes en la mayoría de problemas de regresión y clasificación.
También destacan SVMlight, SVMTorch, Royal Holloway Support Vector Machines, mySVM y
M-SVM. Otras bibliotecas proveen de interfaces para MATLAB como The MathWorks, SVM and
Kernel Methods Matlab Toolbox o MATLAB Support Vector Machine Toolbox y la SVM toolbox
for Matlab (para más detalle ver [KMH2006]).
19
20 Capítulo 3. Aplicaciones prácticas
Actualmente existen en R cuatro bibliotecas con las funciones necesarias para estimar SVM.
La biblioteca kernlab proporciona una interfaz para ksvm. Dispone de una gran cantidad de
funciones kernel y permite la resolución de los problemas del apartado anterior y además C-
BSVM (C-clasificación con una restricción sobre las cotas) y su análogo en regresión -BSVM.
Además el optimizador utilizado también es SMO.
klaR incluye una interfaz para SVMlight. Esta biblioteca es aplicable a C-SVM para clasificación
y -SVM en regresión. En clasificación multiclase SVMlight usa el método 1VR. Los problemas
de optimización cuadrática anteriores se resuelven con el método chuncking (consultar Anexo A).
Finalmente svmpath implementa un algoritmo con un coste computacional mínimo, que resuelve
el problema de C-clasificación en el caso binario para todos los valores del parámetro regulador
del coste λ = C1 . En este caso los únicos kernels utilizados son el gaussiano y el polinomial.
Resumiendo kernlab es una implementación muy flexible que incluye la gran mayoría de formula-
ciones y kernels de SVM, sin embargo carece de la herramienta necesaria para la selección de un modelo
adecuado. e1071 incluye una herramienta de selección de modelos, pero no ofrece tanta flexibilidad en
la elección del kernel. La biblioteca klaR proporciona una interfaz muy básica para SVMlight y esta
permitida solo para uso no comercial. svmpath se usa fundamentalmente como herramienta explorato-
ria para encontrar el valor óptimo del parámetro regulador del coste λ = C1
Nuestro objetivo es a partir de este conjunto de datos construir una máquina SVM que diagnostique
con la mayor certeza posible el tipo de tumor que padece una nueva paciente. Para ello usaremos la
biblioteca e1071 disponible en R. Comenzaremos realizando una partición del conjunto de datos inicial
(dataset), en dos subconjuntos:
trainset: son los ejemplos con los que entrenamos, es decir, con los que construiremos el modelo.
El tamaño de trainset es entorno al 70 % del volumen de ejemplos de dataset y son seleccionados
al azar.
testset: ejemplos con los que comprobaremos la calidad de la máquina obtenida. Es el 30 % res-
tante de dataset.
Las ordenes que usamos en R son las siguientes (fijando previamente una semilla para garantizar la
reproducibilidad de los resultados obtenidos):
Introducción a las SVM - Elena Campo León 21
La búsqueda de los parámetros óptimos, tanto del kernel como el del coste C, se realiza mediante
técnicas de validación cruzada con k = 10 bloques. La función tune.svm crea un mallado de tantas
dimensiones como parámetros a optimizar. Para cada tupla del mallado, se divide el conjunto de datos
trainset en k bloques. Se ajustan k modelos de SVM considerando como conjuntos de de entrenamiento
k-1 bloques, y con el k-ésimo bloque, se prueba el modelo hallado, obteniéndose el error. El error de
la validación cruzada para esa tupla de parámetros del mallado, se halla realizando la media aritmética
de los errores de los k modelos. La salida que da R es la tupla de parámetros del kernel y el coste, que
proporcionan el mínimo error.
En este caso, estudiaremos la calidad del clasificador sobre tres tipos de kernels: polinómico, radial
y sigmoide. Aplicamos tune.svm sobre trainset para obtener los parámetros óptimos propios de cada
kernel (las ordenes que mostraremos a lo largo del capítulo son para un kernel radial. El script completo
con las sentencias para el kernel sigmoide y polinómico se pueden consultar en el Apéndice C).
set.seed(150516)
tuned1 <- tune.svm(V2~., data = trainset, gamma = 10^(-6:2), cost =10^(0:3),
kernel="radial")
Cuadro 3.1: parámetros óptimos para cada tipo de kernel seleccionado. R denota a los parámetros de la
siguiente forma γ ≡ gamma, C ≡ cost, τ ≡ coef0, p ≡ degree
.
Seguidamente usamos la función svm para ajustar el modelo óptimo para cada kernel.
Para comparar la calidad de cada modelo generado, libre del peligro de un sobreajuste, usamos las
funciones predict y tab aplicadas sobre testset que nos proporcionan una matriz de confusión, una
herramienta muy útil en la visualización del rendimiento de un algoritmo de aprendizaje estadístico.
Sin pérdida de generalidad, en el ámbito médico podemos considerar cuatro posibles conceptos
asociados a cada elemento de la matriz de confusión:
Falso Positivo (FP), el paciente da positivo, siendo falso que padece la enfermedad. Se le predice
que tiene tumor maligno, cuando tiene tumor benigno.
Verdadero negativo (TN), el paciente da negativo, siendo verdad que no posee la enfermedad.
Se le predice tumor benigno, siendo cierto.
Falso negativo (FN), el paciente da negativo en la prueba, cuando realmente esta enfermo. Se le
predice que tiene tumor maligno, cuando tiene tumor benigno.
Esta información la recoge la matriz de confusión de la siguiente forma:
Ahora, a partir de la matriz mostrada en la Figura 3.1, es posible obtener una serie de métricas útiles
para estimar el rendimiento del clasificador:
Sensibilidad: es la probabilidad de que para un sujeto enfermo se obtenga en una prueba diag-
nóstica un resultado positivo. La sensibilidad caracteriza la capacidad de la prueba para detectar
la enfermedad en sujetos enfermos.
TP
Sensibilidad =
T P + FN
Especificidad: es la probabilidad de que un sujeto sano tenga un resultado negativo en la prueba.
La especificidad caracteriza la capacidad de la prueba para detectar la ausencia de la enfermedad
en sujetos sanos.
TN
Especificidad =
T N + FP
Precisión:
TP
Precisión =
T P + FP
En el cuadro 3.2 podemos comparar nuestros clasificadores en función de la sensibilidad, especifi-
cidad y precisión.
Cuadro 3.2: sensibilidad, especificidad, precisión y AUC para cada modelo estimado.
Puesto que los valores anteriores son mejores cuanto mas próximos están a 1, observamos que los
tres clasificadores son buenos, sin embargo, para compararlos y decidir cual de ellos es el mejor, nece-
sitamos introducir una nueva herramienta, las curvas ROC.
Introducción a las SVM - Elena Campo León 23
Una curva ROC (Receiver Operating Characteristics), es una descripcion bidimensional del ren-
dimiento de un clasificador, basada en la evolución conjunta de la sensibilidad y la especificidad. El
análisis de las curvas ROC ha sido principalmente usado en el área de la medicina con el fin de anali-
zar la utilidad de una prueba diagnóstica. El objetivo es determinar el ”punto de corte” para el que se
alcanza la sensibilidad y especificidad más alta. Para formular el diagnóstico de una determinada enfer-
medad, la prueba diagnostica se apoya sobre ese punto de corte a partir del cuál se decide la presencia
del diagnostico [F2005]. Recientemente, el uso de curvas ROC se ha generalizado al área del aprendi-
zaje estadístico, debido a que a partir del análisis de las métricas anteriores se obtiene la evaluación del
rendimiento de un modelo de clasificación.
Para construir la curva ROC usamos la función roc de la biblioteca pROC, previamente habremos
tomado de prediction el bloque de probabilidades relativo a la probabilidad estimada de que la varia-
ble diagnosis tome valor M. La razón de tomar probabilidades es que de esta forma podemos hacer un
barrido con todos los posibles puntos de corte. Cada punto de corte se corresponde con un punto en la
curva ROC, para el que se calcula el índice de Youden, definido como Sensibilidad + Especificidad-1.
Se elige como punto de corte óptimo el que maximiza el índice anterior. Observar que en la matriz de
confusión el punto de corte esta preestablecido en 0.5 de forma que si un ejemplo supera dicho umbral
se considera automáticamente que da positivo en la prueba.
pred.prob1<-attr(prediction1,"probabilities")[,1]
library(pROC)
rocCurve1 <- roc(response=testset[,2],predictor=pred.prob1)
El indicador mas utilizado para la comparación de distintas curvas ROC es el área bajo la curva
ROC o AUC. El AUC de un clasificador es equivalente a la probabilidad de que el clasificador ordene o
puntúe un ejemplo positivo elegido aleatoriamente más alto que uno negativo. La función auc nos da el
área bajo la curva y ci.auc el intérvalo de confianza de este indicador.
auc(rocCurve1)
ci.roc(rocCurve1)
En medicina un test se considera excelente cuando el AUC esta entre 0.97 y 1. Observando la colum-
na AUC del cuadro 3.2 podemos deducir que la calidad de nuestros clasificadores es excelente, siendo
el mejor el de kernel radial.
Figura 3.2: Curva ROC obtenida en R, representa el rendimiento del modelo con kernel radial.
24 Capítulo 3. Aplicaciones prácticas
En la figura 3.2 observamos que el punto de corte para el que se maximiza el índice de Youden es
0.624, para el que se alcanza una sensibilidad y especificidad de 0.953 y 1. Por tanto se produce una
ligera mejora respecto a los resultados obtenidos por defecto con el umbral 0.5. En principio podríamos
tomar como punto de corte para la prueba diagnóstica el obtenido mediante curvas ROC.
Nuestros resultados, tras haber optimizado por validación cruzada los parámetros del modelo nos
dan un rendimiento muy similar al obtenido en [AAS2012], donde se usan métodos de clasificación
combinados con el objetivo de mejorar el rendimiento individual de cada uno.
Anexos
25
Apéndice A
Optimización cuadrática
En este anexo se hace un resumen de las principales ideas de la teoría de optimización, orientado a
la resolución de problemas asociados con el uso de SVMs (para mayor detalle consultar [F1987]).
donde f es la función a optimizar y las gi son las restricciones. La solución del problema primal, x∗ ,
cumplirá que gi (x∗ ) ≤ 0 y f (x∗ ) ≤ f (x) ∀x t.q. gi (x) ≤ 0, donde i = 1, . . . , n. Se define la función de
Lagrange como:
n
L(x, α) = f (x) + ∑ αi gi (x),
i=1
donde los coeficientes αi ≥ 0 reciben el nombre de multiplicadores de Lagrange. Esta función incorpora
la función objetivo o función a optimizar y las funciones restricción en una única función. A partir de la
función de Lagrange se puede definir el problema dual como:
La teoría de la optimalidad asegura que bajo ciertas condiciones resolver el problema dual es equivalente
a hallar la solución del primal asociado y viceversa. La ventaja de esta transformación es que normal-
mente el problema dual es más fácil de resolver que el primal. Los dos siguiente teoremas muestran la
relación existente entre las soluciones de los dos problemas.
Teorema. Sean x y α vectores tales que satisfacen las restricciones respectivas del problema primal y
dual, es decir, gi (x) ≤ 0 y αi ≥ 0, con i = 1, . . . , n, entonces ϕ(α) ≤ f (x).
Del teorema anterior se pueden extraer dos corolarios. El primero establece que el problema dual
está acotado superiormente por el problema primal. El segundo permite afirmar que si ϕ(α) = f (x),
entonces α y x son soluciones, respectivamente, del problema dual y primal.
Este teorema establece una heurística para resolver, simultáneamente, el problema primal y dual.
De forma que estaremos más cerca de la solución, a medida que la diferencia sea más pequeña. La solu-
ción se alcanza cuando la diferencia |ϕ(α) − f (x)| sea más pequeña. La solución se alcanza cuando la
diferencia es nula. Esta solución corresponde a un punto silla de la función lagrangiana, caracterizado
27
28 Capítulo A. Optimización cuadrática
∂ f (x∗ ) n
∂ gi (x∗ )
+ ∑ αi = 0, j = 1, . . . , d,
∂ xj i=1 ∂ xj
αi∗ gi (x∗ ) = 0, i = 1, . . . , n,
El interés del Teorema de Karush-Kuhn-Tucker es que establece las condiciones que han de cum-
plirse para poder resolver el problema primal gracias al dual. Así, partiendo del problema primal, se
construye la función lagrangiana. Seguidamente, se aplica la primera condición del teorema de KKT a
dicha función y esto permite obtener un conjunto de relaciones que, sustituidas en la función de Lagran-
ge, harán desaparecer todas las variables primales de dicha función. Este paso es equivalente a calcular
ϕ(α) = ı́nfx∈Ω L(x, α). La función dual así obtenida, sólo dependerá de los multiplicadores de Lagran-
ge. También es posible que, del conjunto de relaciones obtenido al aplicar la primera condición KKT,
surjan restricciones adicionales para las variables duales (multiplicadores de lagrange).
En el caso de que la función f sea cuadrática y las gi restricciones lineales, el problema (A.1) se
dice que es de optimización cuadrática:
1
mı́n f (x) = xT Qx + cT x
2
s.a gi (x) = ai T x + bi ≤ 0, i = 1, . . . , k, (A.3)
hi (x) = di T x + ei = 0, i = 1, . . . , l,
Cuando el problema de optimización es cuadrático, como caso particular del Teorema de Karush-
Kuhn-Tucker se deduce el siguiente corolario:
Corolario. Sea el problema de optimización cuadrática (A.3), la solución óptima (x∗ , α ∗ , β ∗ ) existe si
y solo si se satisfacen las siguientes condiciones:
∂ f (x∗ ) n
∂ gi (x∗ ) n
∂ hi (x∗ )
+ ∑ αi + + ∑ βi = 0, j = 1, . . . , m,
∂ xj i=1 ∂ xj i=1 ∂ xj
αi∗ gi (x∗ ) = 0, i = 1, . . . , k,
αi∗ ≥ 0, i = 1, . . . , k,
∗
hi (x ) = 0, i = 1 . . . , l.
Una vez hemos transformado el problema (A.3) a su dual se procede a su resolución mediante
técnicas de programación cuadrática. Realizamos una breve reseña sobre algunos de los algoritmos más
utilizados, para mayor detalle consultar [KMH2006],[AFP].
SMO (Sequential Minimization Optimization). Este algoritmo esta basado en el método anterior
con la diferencia de que ahora, en cada iteración, se resuelve de forma analítica un problema
cuadrático usando únicamente dos ejemplos (conjunto activo). De esta forma en cada iteración
se actualizan los valores de los αi correspondientes a los ejemplos para los que se ha resuelto el
problema. Actualmente, las bibliotecas más potentes, con las funciones necesarias para estimar
SVM, utilizan SMO como optimizador cuadrático.
30 Capítulo A. Optimización cuadrática
Apéndice B
Los datos de Wisconsin Diagnostic Breast Cancer (WDBC) fueron recogidos para un estudio rea-
lizado por el Dr. William H. Wolberg, W. Nick Street y Olvi L. Mangasarian, investigadores de la
universidad de Wisconsin en Noviembre de 1995. El objetivo de dicho estudio consistía en diagnosticar
mediante técnicas de aprendizaje estadístico el tipo de tumor de mama de cada paciente dependiendo de
las características de los núcleos celulares extraídos.
Para cada uno de los 569 pacientes se tomó una imagen de tejido tumoral procedente de la mama.
De las 32 variables del conjunto de datos las dos primeras son relativas a la identificación del paciente
y el diagnóstico de su tumor:
Número de historia clínica.
Diagnóstico o diagnosis del tumor del paciente (M = maligno, B = benigno). Esta variable se
denota V2 en el conjunto de datos dataset, indica la etiqueta de cada ejemplo.
En cada imagen se recogió información sobre 10 características de cada núcleo celular del tejido:
radio, es la media de las distancias del centro a los puntos de su perímetro.
textura, es la desviación estándar de los valores de la escala de gray.
perímetro.
área.
suavidad, es la variación local de las longitudes del radio.
perímetro2
compactitud, definida por area−1 .
31
32 Capítulo B. Descripción variables del conjunto de datos
Apéndice C
C.1. Script
dataset <- read.csv("C:/Users/Vaio/Desktop/TFG/aplicaciones practicas
TFG/dataset.txt", header=FALSE)
View(dataset)
#para el kernel radial hallamos los parámetros gamma y coste usando la técnica
de validación cruzada
#fijamos la semilla antes de cada simulación
set.seed(150516)
33
34 Capítulo C. Script R y salidas no incluidas en la memoria
summary(model1)
pred.prob1<-attr(prediction1,"probabilities")[,1]
library(pROC)
rocCurve1 <- roc(response=testset[,2],predictor=pred.prob1)
auc(rocCurve1)
ci.roc(rocCurve1)
plot(rocCurve1,legacy.axes=TRUE,print.thres=TRUE)
#kernel sigmoide
set.seed(150516)
tuned2 <- tune.svm(V2~., data = trainset, gamma = 10^(-6:2), cost =10^(-1:3),
coef0=(-2:2),kernel="sigmoid")
summary(tuned2)
pred.prob2<-attr(prediction2,"probabilities")[,1]
library(pROC)
rocCurve2 <- roc(response=testset[,2],predictor=pred.prob2)
auc(rocCurve2)
ci.roc(rocCurve2)
plot(rocCurve2,legacy.axes=TRUE,print.thres=TRUE)
#kernel polinomial
set.seed(150516)
Introducción a las SVM - Elena Campo León 35
pred.prob3<-attr(prediction3,"probabilities")[,1]
library(pROC)
rocCurve3 <- roc(response=testset[,2],predictor=pred.prob3)
auc(rocCurve3)
ci.roc(rocCurve3)
plot(rocCurve3,legacy.axes=TRUE,print.thres=TRUE)
> library(e1071)
> set.seed(150516)
> tuned1 <- tune.svm(V2~., data = trainset, gamma = 10^(-6:2),
cost = 10^(-1:3),kernel="radial")
> summary(tuned1)
- best parameters:
gamma cost
0.001 100
Call:
svm(formula = V2 ~ ., data = trainset, kernel = "radial", gamma = 0.001,
cost = 100, probability = TRUE)
Parameters:
SVM-Type: C-classification
SVM-Kernel: radial
cost: 100
gamma: 0.001
( 19 20 )
Number of Classes: 2
Levels:
B M
> prediction1 <- predict(model1, testset[,-2],probability = TRUE)
> tab1 <- table(pred = prediction1, true = testset[,2])
> show(tab1)
true
pred B M
B 104 3
M 2 61
#Sensibilidad=61/(61+3)= 0,9531
#Especificidad=104/(104+2)= 0,9811
#Precisión=61/(61+2)= 0,9682
> pred.prob1<-attr(prediction1,"probabilities")[,1]
> library(pROC)
> rocCurve1 <- roc(response=testset[,2],predictor=pred.prob1)
> auc(rocCurve1)
Area under the curve: 0.9847
> ci.roc(rocCurve1)
95\% CI: 0.9614-1 (DeLong)
> plot(rocCurve1,legacy.axes=TRUE,print.thres=TRUE)
Introducción a las SVM - Elena Campo León 37
Call:
roc.default(response = testset[, 2], predictor = pred.prob1)
Figura C.1: Curva ROC obtenida en R, representa de rendimiento del modelo con kernel radial.
Sigmoide
> set.seed(150516)
> tuned2 <- tune.svm(V2~., data = trainset, gamma = 10^(-6:2), cost =10^(-1:3),
coef0=(-2:2),kernel="sigmoid")
> summary(tuned2)
- best parameters:
gamma coef0 cost
0.001 -1 1000
> model2 <- svm(V2~., data = trainset, kernel = "sigmoid", gamma = 0.001,
cost = 1000, coef0=-1, probability=TRUE)
> summary(model2)
Call:
svm(formula = V2 ~ ., data = trainset, kernel = "sigmoid", gamma = 0.001,
cost = 1000, coef0 = -1, probability = TRUE)
Parameters:
SVM-Type: C-classification
SVM-Kernel: sigmoid
cost: 1000
gamma: 0.001
coef.0: -1
( 15 19 )
Number of Classes: 2
Levels:
B M
> prediction2 <- predict(model2, testset[,-2],probability = TRUE)
> tab2 <- table(pred = prediction2, true = testset[,2])
> show(tab2)
true
pred B M
B 103 3
M 3 61
#Sensibilidad=61/(61+3)= 0,953125
#Especificidad =103/(103+3)= 0,9716
#Precisión=61/(61+3)= 0,953125
> pred.prob2<-attr(prediction2,"probabilities")[,1]
> library(pROC)
> rocCurve2 <- roc(response=testset[,2],predictor=pred.prob2)
> auc(rocCurve2)
Area under the curve: 0.9828
> ci.roc(rocCurve2)
95\% CI: 0.9581-1 (DeLong)
Introducción a las SVM - Elena Campo León 39
> plot(rocCurve2,legacy.axes=TRUE,print.thres=TRUE)
Call:
roc.default(response = testset[, 2], predictor = pred.prob2)
Figura C.2: Curva ROC obtenida en R, representa de rendimiento del modelo con kernel sigmoide.
Polinomial
- best parameters:
degree gamma coef0 cost
2 0.01 1 10
> model3 <- svm(V2~., data = trainset, kernel = "polynomial", gamma = 0.01,
cost = 10, coef0=1, degree=2 , probability=TRUE)
> summary(model3)
Call:
svm(formula = V2 ~ ., data = trainset, kernel = "polynomial", gamma = 0.01,
cost = 10, coef0 = 1, degree = 2, probability = TRUE)
Parameters:
SVM-Type: C-classification
SVM-Kernel: polynomial
cost: 10
degree: 2
gamma: 0.01
coef.0: 1
( 18 25 )
Number of Classes: 2
Levels:
B M
> prediction3<- predict(model3, testset[,-2],probability = TRUE)
> tab3 <- table(pred = prediction3, true = testset[,2])
> show(tab3)
true
pred B M
B 103 2
M 3 62
#Sensibilidad =62/(62+2)=0.9687
#Especificidad =103/(103+3)=0.9716
#Precisión=62/(62+3)=0.9538
> pred.prob3<-attr(prediction3,"probabilities")[,1]
> library(pROC)
> rocCurve3 <- roc(response=testset[,2],predictor=pred.prob3)
> auc(rocCurve3)
Area under the curve: 0.9844
> ci.roc(rocCurve3)
95\% CI: 0.9609-1 (DeLong)
> plot(rocCurve3,legacy.axes=TRUE,print.thres=TRUE)
Introducción a las SVM - Elena Campo León 41
Call:
roc.default(response = testset[, 2], predictor = pred.prob3)
Figura C.3: Curva ROC obtenida en R, representa de rendimiento del modelo con kernel polinomial.
Bibliografía
[AAS2012] M.B.A BDELHALIM , M.A BD - ELGHANY Z EID , G.I. S ALAMA, Breast Cancer Diagnosis
on Three Different Datasets Using Multi-Classifiers,International Journal of Computer and Infor-
mation Technology, 1, 1, September 2012.
[A1944] N. A RONSZAJN, La théorie générale des noyaux réproduisants et ses applications. Procee-
dings of the Cambridge Philosophical Society, 39, 133–153, 1944.
[AFP] A.A RTÉS ,A.R.F IGUEIRAS Y F.P ÉREZ, Double Chunking for Solving SVMs for Very Large Da-
tasets
[BGV1992] B.E. B OSER , I.M. G UYON , AND V.N. VAPNIK, A training algorithm for optimal margin
classifiers Proceedings of the 5th Annual ACM Workshop on Computational Learning Theory,
144–152, 1992.
[C2014] E. C ARMONA, Tutorial sobre Máquinas de Vectores Soporte (SVM), ETS de Ingeniería Infor-
mática, Universidad Nacional de Educación a Distancia, Madrid, 2014.
[CV1995] C. C ORTES AND V.N. VAPNIK . Support vector networks. Machine Learning, 20, 1–25,
1995.
[VCh1989] A.JA . C HERVONENKIS Y V.N. VAPNIK The necessary and sufficient conditions for con-
sistency of the method of empirical risk minimization. Yearbook of the Academy of Sciences of
the USSR on recognition, Classification, and Forecasting 2, Moscow 207-249, 1989.
[F2005] T. FAWCET An Introduction to ROC Analysis. In Pattern Recognition Letters, 861-874, 2005.
[F1987] R.F LETCHER Practical Methods of Optimization. John Wiley and Sons, Chichester,second
edition, 1987.
[VL1963] A. L ERNER Y V.N. VAPNIK . Pattern recognition using generalized portrait method. Auto-
mation and Remote Control, 24, 774–780, 1963.
[M2015] D. M EYER, Support Vector Machines The Interface to libsvm in package e1071, FH Techni-
kum Wien, Austria, 2015.
43
44 Capítulo C. Bibliografía
[V1995] V.N. VAPNIK . The Nature of Statistical Learning Theory. Springer, New York, 1995.
[V1998] V.N. VAPNIK Statistical Learning Theory. Wiley, New York, 1998.