Programación lineal

Anuncio
Programación lineal
Proyecto
fecha de entrega: 13 de mayo 2012.
1
Objetivos
En este proyecto vamos a utilizar programación cuadrática para resolver un problema relacionado con el diagnóstico de cáncer de mama.
Los datos del proyecto provienen de las bases generadas en el WDBC1 , accesibles al
público interesado gracias a los esfuerzos de las siguientes personas: a) Dr. William H.Wolberg
(Department of Surgery, University of Wisconsin Medical School); b) Prof. W. Nick Street
(Management Sciences Department, University of Iowa); c) Prof. O.L. Mangasarian (Computer Sciences Department, University of Wisconsin). Estos datos han sido utilizados para
realizar proyectos de cursos de programación lineal por diferentes autores, entre los que se
encuentran Steve Wright y Olvi Mangasarian2 . El programa Matlab wdbcData.m que utilizaremos en este proyecto para construir muestras de entrenamiento y de prueba fue escrito
por ellos.
El objetivo del proyecto consiste en desarrollar un clasificador que, utilizando información
obtenida de una muestra de tejido tumoral, diagnostique automáticamente si el tumor es
maligno o benigno. El clasificador se construye a partir de un conjunto de muestras de
tumores cuyo diagnóstico ha sido establecido previamente. Este conjunto se conoce como
conjunto de entrenamiento.
Cada muestra del conjunto de entrenamiento tiene la siguiente información:
• un identificador y una etiqueta con el diagnóstico maligno/benigno.
• 30 atributos reales con 4 dı́gitos de precisión, los cuales forman un vector en R30 .
La etiqueta divide al conjunto de entrenamiento en dos subconjuntos ajenos: M formado
por las muestras con diagnóstico de tumor maligno; B constituido por las muestras con
diagnóstico de tumor benigno.
Desde el punto de vista matemático el clasificador adopta la forma de un plano que separa
a ambos subconjuntos. Una vez que el clasificador ha sido construido, cualquier muestra
1
2
Wisconsin Diagnosis Breast Cancer Database
Computer Sciences Department, University of Wisconsin
1
nueva se puede diagnosticar automáticamente dependiendo del lado del plano separador en
el que la ubican sus 30 atributos.
El plano separador se define como
f (x) = wT x − γ
en donde el vector w ∈ R30 y la constante γ se desconocen; el vector x está formado por los
atributos de las muestras. Las condiciones que determinan a w y a γ son las siguientes
f (x) > 0 =⇒ x ∈ M,
f (x) ≤ 0 =⇒ x ∈ B.
En este punto es importante hacer notar que los subconjuntos B, M son ajenos pero no
necesariamente separables por una función lineal. Es decir que algunas muestras de entrenamiento van ser incorrectamente clasificadas por el separador.
Si representamos a los m elementos del conjunto M por una matriz M ∈ Rm×n , y a los
k elementos del conjunto B por una matriz B ∈ Rk×n , entonces el problema de escoger a w
y a γ se reduce a resolver el siguiente problema de optimización
min
w,γ
1
||(−M w
m
+ em γ + em )+ ||1 + k1 ||(Bw − ek γ + ek )+ ||1
en donde em y ek son vectores de dimensiones m y k respectivamente, con componentes
iguales a 1. La notación (u)+ tiene el siguiente significado
(u+ )i = max{ui , 0}.
El problema anterior minimiza aproximadamente el número de puntos que son clasificados incorrectamente mediante la minimización de la distancia de dichos puntos al plano separador.
La siguiente formulación elimina el inconveniente de (·)+ y de || · ||1
min
w,γ,y,z
s.a.
1 T
e y
m m
+ k1 eTk z
M w − em γ + y ≥ em
−Bw + ek γ + z ≥ ek ,
y ≥ 0, z ≥ 0.
Si los conjuntos B, M son linealmente separables, la formulación anterior puede generar
soluciones múltiples. Una forma de evitar este inconveniente consiste en agregar un término
cuadrático en la función objetivo. La formulación que utilizaremos en el proyecto es la
siguiente
min m1 eTm y + k1 eTk z + µ2 wT w
w,γ,y,z
s.a.
M w − em γ + y ≥ em
−Bw + ek γ + z ≥ ek ,
y ≥ 0, z ≥ 0.
en donde µ es un parámetro de penalización; si el valor de µ se incrementa la norma de w
decrece.
2
2
Metodologı́a
La base de datoswdbc.data se puede leer con el programa wdbcData para generar las matrices
M y B. El programa también tiene opciones para generar conjuntos de entrenamiento y
conjuntos de prueba.
1. Modificar el programa que implementa el algoritmo de pasos largos para que acepte
programas cuadráticos.
2. Incluir en el programa modificado un procedimiento para obtener un punto inicial
(x0 , λ0 , s0 ).
3. Utilizar σ = 0.5.
4. Organizar los datos del problema de programación cuadrática para alimentar al programa
5. Probar el programa calculando el plano separador correspondiente al conjunto entrenador definido por fracTest = 0.1 y reord = 0. Utilizar µ = 0.001 en la formulación.
Imprimir el número de muestras mal clasificadas, w, γ, y el valor de la función objetivo
en el óptimo.
6. Probar el programa calculando el plano separador correspondiente al conjunto entrenador definido por fracTest = 0.15 y reord = 1. Utilizar µ = 0.001 en la formulación.
Imprimir el número de muestras mal clasificadas, w, γ, y el valor de la función objetivo
en el óptimo.
La base de datos (wdbc.data y wdbc.names) y el programa wdbcData están disponible
en la página
http://allman.rhon.itam.mx/∼jmorales/
El archivo wdbc.names contiene información sobre el contenido y estructura de los datos
en el archivo wdbc.data.
3
Descargar