UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... ·...

259
1 UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD AZCAPOTZALCO DIVISIÓN: CBI Tesis que para la obtención del grado de Maestro en Ciencias de La Computación. Presenta el Ing. Brito Díaz Edgar Nahum. Asesor: Dr. Avilés Cruz Carlos. Título: Análisis y segmentación de micro texturas: Aplicación a imágenes mamográficas empleando la Transformada WaveletMéxico D.F. 17 de Diciembre de 2002

Transcript of UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... ·...

Page 1: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

1

UNIVERSIDAD AUTÓNOMA

METROPOLITANA

UNIDAD AZCAPOTZALCO DIVISIÓN: CBI

Tesis que para la obtención del grado de

Maestro en Ciencias de La Computación.

Presenta el Ing. Brito Díaz Edgar Nahum.

Asesor: Dr. Avilés Cruz Carlos.

Título:

Análisis y segmentación de micro texturas: “Aplicación a imágenes mamográficas empleando la Transformada Wavelet”

México D.F. 17 de Diciembre de 2002

Page 2: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

2

Resumen:

En México, la segunda causa de muerte es el cáncer[25]; en mujeres se presenta principalmente en la región cérvico-uterina y senos. En los últimos 20 años se ha observado que la edad promedio de aparición de problemas de cáncer mamario cada vez ataca a la mujer en edades más tempranas (antes 45 años y ahora 35, que son 10 años antes). Con lo anterior se pone de manifiesto que el tumor mamario se está convirtiendo en un problema de salud nacional.

Por otro lado, los médicos argumentan que son varios los factores que no permiten disminuir las estadísticas de mortalidad, por una parte los Centros de Salud Pública carecen del equipo y personal suficiente para atender adecuadamente a las personas que posiblemente hayan desarrollado el mal, por otro lado, una carente educación sexual en la población, que provoca poco éxito en las campañas de exploración, lo que conlleva a la detección del cáncer en etapas muy desarrolladas, y sea demasiado tarde para evitar la muerte. Finalmente, los especialistas se encuentran centralizados en las grandes ciudades, dejando a los pequeños poblados sin la capacidad de poder dar servicios de diagnóstico eficientes.

Dado el contexto anterior, es donde radica la importancia del presente proyecto de investigación donde se construyó una herramienta computacional auxiliar para el diagnóstico de tumores mamarios tanto benignos como malignos. La herramienta tiene la capacidad de caracterizar, clasificar y segmentar tumores de imágenes de tipo mamográficas.

Se hizo uso de la capacidad de multiresolución que tiene la Transformada Wavelet para seleccionar los coeficientes de frecuencias altas, medias y bajas más discriminantes y se usaron como atributos en los clasificadores de Bayes y KNN en sus dos modos de agrupamiento.

Se plantearon y validaron una serie de técnicas y metodologías propuestas para generar un producto que permite dar pautas al médico de zonas susceptibles de contener un tumor.

Palabras Clave: Reconocimiento de Patrones, Extracción de características, Wavelets, Métodos de reducción de correlación y dimensionalidad, Métodos de validación.

Page 3: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

3

Agradecimientos:

Quiero agradecer los conocimientos y la paciencia brindada por el Dr. Carlos Avilés,

quién me guió por este tema tan apasionante.

Al Dr. Jaime Navarro por el tiempo que dedicó conmigo al estudio de la Transformada

Wavelet.

Al Dr. René Arechiga, quien hizo más comprensible la Transformada Wavelet en tiempo

discreto.

Al Dr. Felipe Rafael Monroy Pérez, por el apoyo que nos dio a todos los alumnos siendo

coordinador de la Maestría en Ciencias de la Computación.

Al CONACYT por el patrocinio brindado en la realización de éste proyecto (clave

J31916A).

Page 4: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

4

Contenido:

1 Introducción............................................................................................. 8

1.1 Aspectos generales del cáncer de pecho en la mujer............................................ 8

1.2 Etapas del Cáncer del Seno ................................................................................ 11 1.2.1 Carcinoma In Situ ...................................................................................................................... 11

1.2.1.1 Etapa I................................................................................................................................................ 11 1.2.1.2 Etapa II............................................................................................................................................... 11 1.2.1.3 Etapa III.............................................................................................................................................. 12 1.2.1.4 Etapa IV ............................................................................................................................................. 12

1.3 Prevención del Desarrollo del Tumor................................................................... 13 1.3.1 Definición de Mamografía.......................................................................................................... 13 1.3.2 Consejos.................................................................................................................................... 14

2 Estado del Arte ...................................................................................... 16

3 Metodología ........................................................................................... 18

4 Objetivos de la Investigación............................................................... 20

5 Representación Digital de imágenes................................................... 22

5.1 Mecanismos de la Visión Humana....................................................................... 22

5.2 Definición de Procesamiento Digital de Imágenes............................................... 24 5.2.1 Imágenes Digitales .................................................................................................................... 25

6 Reconocimiento de Patrones Estadístico........................................... 26

6.1 Introducción ......................................................................................................... 26 6.1.1 Formulación de problemas de Reconocimiento de Patrones ................................................... 26

7 Extracción de características............................................................... 32

7.1 Notación............................................................................................................... 32

7.2 Extracción de Atributos Estadísticos (características) de una Imagen................. 37

7.3 Momentos de orden 3 y 4 .................................................................................... 38

7.4 Transformada de Fourier ..................................................................................... 41 7.4.1 Definición ................................................................................................................................... 41

7.5 Transformada Wavelet......................................................................................... 43 7.5.1 Notación..................................................................................................................................... 43 7.5.2 Conceptos Básicos.................................................................................................................... 45

7.5.2.1 Introducción....................................................................................................................................... 45 7.5.3 Resoluciones finas y asperas.................................................................................................... 46 7.5.4 Formas Wavelet......................................................................................................................... 46 7.5.5 Wavelets y sus Familias Asociadas .......................................................................................... 47 7.5.6 Transformada Wavelet Continua y Discreta.............................................................................. 53 7.5.7 Transformada Wavelet Inversa ................................................................................................. 54

Page 5: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

5

7.5.8 Detalles y Aproximaciones. ....................................................................................................... 54 7.5.9 El algoritmo de la Transformada Wavelet Rápida..................................................................... 57

7.5.9.1 Introducción........................................................................................................................................ 57 7.5.9.2 Filtros para calcular la TWD y la TWD Inversa (TWDI) ...................................................................... 57

7.5.10 TWD y TWD Inversa (TWDI) en una y dos Dimensiones ...................................................... 58

8 Métodos de Reducción de Correlación............................................... 66

8.1 Análisis en Componentes Principales (ACP) ....................................................... 66 8.1.1 Análisis en Componentes Principales para Espacios Multidimensionales ............................... 68 8.1.2 Conclusiones ............................................................................................................................. 71 8.1.3 Ejemplo...................................................................................................................................... 73 8.1.4 Reducción de Dimensionalidad en base al ACP....................................................................... 77

8.2 Análisis Factorial Discriminante (AFD)................................................................. 80 8.2.1 Introducción ............................................................................................................................... 80 8.2.2 Notación..................................................................................................................................... 82 8.2.3 Ejemplo...................................................................................................................................... 86

9 Clasificadores Estadísticos.................................................................. 94

9.1 Introducción ......................................................................................................... 94 9.1.1 Clasificadores Paramétricos y No Paramétricos. ...................................................................... 94

9.2 Clasificador de Bayes .......................................................................................... 95 9.2.1 Conceptos Fundamentales........................................................................................................ 97 9.2.2 Función de Densidad de Probabilidad Normal.......................................................................... 99

9.3 Clasificador KNN................................................................................................ 101 9.3.1 Clasificador KNN con Agrupamiento General ......................................................................... 101 9.3.2 Clasificador KNN con Agrupamiento por Clase ...................................................................... 103

10 Métodos de Validación ..................................................................... 104

10.1 Introducción ..................................................................................................... 104

10.2 Leave-one-out.................................................................................................. 105

10.3 Cross-validation ............................................................................................... 107

11 Implementación................................................................................. 110

11.1 Aprendizaje ...................................................................................................... 115

11.2 ACP ................................................................................................................. 118

11.3 AFD.................................................................................................................. 119

11.4 Prueba ............................................................................................................. 120

11.5 Aprendizaje y Prueba con Transformada Wavelet........................................... 121

11.6 Segmentación .................................................................................................. 124

12 Resultados......................................................................................... 126

12.1 Texturas Artificiales.......................................................................................... 126 12.1.1 Segmentaciones con Bayes .................................................................................................. 126

Page 6: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

6

12.1.2 Segmentaciones con KNN, Agrupamiento por Clase ........................................................... 127 12.1.3 Segmentaciones con KNN, Agrupamiento General .............................................................. 128

12.2 Texturas Naturales........................................................................................... 129 12.2.1 Segmentaciones con Bayes .................................................................................................. 129 12.2.2 Segmentaciones con KNN, Agrupamiento por Clase ........................................................... 130 12.2.3 Segmentaciones con KNN, Agrupamiento General .............................................................. 131

12.3 Mamografías sin Transformada Wavelet ......................................................... 132 12.3.1 Validación sin Transformada Wavelet con ACP.................................................................... 132 12.3.2 Segmentaciones con Bayes y ACP....................................................................................... 134 12.3.3 Segmentaciones con KNN, Agrupamiento por Clase y ACP ................................................ 136 12.3.4 Segmentaciones con KNN, Agrupamiento General y ACP................................................... 138 12.3.5 Validación sin Transformada Wavelet con AFD.................................................................... 139 12.3.6 Segmentaciones con Bayes y AFD....................................................................................... 141 12.3.7 Segmentaciones con KNN, Agrupamiento por Clase y AFD ................................................ 142 12.3.8 Segmentaciones con KNN, Agrupamiento General y AFD................................................... 144

12.4 Mamografías con Transformada Wavelet ........................................................ 146 12.4.1 Validación con Bayes y db10 ................................................................................................ 146 12.4.2 Validación con KNN, Agrupamiento por Clase y db10.......................................................... 148 12.4.3 Validación con KNN, Agrupamiento General y db10 ............................................................ 160 12.4.4 Validación con Bayes y haar ................................................................................................. 172 12.4.5 Validación con KNN, Agrupamiento por Clase y haar........................................................... 174 12.4.6 Validación con KNN, Agrupamiento General y haar ............................................................. 186 12.4.7 Segmentaciones con Bayes y db10 ...................................................................................... 198 12.4.8 Segmentaciones con KNN, Agrupamiento por Clase y db10 ............................................... 204 12.4.9 Segmentaciones con KNN, Agrupamiento General y db10 .................................................. 208 12.4.10 Segmentaciones con Bayes y haar..................................................................................... 212 12.4.11 Segmentaciones con KNN, Agrupamiento por Clase y haar .............................................. 215 12.4.12 Segmentaciones con KNN, Agrupamiento General y haar................................................. 218

Conclusiones ........................................................................................................... 222

Perspectivas ............................................................................................................ 224

Bibliografía............................................................................................................... 226 Libros ................................................................................................................................................ 226 Papers............................................................................................................................................... 227 Internet.............................................................................................................................................. 228

Anexo....................................................................................................................... 230

Page 7: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

7

Page 8: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

8

1 Introducción

1.1 Aspectos generales del cáncer de pecho en la mujer El cáncer del seno, un cáncer común en las mujeres, es una enfermedad en la cual se encuentran células cancerosas (malignas) en los tejidos del seno. Cada seno tiene entre 15 y 20 secciones llamadas lóbulos[26], los cuales a su vez se dividen en secciones más pequeñas llamadas lobulillos. Los lóbulos y lobulillos se conectan por tubos delgados llamados conductos (figura 1.1.1). El cáncer ductal, que es el tipo de cáncer más común del seno, se encuentra en las células de los conductos, mientras que el que se origina en los lóbulos o lobulillos se llama cáncer lobular y es el tipo de cáncer que con más frecuencia afecta a los dos senos. El cáncer inflamatorio del seno es un tipo especial de cáncer del seno que suele ser poco común. El seno da la impresión de estar inflamado pues presenta una apariencia rojiza y una temperatura tibia. La piel puede tener signos de surcos, ronchas o huecos en general. El cáncer inflamatorio del seno tiende a diseminarse rápidamente. Existe también lo que se conoce como “cáncer recurrente”; la enfermedad recurrente significa que el cáncer ha vuelto después de haber sido tratado ya sea al seno, a los tejidos blandos del tórax o a otra parte del cuerpo. El cáncer del seno hereditario comprende aproximadamente del 5% al 10% de todos los casos del cáncer del seno. Los genes de las células son los portadores de la información genética que se hereda de los padres. Se han encontrado varios genes defectuosos en varias pacientes de cáncer. Los familiares de las pacientes de cáncer del seno portadores de estos genes defectuosos corren mayor riesgo de desarrollar cáncer del seno o del ovario. Algunos genes defectuosos son más comunes en ciertos grupos étnicos. Se están desarrollando pruebas para identificar a los portadores de este defecto genético antes de que aparezca el cáncer[26].

Page 9: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

9

Figura 1.1.1 Esquema de la anatomía del pecho de la mujer.

Otro factor digno de consideración son los anticonceptivos hormonales ya que algunas investigaciones sugieren que hay una conexión entre el uso de los anticonceptivos y un ligero aumento en el riesgo de desarrollar cáncer del seno.

Es recomendable acudir con un médico si se observa cambios en los senos. Este puede recomendar que se realice una mamografía (figura 1.1.2), un tipo especial de radiografía de los senos que puede encontrar tumores que son demasiado pequeños para ser detectados mediante el tacto. Si se encuentra una masa en el seno, el médico quizás tenga que cortar un pedazo pequeño y observarlo bajo el microscopio para determinar la presencia de células cancerosas. Este procedimiento se conoce como biopsia. Algunas veces la biopsia se hace insertando una aguja en el seno con el propósito de extraer parte del tejido del seno. Si la biopsia indica que hay cáncer, es importante que se hagan algunos análisis de las células cancerosas (llamados análisis de receptores de estrógeno y progesterona).

Page 10: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

10

Figura 1.1.2 Realización de una mamografía.

Los análisis de receptores de estrógeno y progesterona pueden determinar el efecto de las hormonas en el crecimiento de las células cancerosas y también pueden proporcionar mayor información sobre la probabilidad de que el tumor vuelva.

Los resultados permiten que el médico decida si deberá emplear terapia hormonal para detener el crecimiento del cáncer. Se deberá llevar tejido del tumor a un laboratorio para que se efectúen análisis de estrógeno y progesterona durante la biopsia, ya que puede ser difícil conseguir suficientes células cancerosas más adelante.

La probabilidad de recuperación (pronóstico) y la selección de tratamiento dependerá de la etapa en la que se encuentra el cáncer (si solo se encuentra en el seno o si se ha diseminado a otros lugares del cuerpo), el tipo de cáncer del seno, ciertas características de las células cancerosas y si el cáncer se encuentra en ambos senos.

La edad, peso, estado menopáusico (si tiene o no aun periodo menstrual) y la salud en general de la paciente, también pueden afectar el pronóstico y la selección de tratamiento.

Page 11: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

11

1.2 Etapas del Cáncer del Seno Una vez detectado el cáncer del seno, se harán más análisis para determinar si el cáncer se ha diseminado del seno a otras partes del cuerpo. Este procedimiento se conoce con el nombre de clasificación por etapas. Para planear el tratamiento, el médico necesitará saber la etapa en la que se encuentra la enfermedad. Para la clasificación del cáncer del seno se emplean las siguientes etapas[26]. 1.2.1 Carcinoma In Situ

Alrededor del 15% o el 20% de los canceres del seno son canceres tempranos a los cuales se llama a veces carcinomas in situ.

Existen dos tipos de cáncer del seno in situ:

1.- Carcinoma ductal in situ (DCIS por sus siglas en ingles, también conocido con el nombre de carcinoma intraductal).

2.- Carcinoma lobular in situ (LCIS por sus siglas en ingles). El carcinoma lobular in situ no es cáncer, pero para fines de clasificación de la enfermedad, se le llama cáncer del seno in situ, carcinoma in situ o cáncer del seno en etapa 0.

Algunas veces el carcinoma lobular in situ se encuentra cuando se está llevando a cabo una biopsia para la detección de otra masa o anormalidad en la mamografía. Las pacientes con esta condición tienen una probabilidad del 25% de desarrollar cáncer del seno en cualquiera de los senos en los próximos 25 años.

1.2.1.1 Etapa I • El cáncer no mide más de 2 centímetros (cerca de 1 pulgada) y no se ha

extendido fuera del seno.

1.2.1.2 Etapa II

Se pueden presentar cualquiera de los siguientes casos:

• El cáncer no mide más de 2 centímetros pero se ha diseminado a los ganglios linfáticos debajo del brazo (los ganglios linfáticos axilares).

• El cáncer mide entre 2 y 5 centímetros (de 1 a 2 pulgadas). El cáncer puede o

no haberse diseminado a los ganglios linfáticos axilares. • El cáncer mide más de 5 centímetros (mas de 2 pulgadas), pero no se ha diseminado a los ganglios linfáticos axilares.

Page 12: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

12

1.2.1.3 Etapa III

La etapa III se divide en etapa IIIA y IIIB.

1. La etapa IIIA se reconoce por cualquiera de las siguientes características:

• El cáncer mide menos de 5 centímetros y se ha diseminado a los ganglios linfáticos axilares, y los ganglios linfáticos están unidos entre sí o a otras estructuras.

• El cáncer mide más de 5 centímetros y se ha diseminado a los ganglios linfáticos

axilares.

2. La etapa IIIB se reconoce por cualquiera de las siguientes características:

• El cáncer se ha diseminado a tejidos cerca del seno (la piel o la pared torácica, incluyendo las costillas y los músculos del tórax).

• El cáncer se ha diseminado a los ganglios linfáticos dentro de la pared torácica

cerca del esternón. 1.2.1.4 Etapa IV

El cáncer se ha diseminado a otros órganos del cuerpo, con mayor frecuencia a los huesos, los pulmones, el hígado o el cerebro; o el tumor se ha diseminado localmente a la piel y a los ganglios linfáticos dentro del cuello, cerca de la clavícula.

En la figura 1.2.1.4.1 se muestra el promedio anual de incidencia de cáncer de pecho por edades específicas en la que podemos observar que a partir de los 35 años la probabilidad de incidencia crece en forma significativa.

Edad Incidencia por 100,000 Edad Incidencia por 100,000 15-19 0.2 55-59 228.9 20-24 1.1 60-64 251.2 25-29 8.3 65-69 282.9 30-34 26.7 70-74 302.2 35-39 57.2 75-79 338.0 40-44 106.2 80-84 350.0 45-49 173.8 85+ 376.3 50-54 195.9

Figura 1.2.1.4.1 Promedio anual de incidencia de cáncer de pecho para edades especificas (en USA, muestra de 100, 000 mujeres).

Page 13: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

13

1.3 Prevención del Desarrollo del Tumor 1.3.1 Definición de Mamografía

La mamografía consiste en que los rayos X atraviesen el pecho comprimido e impriman una placa radiográfica[26,27], mostrando ésta una diferencia entre el tejido mamario normal y los tumores. Es un método muy fiable ya que permite detectar un tumor de tamaño muy pequeño que ni siquiera se nota al tacto.

Figura 1.3.1.1 Representación esquemática de los componentes de un sistema convencional para realizar una mamografía.

Existe disparidad de opiniones en cuanto al beneficio o perjuicio de las mamografías, según el Consejo Nacional de Investigación de Estados Unidos.

Seis mujeres de cada millón padecerán cáncer si se exponen a un nivel de radiación de 1 Rad., y los radiólogos usan una exposición de la paciente a unos 0.2 Rad. por exploración[27].

Hay un cierto acuerdo respecto a que la mamografía no es efectiva en mujeres jóvenes y que más bien representa un peligro por su exposición a la radiación.

En mujeres menores de 50 años la efectividad de la mamografía es muy baja, por tanto hay que tener en cuenta los efectos secundarios que puede provocar la exposición a la radiación, entre los 40 y los 50 años es más complicada la decisión ya que ni las

Page 14: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

14

organizaciones sanitarias se ponen de acuerdo en la conveniencia de someterse a exploraciones sistemáticas mediante mamografías.

La opinión de la Asociación Americana contra el Cáncer (ACS) junto con la OMS (Organización Mundial de la Salud), es que es recomendable una primera mamografía a los 35 años, la segunda a los 40 y a partir de aquí una cada 2 años hasta los 50, que pasarán a ser anuales[27]. 1.3.2 Consejos

Es conveniente diagnosticar a través de la mamografía, después de consultar a un ginecólogo, si se observa algunos de estos síntomas[27]:

• Quistes en el pecho • Hinchazón de la piel con tono anaranjado • Hoyuelos • Secreción de sangre • Cuando las venas superficiales de un pecho son más prominentes que en el otro.

Cuando el ginecólogo recomienda una mamografía es porque se está dentro del colectivo de riesgo, con la seguridad de que el aparato con la cual se realiza está en óptimas condiciones ya que una dosis más elevada de radiación de la permitida podría ser muy perjudicial para el organismo[27].

Page 15: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

15

Page 16: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

16

2 Estado del Arte Hasta la fecha no se tiene una herramienta computacional general, o que abarque una gran gama de microcalsificaciones y tumores detectados con buena precisión. Lo que se tiene hasta el momento es un software que detecta un tipo particular de tumores (software “oxval” de la universidad de Oxford).

El análisis mamográfico se ha estado haciendo de dos formas:

• Por medio de métodos estadísticos extrayendo parámetros como son: varianza, desviación estándar, momentos, fractales, cumulantes entre otros.

Con respecto a los clasificadores, los comúnmente usados son los estadísticos y los neuronales.

• Por métodos estructurales haciendo aproximaciones geométricas de zonas

susceptibles de contener tumores, como son: elipses, circunferencias, etc.

En una zona de tumor, la forma del tumor es básica para poder generar el diagnostico inicial. En el caso de zonas parecidas a estrellas, estas indican que es maligno, en contraparte, si la zona es circular o en forma de elipse, el tumor será de tipo benigno.

Recientemente, muchos autores han usado las técnicas de estimación de Bayes como una herramienta para la estimación de sus regiones y después clasificarlas[17]. La segmentación se hace estimando la mejor etiqueta para cada píxel por medio de estimaciones de Bayes para las distintas formas y etiquetas de clase. Un buen número de técnicas bayesianas han usado modelos de regiones para describir los enlaces estadísticos de los pixeles en regiones homogéneas[17]. El modelo del campo aleatorio de Markov (MRF)[20,21], ha sido extensivamente usado para modelar etiquetas de clase para los pixeles. El MRF modela las interacciones locales entre pixeles y permite el procesamiento local espacial. Posteriormente la imagen es segmentada (aproximadamente) calculando el máximo a posteriori (MAP) o el máximo de verosimilitud (ML) para las etiquetas de píxel [20,21]. Actualmente la Transformada Wavelet se ha usado con mucho éxito para la compresión, estimación, fusión, segmentación de documentos y síntesis de imágenes[22], y apenas comienza a ser empleada para la segmentación y clasificación de zonas texturizadas (zonas susceptibles de contener un tumor).

Page 17: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

17

Citemos por ejemplo: “Multiscale Document Segmentation using Wavelet-Domain Hidden Markov Models”, por Hyeokho Choi y Richard Baraniuk. En este artículo, los autores proponen un algoritmo de segmentación aplicado a documentos basado en wavelets y el modelo de Markov de árbol escondido (Hidden Markov Tree, HMT), el cual es una estructura gráfica en árbol que captura las propiedades estadísticas de los coeficientes de la Transformada Wavelet. El HMT es particularmente apropiado para imágenes que contienen singularidades como bordes, lo que nos proporciona un buen clasificador para distinguir entre diferentes texturas en los documentos. “Estudio comparativo de cuatro métodos de compresión para Imágenes de Resonancia Magnética Nuclear”, por Joaquín Azpiroz Leehan y Sonia Charleston Villalobos, UAM-I. En donde presentan un estudio acerca de las propiedades de compresión de cuatro métodos empleados actualmente para la compresión de imágenes que son; Transformada de Fourier, Transformada Cosenoidal, wavelets y wavelet paquets en donde se prueba que la Transformada Cosenoidal es superior mientras que la aplicación de wavelet paquets en un esquema de descomposición de cinco niveles y con una selección de la entropía de acuerdo al criterio del logaritmo de la energía proporciona los mejores resultados desde los puntos de vista estudiados en su artículo.

Page 18: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

18

3 Metodología En ésta investigación estamos interesados en evaluar la calidad de segmentación de tumores mamarios de los clasificadores de Bayes y KNN, utilizando los coeficientes wavelet a diferentes niveles de resolución como atributos. Decidimos aplicar este enfoque, porque se contaba con el respaldo de la investigación del Dr. Carlos Avilés en el Instituto Politécnico Nacional de Grenoble, en Francia[5], en donde se aplican estadísticas de orden superior para el análisis de texturas. Una imagen original puede representarse como la suma de dos imágenes, una de baja resolución, llamada también aproximación, y otra que contiene la diferencia de información entre dos niveles de diferente resolución o escala (detalles)[23].

La diferencia de información entre las aproximaciones de una imagen a diferentes niveles de resolución, puede extraerse al descomponer la imagen con la Transformada Wavelet.

Las aproximaciones de la imagen corresponden a las frecuencias más bajas, que es en donde se encuentra la información más importante, ya que las frecuencias bajas nos proporcionan un panorama general de la señal o imagen en estudio. Los detalles se subdividen en: detalles verticales, detalles horizontales y detalles diagonales.

Los detalles verticales representan las frecuencias verticales altas o bordes verticales, los detalles horizontales representan las frecuencias horizontales altas o bordes horizontales y los detalles diagonales, las altas frecuencias correspondientes a las esquinas o diagonales.

Se pretende calcular los atributos estadísticos de los coeficientes wavelet y usarlos como atributos para los clasificadores. Esto se va a hacer para dos wavelets madre y dos niveles de resolución. Aplicaremos tanto el Análisis en Componentes Principales, como el Análisis Factorial discriminante para reducir las dimensiones de los atributos y para reducir la correlación entre ellos. Se implementarán métodos de validación para determinar los parámetros óptimos para el desempeño de los clasificadores.

Page 19: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

19

Page 20: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

20

4 Objetivos de la Investigación Objetivo Principal:

Hacer el análisis, diseño y construcción de una herramienta computacional que

permita auxiliar a médicos y radiólogos en la detección de tumores mamarios.

Objetivos particulares:

Hacer el análisis, diseño y construcción de la Transformada Wavelet aplicado a

imágenes en multiresolución.

Utilizar los coeficientes wavelet para la identificación y clasificación de zonas susceptibles a contener un tumor.

Implementar los algoritmos de análisis de datos: Análisis en Componentes Principales (ACP), y Análisis Factorial Discriminante (AFD).

Hacer el análisis y la implementación de algoritmos de clasificación gaussiano y a K-próximos vecinos (KNN).

Hacer el análisis, diseño y construcción de métodos de evaluación de clasificadores tales como “validación cruzada” (cross-validation) y “deja uno fuera” (leave-one-out).

Page 21: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

21

Page 22: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

22

5 Representación Digital de imágenes 5.1 Mecanismos de la Visión Humana El ojo es el detector de las señales visuales. Focaliza las imágenes provenientes del exterior para que la retina pueda recibir la imagen. Ésta realiza un pretratamiento de la imagen y envía la información a la corteza visual a través del nervio óptico y la vía visual en el cerebro. La figura 5.1.1 muestra los mecanismos básicos de la formación de una imagen sobre la retina. La luz pasa a través de la córnea y el humor acuoso antes de penetrar, atravesando la pupila, dentro del cristalino y el humor vítreo. La imagen sufre una refracción debida a todos estos componentes del ojo, antes de que estimule la retina. Los defectos en el cristalino (existentes aun en personas que tienen una visión normal) producen una aberración esférica que genera imágenes borrosas.

Este comportamiento puede considerarse como un filtro pasa-bajas bidimensional. El diámetro de la pupila varía entre 2 y 9 mm, dependiendo de la iluminación. Esta variación puede multiplicar la cantidad de luz que llega a la retina por un factor de 16 para compensar las iluminaciones débiles, pero esta compensación se hace a expensas de la calidad de la imagen retiniana. Esta apertura se puede ver igualmente como un filtro pasa-bajas. La frecuencia de corte más alta aparece cuando el diámetro de la pupila es de 2 mm. Un agrandamiento progresivo del diámetro produce una frecuencia de corte cada vez más baja. Si la iluminación es suficientemente alta, los fotorreceptores de la retina aumentarán su sensibilidad gracias a una adaptación química, mientras que el diámetro de la pupila disminuirá significativamente. Este mecanismo trata de compensar las aberraciones esféricas y cromáticas del ojo, y permite que el ojo responda a iluminaciones que comprenden nueve niveles de magnitud[1,19].

Page 23: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

23

Figura 5.1.1 Vista esquemática del ojo.

La retina es la capa sensorial del ojo. Ella lleva a cabo la transducción de una señal electromagnética (la imagen) a electroquímica (los impulsos nerviosos) y efectúa un pretratamiento de la información antes de enviarla al cerebro por medio del nervio óptico. El tejido retiniano está compuesto por cinco tipos de células organizadas en capas. La más alejada de la fuente de luz es la capa transductora. Esta estructura está integrada por dos tipos de células: los conos y los bastones. Existen alrededor de 130 millones de bastones y 6.5 millones de conos en la retina. Los bastones reaccionan a las formas y los objetos en movimiento y pueden funcionar con niveles bajos de luminancia (visión escotópica). Los conos necesitan niveles elevados de luminancia (visión fotópica) y detectan el color y los detalles. Están distribuidos principalmente alrededor del eje ocular. En la fóvea existen alrededor de 120 conos por grado, lo que da una resolución visual de un minuto de arco. Estos dos tipos de receptores son responsables de la transformación de la luz en señales eléctricas. La distribución de los conos y los bastones a lo largo de un corte sobre la retina se pueden apreciar en la figura 2.1.2, donde se muestra el número de células por mm3 contra el ángulo. En esta figura se puede ver cómo alrededor del eje del ojo se encuentra la mayor parte de los conos (la fóvea), y cómo los bastones se distribuyen en la periferia, cubriendo un campo visual más amplio. En la región donde se reúnen los axones de las neuronas para formar el nervio óptico (el punto ciego), no se puede registrar respuesta alguna. La naturaleza discontinua de la retina (el espaciamiento de los conos es de alrededor de 2.5 mm), está ligada a la resolución del ojo, que es de aproximadamente 0.125 cm a 1 m de distancia[1,19].

Page 24: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

24

Figura 5.1.2 Distribución espacial de las células retinianas.

5.2 Definición de Procesamiento Digital de Imágenes

Existen dos tipos de procesamiento de imágenes, el analógico y el digital.

El procesamiento analógico consiste en el uso de sistemas eléctricos para alterar las imágenes. Ejemplos de esto son las imágenes por televisión, donde existen los controles de contraste e intensidad de éstas[1]. El procesamiento digital consiste en hacer el mapeo de una imagen a puntos definidos discretamente, a los cuales se les asigna un par de coordenadas y un valor de intensidad. La alteración de los valores de intensidad por medio de una computadora permite efectuar con gran facilidad operaciones de realce y de análisis de la imagen.

Page 25: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

25

5.2.1 Imágenes Digitales El término imagen monocromática o simplemente imagen se refiere a una función bidimensional de intensidad de luz ( )yxf , , donde x e y representan las coordenadas espaciales y el valor de f en un punto cualquiera ( )yx, es proporcional al brillo (o nivel de gris) de la imagen en ese punto[1]. Una imagen digital es una imagen ( )yxf , que se ha discretizado tanto en las coordenadas especiales como en el brillo[1]. Una imagen digital puede considerarse como una matriz cuyos índices de fila y columna identifican un punto de la imagen y el valor del correspondiente elemento de la matriz indica el nivel de gris de ese punto como se muestra en la figura 5.2.1.1 Los elementos de una distribución digital de este tipo se denominan elementos de la imagen, o más comúnmente pixeles o pels, abreviaturas de su denominación inglesa “picture elements”[1].

0 y

x f(x, y)

Figura 5.2.1.1 Imagen discretizada tanto en las coordenadas espaciales como en brillo (nivel de gris).

Page 26: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

26

6 Reconocimiento de Patrones Estadístico

6.1 Introducción El proceso de toma de decisiones del ser humano está relacionado con el reconocimiento de patrones [2]; por ejemplo, el siguiente movimiento en un juego de ajedrez está basado en las figuras presentes y su ubicación en el tablero, y las compras en un supermercado son hechas mediante información compleja de ciertos patrones.

Definimos al reconocimiento de patrones como las acciones mecanizadas enfocadas a identificar un objeto.

El propósito del reconocimiento de patrones es comprender estos complicados mecanismos del proceso de toma de decisiones y automatizarlos en computadoras.

Debido a la complejidad del problema, el reconocimiento de patrones se ha concentrado en problemas más realísticos. En nuestro caso, la detección de tumores en mamografías.

Y también el reconocimiento de caracteres y la clasificación de ondas de señal entre otros.

Dada una serie de características posibles de una imagen, al proceso de seleccionar las características que nos permitan distinguir las diferentes clases unánimemente y con el menor error posible, se le llama clasificación[4].

6.1.1 Formulación de problemas de Reconocimiento de Patrones

Muchas aplicaciones importantes del reconocimiento de patrones (de ahora en adelante RP) pueden caracterizarse por la clasificación de formas de onda o figuras geométricas. Por ejemplo, considérese el problema de prueba de una máquina con operación normal o anormal observando la salida de voltaje de un micrófono a través de un periodo de tiempo. Este problema se reduce a discriminar las formas de onda entre máquinas buenas y malas. Por otro lado, el reconocimiento de caracteres ingleses corresponde a la clasificación de figuras geométricas. Para realizar este tipo de clasificación debemos primero medir características observables de la muestra. La forma más primitiva pero segura de extraer toda la información contenida en la muestra es medir valores muestreados en el tiempo de la señal x(t1),..., x(tn), los niveles de gris de los pixeles de una figura, y x(1),...,x(n) como se muestra en la figura 6.1.1.1 estas n observaciones forman un vector X. Incluso durante las condiciones normales de la máquina las señales observadas son diferentes cada vez que se hace una observación. Por lo tanto x(ti) es una variable aleatoria y será expresada usando negritas y minúscula x(i). De la misma manera, X es un vector aleatorio y sus componentes son variables aleatorias

Page 27: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

27

expresadas como X. Similarmente, cuando se trabaja con carácteres la observación x(i) varia de una “A” a otra y x(i) es una variable aleatoria y X es un vector aleatorio.

Figura 6.1.1.1 Dos patrones a medir: a) una señal e b) un carácter.

Luego entonces, cada señal o carácter es expresado por un vector (o muestra) en un espacio n-dimensional, y varias señales o caracteres forman una distribución de X en el espacio n-dimensional. La figura 6.1.1.2 muestra un problema simple de dos dimensiones con dos distribuciones correspondientes a las condiciones normales y anormales de una máquina, donde los puntos corresponden a las posiciones de las muestras y las líneas limitan las funciones de densidad de probabilidad.

Page 28: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

28

g g

+1

-1

+1

-1

Figura 6.1.1.2 Distribución de muestras de máquinas normales y anormales.

Si con anterioridad se conocen las dos distribuciones de X, podemos encontrar la función de separación g(x1,x2)=0, que divide los dos espacios dimensiónales en dos regiones. Una vez seleccionada la separación, se puede clasificar una muestra en dos clases que son: máquina normal o anormal, dependiendo de si g(x1,x2) < 0 o g(x1,x2) > 0.

Llamamos a g(x1,x2) función discriminante y al conjunto de procesos que determinan el signo de g(x1,x2), se le conoce como procesos del reconocimiento de patrones, categorizador o clasificador[2]. La figura 6.1.1.3 muestra un diagrama de bloques de un clasificador en el espacio n-dimensional.

Figura 6.1.1.3 Diagrama de bloques de un clasificador.

Al diseñar un clasificador, se deben estudiar las características de las distribuciones de X para cada categoría y encontrar una función discriminante adecuada. A éste proceso se le conoce como entrenamiento o aprendizaje, y a las muestras usadas para el diseño del clasificador se les llama muestras de entrenamiento o aprendizaje.

Existen dos formas de hacer el aprendizaje[2,3,12,13,14]:

g(x1,x2,…,xn)

x1 x2 xn

anormal

Page 29: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

29

Aprendizaje supervisado En un aprendizaje supervisado se requiere disponer de un conjunto de patrones de los cuales se conoce su clase cierta. A este conjunto se le denomina conjunto de entrenamiento. Este tipo de entrenamiento se denomina entrenamiento supervisado y los clasificadores así obtenidos clasificadores supervisados. Disponer de un conjunto de entrenamiento supone que alguien se ha preocupado de etiquetar los patrones de ese conjunto. Esta tarea la suele realizar un experto en el campo en el que se va a realizar el reconocimiento y generalmente viene impuesto. Aprendizaje no supervisado El aprendizaje no supervisado se realiza a partir de un conjunto de patrones del que no se conoce su clase cierta. En ocasiones, ni siquiera es conocido el número de clases. Básicamente, se traduce en encontrar agrupamientos. El objetivo suele ser el de verificar la validez del conjunto de clases informacionales para una clasificación supervisada. Las técnicas utilizadas suelen denominarse métodos de agrupamiento o clustering.

EL RP puede considerarse como el problema de estimación de funciones de densidad en un espacio de grandes dimensione y dividirlo en regiones llamadas categorías o clases.

Una clase es un conjunto de objetos que tienen el mismo significado o que comparten características comunes. La primer pregunta que nos hacemos es ¿Cuál es, en teoría, el mejor clasificador asumiendo que se cuenta de antemano con las distribuciones de los vectores aleatorios?. Éste es un problema que implica pruebas de hipótesis estadísticas, y el clasificador de Bayes es el mejor clasificador que minimiza la probabilidad de error en la clasificación [2,12,13,14] (Esta demostración se hará en 9.2.1). A pesar de que el clasificador de Bayes es óptimo, su implementación es frecuentemente complicada particularmente cuando las dimensiones son grandes, lo que nos conduce frecuentemente a una modalidad aun más simple que son los clasificadores paramétricos. Los clasificadores paramétricos se basan en asumir formas matemáticas tanto para las funciones de densidad, como para las funciones discriminantes. Los clasificadores más comúnmente escogidos son los lineales, cuadráticos y lineales a tramos.

Page 30: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

30

Pero incluso cuando se pueden asumir formas matemáticas, los valores de los parámetros no son proporcionados en la práctica y se deben estimar por medio de muestras que se tengan disponibles. Con un número finito de muestras, la estimación de parámetros y las clasificaciones basadas en esas estimaciones, se vuelven variables aleatorias. El error resultante de la clasificación también se vuelve una variable aleatoria. Por lo tanto, es muy importante entender cómo el número de muestras afecta el diseño del clasificador y su desempeño.

Cuando se puedan asumir estructuras no-paramétricas para las funciones de densidad, usualmente se emplean Parzen y k-nearest-neighbor (k-próximos vecinos, KNN) para estimar las funciones de densidad.

En la figura 6.1.1.2 se presenta una toma de decisión dividiendo un espacio de varias dimensiones. Un punto de vista alternativo es considerar la toma de decisión como un diccionario de búsqueda. Esto es, almacenar de alguna forma en memoria todas las experiencias pasadas (muestras de aprendizaje) y asignar la muestra de prueba a la clase más cercana del diccionario. A éste proceso se le conoce como regla de clasificación del vecino más próximo. Éste proceso de toma de decisión es muy cercano al del ser humano [2]. La figura 6.1.1.4 muestra un ejemplo de clasificación del vecino más próximo.

Figura 6.1.1.4 Frontera de decisión del vecino próximo.

clase 1

clase 2

Page 31: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

31

Desde el inicio de la era de la computación, los investigadores han estado interesados en la forma en que el hombre aprende, por ejemplo, a leer caracteres. El estudio de neuronas sugiere que una neurona opera como un clasificador lineal y la combinación de varias produce un complejo sistema de fronteras separadas por secciones. De tal forma que los investigadores llegaron a la idea de la máquina de aprendizaje mostrada en la figura 6.1.1.5, la estructura del clasificador consiste de un número de parámetros desconocidos w0,...,wn. El vector de entrada, que puede ser un carácter que ingresa de uno en uno. Un tutor junto a la máquina observa tanto las entradas como las salidas y cuando se observa una discrepancia entre ambas, el tutor notifica a la máquina y la máquina cambia los parámetros conforme a un algoritmo prediseñado.

Figura 6.1.1.5 Máquina de aprendizaje.

Comenzamos escogiendo valores de señales muestreadas en el tiempo o los valores de los pixeles de figuras geométricas. Normalmente se escoge un número grande de mediciones de tal manera que se cuente con la mayor información posible de los datos originales. Éste gran número de dimensiones, hace que el problema de RP aumente en dificultad. Por otro lado, la clasificación que lleva a cabo un ser humano es basada en un número pequeño de características tales como: valor pico, frecuencia fundamental, etc. Cada una de éstas mediciones contiene información significativa para la clasificación y es seleccionada de acuerdo al significado físico del problema.

Evidentemente, si el número de parámetros o atributos con los que se trabaja es reducido, el diseño del clasificador es mucho menos complicado. Para poder hacer uso de ésta ventaja, debemos de encontrar la manera de extraer las características más importantes de las muestras observadas.

A éste problema, se le conoce como extracción de características y será abordado en el capítulo siguiente.

salida

Tutor

clasificador

w0,w1,...,wn X

Page 32: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

32

7 Extracción de características

7.1 Notación

n Número de dimensiones L Número de clases N Número total de muestras Ni Número de muestras de la clase i wi Clase i X=[x1, x2,…,xn]T Vector de valores conocidos X=[x1, x2,…,xn]T Vector de valores aleatorios mi=EX| wi Valor esperado del vector de la clase wi px(x) Función de densidad de probabilidad Px(x) Función de distribución de probabilidad

( )( ) iTiii wmXmXE |−−=∑ Matriz de covarianza de la clase wi

( )xf Función continua en el dominio del tiempo. x Variable real en el dominio del tiempo ( )uF Transformada de Fourier de )(xf

u Variable de la cual depende ( )uF

Las funciones de distribución y densidad de probabilidad cumplen con las siguientes propiedades:

1. px(x)≥ 0

2. ∫∞

∞−

px(x) dx=1

3. Px(x)= ∫∞−

x

px(a) da

4. Px(x1≤ x≤ x2)= ∫2

1

x

x

px(x) dx= Px(x2)- Px(x1)

5. px(x)=dx

xdPx )(

Page 33: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

33

Gráficamente. px(x)

x =2

ba +

ab −

1

a b

px(x)=

−0

1ab

y

Px(x)

a b

Px(x)=

−−

1

0

abax

La matriz de covarianza indica la dispersión de la distribución[2,3], y de manera más explicita:

para a ≤ x ≤ b

para otro caso

1

para a ≤ x ≤ b

Para x < a

Para x > b

Page 34: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

34

( )( ) [ ]

−−

=−−=∑ ii

ii

Tiii mxmx

mx

mx

EmXmXE ,...,...

11

11

=E

−−−−

−−−−

))((...))((...

.

.

.

.

.

.))((...))((

11

111111

iiiiii

ii

mxmxmxmx

mxmxmxmx

=

−−−−

−−−−

))((...))((...

.

.

.

.

.

.))((...))((

11

111111

iiiiii

ii

mxmxEmxmxE

mxmxEmxmxE

=

iii

i

cc

cc

.........

1

111

Los componentes cnm de ésta matriz son:

cnm=E(xn-mn)(xm-mm) (7-1.1)

para n,m=1,...,i

Los componentes de la diagonal de la matriz de covarianza son las varianzas individuales de las variables, y los elementos fuera de la diagonal son las covarianzas entre las variables xn y xm.

Para propósitos prácticos, la matriz de covarianza se puede calcular con:

( )( ) Tii

ii mXmX

N−−

−=∑

11

(7-1.2)

Nótese que la matriz de covarianza es simétrica

Page 35: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

35

0 0

Matriz de coocurrencia: Cuando los objetos no están compuestos por superficies uniformes como es el caso de una textura, es necesario el uso de propiedades más complejas que tomen en cuenta esta característica. Una forma de determinar estas propiedades es el uso de una matriz de coocurrencia Mcooc. La matriz de coocurrencia contiene información referente a la posición relativa de cada pixel con respecto a sus vecinos [3,5]. Para determinar la matriz de coocurrencia se debe de especificar un desplazamiento δ entre el píxel actual y el pixel con el que se va a comparar y un ángulo θ de orientación. Los valores típicos para θ son: 0° 45° 90° 135°. nivel de gris j (x2,y2)

δ nivel de gris i (x1,y1) θ

Figura 7.1.1 Ángulo θ de orientación y desplazamiento δ entre píxeles vecinos. A continuación se muestran dos ejemplos de cálculo de las matrices de coocurrencia para la imagen mostrada en escala de grises con θ=0°, 135°, y δ=1.

Imagen =

3322220211001101

Para efectos de obtención de la Mcooc , la numeración de los renglones y columnas de las matrices comienza a partir de 0.

Imagen =

Mcooc=

Como se manejan 4 niveles de gris (0 a 3), la matriz de coocurrencia va a constar de 4 renglones y 4 columnas Mcooc4,4. Para θ=0° y δ=1

Page 36: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

36

El elemento Mcooc(0,0) es igual al número de parejas que se pueden formar con un desplazamiento de 1 vecino hacia la derecha, y que inicien y terminen en 0. El elemento Mcooc(0,1) es igual al número de parejas que inicien en 0 y terminen en 1, y así, sucesivamente hasta recorrer toda la imagen. La matriz de coocurrencia se obtiene al multiplicar la matriz obtenida, por el número de parejas con la que se formó.

Mcooc=

1000120100210121

121

Matriz de coocurrencia con θ=0° y δ=1.

Para θ=135° y δ=1 El elemento Mcooc(0,0) es igual al número de parejas que se pueden formar con un desplazamiento de 1 vecino hacia arriba y a la izquierda, y que inicien y terminen en 0. El elemento Mcooc(0,1) es igual al número de parejas que inicien en 0 y terminen en 1. Y así, sucesivamente hasta recorrer toda la imagen.

Mcooc=

0101011100110011

91

Matriz de coocurrencia con θ=135° y δ=1.

Page 37: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

37

7.2 Extracción de Atributos Estadísticos (características) de una Imagen

Sea M una imagen de dimensiones n x m se define al valor promedio µ como:

µ= ∑=

mn

mnmnM

nxm

.

1,),(1 (7-2.1)

La desviación estándar σ se define como:

σ= ∑=

−mn

mnmnM

nxm

,

1,

2)),((1 µ (7-2.2)

La varianza σ 2 se define como:

σ 2= ∑=

−mn

mnmnM

nxm

,

1,

2)),((1 µ (7-2.3)

A partir de la Matriz de coocurrencia se extraen los siguientes atributos[3,5]: Contraste.- Éste atributo mide la repartición de los coeficientes matriciales con respecto a la diagonal.

CON= ),()(

,

2 jiMcoocjiji∑ − (7-2.4)

Momento angular de segundo orden.- Éste atributo mide la homogeneidad de la textura y es sensible a valores grandes de Mcooc.

MASO=∑

jijiMcooc

,

2),( (7-2.5)

Entropía.- Éste atributo mide la complejidad de la textura. ENT=∑

jijiMcoocjiMcooc

,)),(log(),( (7-2.6)

Page 38: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

38

7.3 Momentos de orden 3 y 4 Los momentos estadísticos de orden 3 describen el grado de asimetría de una distribución con relación a su medio[3,5]. Si la función de distribución es asimétrica (gaussiana por ejemplo), entonces todos los momentos estadísticos de orden tres serán nulos. Si los momentos son positivos, esto indica que la distribución es asimétrica con una cola de distribución alejada hacia los valores positivos. En el caso contrario (valores negativos), la cola se aleja hacia los valores negativos. Sea X una variable aleatoria centrada, que toma valores x reales, ergódica y estacionaria. Sea )(xp la función de densidad de probabilidad asociada a X, definida positiva, integrable y cuya integral desde menos infinito hasta más infinito es igual a 1. Entonces, en el dominio continuo, de una manera general, los momentos de orden tres son descritos por:

∫∞

∞−++=++= dxxptxtxtxjtXitXtXEM )()()()()]()()([),( 21213 ττττ (7-3.1)

con 1τ y 2τ dos instantes de referencia.

La expresión equivalente en el dominio discreto es:

∑=

=++++ ==

Nn

njninnjninn XPXXXXXXEjiM

13 )(][),( (7-3.2)

Donde las i y j son dos defasamientos temporales o espaciales, y P(X) la probabilidad de X. En el caso de las imágenes donde la distribución espacial de niveles de gris es considerado como un proceso aleatorio centrado, Xn designa el nivel de gris de pixeles corrientes y Xn+i (o Xn+j) y aquel del pixel defasado de las posiciones i o j. La elección de los desplazamientos i y j se realiza siguiendo un razonamiento análogo

a aquel de ||||→

δ en el caso de matrices de coocurrencia. En efecto, los valores de i y j definen la vecindad dentro de la cual serán estimados los momentos de orden 3.

Page 39: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

39

Ésta extensión se puede escoger siguiendo la granulosidad de la textura. Aquí, nos hemos interesado particularmente en micro texturas a caracterizar sobre los desplazamientos débiles con una desviación máxima de dos posiciones con relación al pixel actual ])2,0[,( +∈ji . Para los momentos de orden 3, con esta limitación de vecindad, el número total de combinaciones posibles por permutación de índices es de 6. Todos estos momentos son descritos en las ecuaciones 7-3.4, a partir de la ecuación 7-3.3 con N igual al tamaño de la ventana de estimación y dando a i y j valores entre 0 y 2.

∑=

=++=

Nn

njninn XXX

NjiM

13

1),( (7-3.3)

Lista de momentos:

)]22*[()]**[()2,2(3

)]2*1*[()]2*1*[()2,1(3

)]21*[()]1*1*[()1,1(3

)]2*2[()]2*0*[()2,0(3

)]1*2[()]1*0*[()1,0(3

)]3[()]**[()0,0(3

+=++=

++=++=

+=++=

+=++=

+=++=

==

nXnXEjnXinXnXEm

nXnXnXEnXnXnXEmnXnXEnXnXnXEm

nXnXEnXnXnXEm

nXnXEnXnXnXEm

nXEnXnXnXEm

(7-3.4)

Un caso particularmente interesante es el auto momento M3(0,0), ya que por una variable aleatoria X centrada y reducida, ésta vuelve a calcular el grado de asimetría de su distribución. Esta asimetría es llamada el Skewness y está definida como igual a

]/)[( 3xxXE σµ− con xµ y xσ la desviación tipo y la media de la variable aleatoria.

Aplicando las características de centrado y reducción de X, entonces el Skewness está definido por la siguiente ecuación )0,0(][)( 3

3 MXEXSkewness == (7-3.5) En el caso de una señal de tipo ruido blanco gaussiano, todos los momentos de orden 3 son nulos. Ahora retomando las mismas notaciones anteriores, los momentos de orden 4 se describen por:

∫∞

∞−+++=+++= dxxptxtxtxtxknXjnXinXtXEM )()()()()()]()()()([),,( 3213213 ττττττ

(7-3.6)

Page 40: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

40

Donde 1τ , 2τ y 3τ son 3 instantes de referencia, )(xp la función de densidad de probabilidad asociada a X. La expresión equivalente en el dominio discreto es:

)()***()]***[(),,(1

4 XPxxxxXXXXEkjimN

nknjninnknjninn ∑

=++++++ == (7-3.7)

Donde las i, j y k son 3 defasamientos temporales o espaciales y P(X) la probabilidad de X. Enseguida hacemos el mismo razonamiento que en el párrafo anterior, para determinar los defasamientos espaciales i, j y k, los momentos de orden 4 sobre las micro texturas estudiadas son estimadas dentro de una vecindad de 2 pixeles (algo escrito). Así, el número total de momentos es de 10, en el caso en que el proceso es ergódico y estacionario. Estos 10 momentos se describen por las ecuaciones 4-3.9 a partir de la ecuación 4-3.8, dando a i, j y k valores entre 0 y 2.

∑=

+++=N

nknjninn xxxx

Nkjim

14 )***(1),,( (7-3.8)

Lista de momentos:

)]*[()]***[()2,2,2(

)]**[()]***[()2,2,1(

)]**[()]***[()2,1,1(

)]*[()]***[()1,1,1(

)]*[()]***[()2,2,0(

)]**[()]***[()2,1,0(

)]*[()]***[()1,1,0(

)]*[()]***[()2,0,0(

)]*[()]***[()1,0,0(

)][()]***[()0,0,0(

322224

2212214

22

12114

311114

22

22204

212

2104

21

21104

23

2004

13

1004

44

++++

+++++

+++++

++++

++++

+++++

++++

++++

++++

==

==

==

==

==

==

==

==

==

==

nnnnnn

nnnnnnn

nnnnnnn

nnnnnn

nnnnnn

nnnnnnn

nnnnnn

nnnnnn

nnnnnn

nnnnn

XXEXXXXEm

XXXEXXXXEm

XXXEXXXXEm

XXEXXXXEm

XXEXXXXEm

XXXEXXXXEm

XXEXXXXEm

XXEXXXXEm

XXEXXXXEm

XEXXXXEm

(7-3.9)

Un caso particular muy utilizado en estadística es la kurtosis de una variable aleatoria X centrada que está definida como:

22

224

224

])[(])[(3][

])[()()(

XEXEXE

XEXCumulantXKurtosis −

== (7-3.10)

Para una señal centrada y reducida, la kurtosis se convierte en:

3][)()( 44 −== XEXCumulantXKurtosis (7-3.11)

Page 41: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

41

El auto momento de orden 4 M4(0,0,0) = E(X4) para una variable aleatoria X centrada, describe la proximidad de la función de distribución con relación a una función gaussiana. Si la función de distribución es gaussiana, entonces el auto momento estadístico de orden 4 es igual a 3 (auto acumulable y kurtosis igual a cero). Una distribución que da el auto momento de orden 4 superior a 3 (kurtosis positiva) se dice “sobre-gaussiano”, en el caso de auto momento de orden 4 inferior a 3 (kurtosis negativa), se le llama “bajo-gaussiano”. 7.4 Transformada de Fourier 7.4.1 Definición

Sea ( )xf una función continua de la variable real x . La transformada de Fourier de ( )xf , indicada por ( ) xfℑ , se define por la ecuación

( ) ( ) ( ) [ ]∫∞

∞−

−==ℑ dxexfuFxf uxj π2 (7-4.1.1)

Donde 1−=j . Dada una ( )uF , podemos volver a hallar ( )xf empleando la transformada inversa de Fourier ( ) ( )xfuF =ℑ−1

( ) [ ]∫∞

∞−

= duuF uxj π2exp (7-4.1.2)

Las ecuaciones 7-4.1.1 y 7-4.1.2, denominadas par de transformadas de Fourier, existen siempre que ( )xf sea continua e integrable y ( )uF sea integrable. Teniendo en cuenta la notación anterior, el par de transformadas discretas de Fourier que se aplica para las funciones muestreadas está dado por:

( ) ( ) [ ]∑−

=

−=1

0

/21 N

x

NuxjexfN

uF π (7-4.1.3)

para 1,...,2,1,0 −= Nu , y

Page 42: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

42

( ) ( ) [ ]∑−

=

=1

0

/2N

u

NuxjeuFxf π (7-4.1.4)

para 1,...,2,1,0 −= Nx .

En el caso de dos variables el par de la transformada discreta de Fourier es:

( ) ( ) ( )[ ]∑∑−

=

+−−

=

=1

0

//21

0,1,

N

y

NvyMuxjM

xeyxf

MNvuF π (7-4.1.5)

para 1,...,2,1,0 −= Mu , 1,...,2,1,0 −= Nv y

( ) ( ) ( )[ ]NvyMuxjN

v

M

u

evuFyxf //21

0

1

0

,, +−−

=

=∑∑= π (7-4.1.6)

para 1...,2,1,0 −= Mx e 1,...2,1,0 −= Ny .

Page 43: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

43

7.5 Transformada Wavelet

7.5.1 Notación Notación General

Escala diádica, es el nivel y 1/ o es la resolución

Traslación diádica

Tiempo continuo

or o Tiempo Discreto

Píxel

Señal o imagen, la señal es una función definida en o a. La imagen está definida en o

Transformada de Fourier de la función f Tiempo Continuo

Conjunto de señales de energía finita

Energía de la señal

Producto escalar de las señales y

Conjunto de imágenes de energía finita

Energía de la imagen

Producto escalar de las imágenes y

Tiempo Discreto

Conjunto de señales de energía finita

Producto escalar de las señales y

Conjunto de imágenes de energía finita

Page 44: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

44

Energía de la imagen

Producto escalar de las imágenes y

Notación Wavelet Aj Aproximación a nivel j Dj Detalles a nivel j

Función de escala

Wavelet

Familia asociada con la wavelet unidimensional, indexada por y . Familia asociada con la wavelet bidimensional, indexada por

Familia asociada con la función de escala unidimensional para escalas diádicas . . Nótese que

Familia asociada con la función unidimensional para escalas diádicas . Nótese que

Filtro escalador asociado con la wavelet

Filtro Wavelet asociado con la wavelet

Page 45: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

45

7.5.2 Conceptos Básicos 7.5.2.1 Introducción El análisis *wavelet consiste en descomponer una señal o imagen en un conjunto jerárquico de “aproximaciones” y “detalles” [6,8]. Una wavelet es una forma de onda de duración efectiva limitada y promedio cercano a cero. Desde el punto de vista del análisis de señales, el análisis wavelet es una descomposición de la señal en una familia de señales de análisis que usualmente son “métodos de funciones ortogonales”. Desde un punto de vista algorítmico, el análisis wavelet ofrece una relación armónica entre técnicas de descomposición y suavizadoras. A diferencia de otras técnicas convencionales, la descomposición wavelet produce una familia de descomposiciones organizadas jerárquicamente. La selección del nivel de jerarquía apropiado depende de la señal a analizar y de la experiencia que se tenga. Frecuentemente el nivel es seleccionado basado en el corte de frecuencias bajas deseado. Para cada Nivel j, construimos sus aproximaciones a nivel j , Aj y la desviación en la señal que llamaremos detalles a nivel j , Dj. Bajo éste esquema, podemos decir que la señal original, son las aproximaciones a nivel 0, denotadas por A0. Las palabras aproximación y detalles se justifican debido al hecho de que A1 es una aproximación de A0, tomando en cuenta que las aproximaciones corresponden a las bajas frecuencias y los detalles a las altas. Una forma de entender ésta descomposición consiste en usar una comparación óptica de la siguiente forma; Se hacen imágenes sucesivas A1, A2, A3 de un mismo objeto y empleamos el mismo dispositivo con el que se tomaron las imágenes pero decrementando la resolución. Las imágenes son aproximaciones sucesivas y un detalle es la discrepancia entre dos imágenes sucesivas. Por lo tanto, la imagen A2 es la suma de la imagen A4 y los detalles intermedios D4, D3:

*wavelet puede traducirse del inglés como ondeleta u ondita.

Page 46: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

46

7.5.3 Resoluciones finas y asperas La escala a se relaciona con el nivel j, por medio de a=2 j . Si se define la resolución como 1/ a, entonces la resolución se incrementa mientras la escala decrece. Cuando la resolución es más grande, se tiene acceso a los detalles más pequeños y finos[6,7,8].

j 10 9 ... 2 1 0 -1 -2

Escala 1024 512 ... 4 2 1 1/2 1/4

Resolución 1/210 1/29 ... 1/4 1/2 1 2 4

Tabla 7.5.3.1 Relación entre la escala y la resolución.

Desde el punto de vista técnico, el tamaño de detalles revelados para cada j es proporcional al tamaño del dominio en el cual la wavelet o la función a analizar de variable x,

no es cercana a 0.

7.5.4 Formas Wavelet Para que una función , sea candidata a ser una función wavelet, su soporte debe de cumplir con el criterio de admisibilidad: (7-5.4.1) El análisis unidimensional está basado en una función de escala y una wavelet . Mientras que el análisis bidimensional está basado en una función de escala y una y tres wavelets. La figura 7.5.4.1 muestra a y para cada wavelet, excepto para las wavelets de Morlet y Sombrero mexicano (Mexican hat), para las cuales no existe. Todas estas funciones decrecen rápidamente a cero. La wavelet de Haar es la única función discontinua en tres puntos (0, 0.5, 1). La función oscila más que su función asociada. *coif2 exhibe algunos puntos angulares y *db6 con *sym6 son suaves. Las wavelet Morlet y Sombrero mexicano son simétricas.

Page 47: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

47

Figura 7.5.4.1 Ejemplos de wavelets unidimensionales.

7.5.5 Wavelets y sus Familias Asociadas En el contexto unidimensional, hacemos la distinción de la wavelet de la función asociada , llamada función de escala. *Nota: Se está usando la notación de MATLAB Versión 6 donde coif corresponde a Coiflets, db a Daubechies y sym a Symlets, etc.

Page 48: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

48

Algunas propiedades de y son[6,7,8]:

• La integral de es cero. , y es usada para definir los detalles.

• La integral de es uno. ,y es usada para definir las aproximaciones. Las wavelets bidimensionales se definen como los productos tensoriales de las wavelets unidimensionales: como función de escala

y ) son las tres

wavelets. En la figura 7.5.5.1 se muestran las cuatro funciones asociadas con la wavelet bidimensional de Coiflets coif2.

Page 49: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

49

Figura 7.5.5.1 Funciones asociadas con la wavelet bidimensional coif2.

A cada una de estas funciones, asociamos su familia doblemente indexada, la cual es usada para:

• Mover la forma básica de un lado a otro, trasladándola a la posición b (figura 7.5.5.2).

• Mantener la forma mientras se cambia la escala de tiempo unidimensional a (a >

0) (figura 7.5.5.3). De tal forma que una familia wavelet se puede pensar como una función localizada en la posición b y que tiene escala a.

Page 50: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

50

Figura 7.5.5.2 Wavelets trasladadas.

Figura 7.5.5.3 Escala de tiempo en una wavelet unidimensional.

Page 51: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

51

En situaciones unidimensionales, la familia de las wavelets trasladadas y escaladas asociadas con , se expresa de la siguiente forma.

Traslación Cambio de escala Traslación y cambio de escala

(x-b)

En el contexto bidimensional, se tiene la traslación por el vector (b1,b2) y el cambio de escala con parámetro (a1,a2). La traslación y cambio de escala se combinan en:

En la mayoría de los casos, se puede limitar la selección de los valores de a y b al usar el siguiente conjunto discreto: ( Se define:

( ) De esta manera se tiene una organización jerárquica similar a la organización de una descomposición como la mostrada en la figura 4.5.5.4. Haciendo k=0 y dejando de lado por un momento a la traslación. Las funciones asociadas con j=0,1,2,3 para (expresadas como j,0) y con j=0,1,2,3 para (expresadas como j,0) se muestran en la figura 6.2.4.4, para la wavelet db3. Los cuatro niveles de descomposición se pueden ver en forma progresiva desde arriba hacia abajo y se tiene 0,0; después 21/2

1,0, 21/21,0; después 2 2,0, 2 2,0; después

23/23,0, 23/2

3,0.

donde

Page 52: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

52

Figura 7.5.5.4 Organización de las wavelets de db3.

Page 53: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

53

7.5.6 Transformada Wavelet Continua y Discreta La Transformada Wavelet (TW) de una señal, es la familia C(a,b), que depende de la escala a y la traslación b, que se obtiene de la ecuación 7-5.6.1

(7-5.6.1) Donde Para tiempo continuo. y Para tiempo discreto. En la figura 7.5.6.1 , se ilustra la diferencia entre la TW continua y discreta en el análisis de una señal “fractal”.

Figura 7.5.6.1 Diferencia entre la TW continua y discreta. En la figura de en medio, el tiempo corresponde a las abscisas y la escala, a las ordenadas. La escala es diádica: 21,22,23,24 y 25 (de arriba abajo). Los niveles son 1,2,3,4 y 5. Cada coeficiente a nivel k, se repite 2k veces.

Page 54: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

54

En la última figura, la escala varía casi continuamente entre 21 y 25 en pasos de 1 (de arriba abajo). Se debe de tener en cuenta que cuando la escala es pequeña, se analizan sólo los detalles pequeños del mismo modo que en un mapa geográfico[6,7,8]. 7.5.7 Transformada Wavelet Inversa Para señales de energía finita, la TW inversa se obtiene con:

(7-5.7.1)

Para tiempo continuo, donde es una constante que depende de . y

(7-5.7.2)

Para tiempo discreto.

7.5.8 Detalles y Aproximaciones. Dejando fija a j y haciendo la sumatoria sobre k, un detalle Dj está dado por la función

(7-5.8.1) Si ahora hacemos la sumatoria sobre j, la señal es la suma de todos los detalles

(7-5.8.2) Una vez definidos los detalles, tomando como referencia un nivel J, existen dos órdenes de detalles. Los asociados con j ≤ J que corresponden a escalas que describen los detalles finos. Y los que corresponden a j > J que corresponden a los detalles más ásperos.

Page 55: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

55

Agrupando estos últimos detalles, definimos lo que se llama aproximaciones de la señal.

(7-5.8.3)

Los detalles y las aproximaciones se relacionan mediante la relación

(7-5.8.4)

Esto significa que la señal s es la suma de sus aproximaciones Aj y sus detalles, de tal forma que

(7-5.8.5)

Para un análisis ortogonal, en el que j,k es una familia ortonormal,

• Aj es ortogonal a Dj,, Dj-1, Dj-2,... • s es la suma de dos señales ortogonales: Aj y

• • Aj es una aproximación a s. La calidad (en energía) de la aproximación de s

debida a Aj es:

(7-5.8.6)

Entonces

(7-5.8.7) Desde el punto de vista gráfico, al momento de analizar una señal, es siempre útil representar tanto a s, Aj, Dj, como a los coeficientes C(j,k). En la figura 7.5.8.1 se muestra una señal con sus aproximaciones a niveles 1 a 5. Como se puede ver, la mejor aproximación corresponde a a1 y le continua a2, y así sucesivamente. Además, el ruido aparece más suavizado en el mismo orden.

para

Page 56: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

56

En el lado derecho, cfs representa los coeficientes, s es la señal y d1 a d5 refleja los detalles a niveles 1 a 5.

Figura 7.5.8.1 Aproximaciones, detalles y coeficientes. Las diferentes señales representadas corresponden con el mismo tiempo, de tal forma que el índice t del detalle D4(t) corresponde al mismo instante de tiempo que en la aproximación A5(t) y en la señal s(t).

Page 57: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

57

7.5.9 El algoritmo de la Transformada Wavelet Rápida 7.5.9.1 Introducción El algoritmo de la TW es un esquema clásico de lo que se conoce en procesamiento de señales como codificador de dos subbandas usando filtros de cuadratura conjugada o filtros de espejo en cuadratura (QMF)[24].

• El algoritmo de descomposición comienza con la señal s, después se calculan las coordenadas de A1 y D1 y después los de A2 y D2, y así sucesivamente.

• El algoritmo de reconstrucción, también conocido como TW inversa, comienza con las coordenadas de Aj y Dj, después, se calculan las coordenadas de A1-1 y D1-1, y después se usan estas últimas para calcular las de A1-2 y así sucesivamente.

7.5.9.2 Filtros para calcular la TWD y la TWD Inversa (TWDI) Para una wavelet ortogonal en estructura multiresolución, con función de escala y función wavelet , una de las relaciones fundamentales es la relación biescala (ecuación de dilatación o refinamiento) (7-5.9.2.1) Todos los filtros usados en la TWD y la TWI están íntimamente relacionados a la secuencia (7-5.9.2.2) Si es compacta, la secuencia (wn) es finita y puede ser considerada como filtro. El filtro W, denominado filtro escalar (no normalizado), tiene las siguientes características:

• Respuesta a un impulso finito • De longitud 2N • De suma 1 • De norma

• Filtro pasa-bajas

Page 58: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

58

7.5.10 TWD y TWD Inversa (TWDI) en una y dos Dimensiones Dada una señal s de longitud N, la TWD consiste a lo más en log2 etapas. El primer paso produce dos conjuntos de coeficientes correspondientes a las aproximaciones cA1 y los detalles cD1. Estos vectores se obtienen haciendo la convolución de s con el filtro pasa-bajas Lo_D para las aproximaciones, y con el filtro pasa-altas Hi_D para los detalles, seguido por una decimación diádica como se muestra en la figura 7.5.10.1.

Figura 7.5.10.1 Primer paso, Obtención de los coeficientes cA1 y cD1.

La longitud de cada filtro es igual a 2N. Si n = la longitud o longitudes, las señales F y G son de longitud n+2N-1 y los coeficientes cA1 y cD1, son de longitud

El comando floor, redondea su argumento al entero más grande no mayor que si mismo. El siguiente paso es separar los coeficientes de las aproximaciones cA1, usando el mismo esquema, es decir, reemplazando a s por cA1 produciendo cA2 y cD2 y así, sucesivamente.

Filtro pasa-altas

Filtro pasa-bajas

Submuestreador

Submuestreador

Coeficientes de losdetalles

Coeficientes de lasaproximaciones

Donde: Convolución con el filtro X

Mantenemos los elementos de índice par

Page 59: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

59

En la figura 7.5.10.2 se muestra el esquema para la obtención de la TWD unidimensional.

Figura 7.5.10.2 Esquema de la TWD unidimensional.

De tal forma que la descomposición wavelet de la señal s a nivel j, sigue la siguiente estructura: [cA2, cD2,..., cD1]. Para j=3,los nodos terminales corresponden al siguiente árbol

Figura 7.5.10.3 Árbol de organización de los coeficientes wavelet.

Paso de descomposición

Nivel j Nivel j+1

Convolución con el filtro X

Submuestreo

inicialización

Donde:

Page 60: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

60

De forma inversa, comenzando en cA2 y cD2, la TWDI reconstruye a cAj-1 invirtiendo el paso de descomposición insertando ceros y haciendo la convolución de los resultados con los filtros de reconstrucción como se muestra en la figura 7.5.10.4.

Figura 7.5.10.4 TWDI unidimensional. En imágenes (2D) , se hace uso del mismo algoritmo para las funciones wavelets, y de escala bidimensionales mediante el producto tensorial. La descomposición wavelet en 2D, nos lleva a la descomposición de cA1 en cuatro componentes: la aproximación a nivel j+1 y los detalles en tres orientaciones (horizontal, vertical, y diagonal). Las figuras 7.5.10.5 y 7.5.10.6 describen la TWD y TWDI en 2D.

Paso de descomposición

Sobremuestreo

Sobremuestreo Nivel j

Donde:

Convolución con el filtro X

Nivel j-1

Filtro pasa-bajas

Filtro pasa-altas

Insertamos ceros a los elementos de índice impar

Tomamos la parte central del dominio U, con la longitud conveniente

Page 61: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

61

Figura 7.5.10.5 TWD en 2D.

Paso de descomposición

renglones

renglones

columnas

columnas

columnas

columnas

horizontal

vertical

diagonal

Donde:

Convolución con el filtro X de los renglones de entrada.

Convolución con el filtro X de las columnas de entrada.

inicialización

columnas

renglones

Submuestreo de columnas: manteniendo las de índice par

Submuestreo de renglones: manteniendo los de índice par

Page 62: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

62

Figura 7.5.10.6 TWDI en 2D.

Paso de descomposición columnas

columnas

renglones

horizontal

vertical

diagonal

Donde: Sobremuestreo de columnas: insertando ceros a las de índice impar

Sobremuestreo de renglones: insertando ceros a los de índice impar

Convolución con el filtro X de los renglones de entrada.

Convolución con el filtro X de las columnas de entrada.

columnas

columnas

renglones

renglones

columnas

Page 63: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

63

De tal forma que para j=2, el árbol wavelet formado es:

Figura 7.5.10.7 Árbol wavelet para j=2. En la figura 7.5.10.8 a) se muestra una imagen y en b) se ven los coeficientes wavelet como resultado de la descomposición, la cual sigue la organización de la figura 7.5.10.9

Figura 7.5.10.8 TWD en una imagen a nivel 2.

T WD

Imagen original de Bárbara

a)

Resultado de la aplicación de la TWD 2D

b)

Page 64: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

64

Figura 7.5.10.9 organización de los coeficientes wavelet a nivel 3.

Page 65: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

65

Page 66: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

66

8 Métodos de Reducción de Correlación 8.1 Análisis en Componentes Principales (ACP) El objetivo del análisis de componentes principales es transformar el espacio de representación P en un nuevo espacio, P’, en el que los atributos no estén correlacionados (la matriz de covarianza en ese espacio será diagonal). En otras palabras, se trata de encontrar un nuevo conjunto de ejes ortogonales en el que la varianza de los datos sea máxima[2,3,9,10,11]. El objetivo final es reducir la dimensionalidad del problema una vez realizada la transformación. Supongamos que representamos un conjunto de patrones bidimensionales que presentan cierto grado de correlación (figura 8.1.1 a)). En esta representación utilizamos por simplicidad una elipse en lugar de la nube de puntos. Si representamos estos patrones en un nuevo espacio generado por las variables Y1 e Y2 (figura 8.1.1 b)), que se corresponden con los ejes de la elipse y consideramos únicamente Y1, la proyección de los patrones sobre este eje hace que su dispersión sea mayor que sobre cualquier otro eje (y en particular sobre cualquiera de los originales).

Figura 8.1.1 a) X1 y X2 están correlacionados e b) Y1 e Y2 no están correlacionados.

*Nota: La teoría y los ejemplos de éste capítulo, fueron obtenidos de la página de “Reconocimiento de formas” del Dr. Francisco José Cortijo Bon, miembro del Departamento de Ciencias de la Computación e Inteligencia Artificial en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Granada en España http://www-etsi2.ugr.es/depar/ccia/rf/.

a) b)

φ

φ

X1 X1

X2 X2

Y1

Y2

Page 67: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

67

Si los datos están correlacionados en P la dirección de máxima varianza en P es la del eje principal de la elipse que los caracteriza. Este nuevo eje, Y1, se calcula como una rotación de magnitud φ del primer eje de P, X1. Si el nuevo sistema de coordenadas es ortogonal, el segundo eje, Y2, se establece en base al segundo eje del sistema original, X2, mediante una rotación de la misma magnitudφ , que la aplicada al primero. En definitiva, la relación entre los nuevos ejes y los antiguos consiste en una relación lineal:

Y1=W11X1+ W12X2

(8-1.1) Y2=W21X1+W22X2

Que asume únicamente una rotación, manteniendo el origen de coordenadas común para los sistemas de coordenadas (X1,X2) e (Y1,Y2). Con ésta transformación, la longitud del eje mayor Y1 indicará el rango de los datos a lo largo de este nuevo eje, que será necesariamente mayor que sobre cualquiera de los ejes originales, X1 ó X2. En consecuencia, dependiendo de la relación entre los ejes originales, la mayor parte de la información contenida en el espacio P puede retenerse únicamente en el primer eje principal Y1, lo que implica una selección de características en el espacio transformado P'.

Si se trabaja con datos de dimensionalidad mayor que 2 el procedimiento es similar: los nuevos ejes se definen secuencialmente de manera que un nuevo eje se define como aquel que es perpendicular al seleccionado anteriormente y su dirección es la de la máxima varianza de entre todos los ejes posibles.

Desde una perspectiva geométrica, la ecuación 8-1.1 puede rescribirse de manera explícita como una rotación de magnitud φ alrededor del origen:

Y1= cos φ X1 - sin φ X2

Y2= sin φ X1 + cos φ X2

De manera que el problema se reduce a encontrar el ángulo de rotación φ . Este problema depende mucho de la muestra concreta que se maneje. La ecuación 8-1.2 puede rescribirse en términos matriciales como:

(8-1.2)

= (8-1.3)

Page 68: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

68

=

Y el objetivo es encontrar los coeficientes de transformación Wij, con las siguientes restricciones: 1.Los ejes que definen P' deberán ser ortogonales. 2.Los datos en P' no deberán estar correlacionados. 8.1.1 Análisis en Componentes Principales para Espacios Multidimensionales

Para generalizar la solución a espacios multidimensionales (d > 2), se plantea la búsqueda de una transformación lineal, W, de los datos originales en P con X, que da lugar a nuevas coordenadas Y en P' tal que

Y = WTX

La ecuación 8-1.1.1 se puede escribir de manera explícita como

(8-1.1.2)

Desarrollando:

Y1 = W11X1 + W12X2 + ... + W1dXd Y2 = W21X1 + W22X2 + ... + W2dXd

Yd = Wd1X1 + Wd2X2 + ... + WddXd

Para el cálculo de W se mantienen las mismas restricciones mencionadas anteriormente: Antes de abordar la metodología para la solución a este problema formalizaremos el significado de estas restricciones.

(8-1.1.3)

(8-1.1.1)

Page 69: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

69

Sobre la Ortogonalidad de los Ejes

La trasformación consiste, básicamente, en una rotación rígida o solidaria de los ejes de P tomando como referencia el origen de coordenadas. La consecuencia es que si los ejes de P' deben ser ortogonales, la distancia Euclidiana entre el origen y los puntos se mantiene inalterada con esta transformación. Para que esto sea cierto, la matriz de transformación W debe ser ortogonal, esto es, que W-1 = WT, por lo que:

WTW = WWT = I (8-1.1.4) Es decir, buscamos una matriz cuadrada de dimensiones dxd que sea ortogonal.

Sobre la No Correlación en P'

Si las nuevas variables Y se calculan a partir de X mediante la transformación dada por la ecuación 8-1.1.1.

puede verse que

µy= EY = EWTX = WTEX = WTµx (8-1.1.5)

Σy= E(Y - µy)(Y- µy)T = WT Σx W (8-1.1.6)

Si los datos en P' no deben estar correlacionados, la matriz de covarianza en P', Σy, debe ser diagonal.

Obtención de la Matriz de Transformación W

El problema se reduce a maximizar la varianza en P' con las restricciones de ortogonalidad de W. La técnica adecuada es la utilización de los multiplicadores de Lagrange, que puede plantearse como sigue.

Si el objetivo es maximizar una función f (v1, v2,..., vp) con la condición g(v1, v2,..., vp) = 0 se puede construir una nueva función

F = f (v1, v2,..., vp) - λ g(v1, v2,..., vp) Y maximizar esta función sin restricciones.

Para maximizar la varianza en P', con f = Σy = WT Σx W y la restricción WTW = I, por lo que g = WTW - I = 0. En definitiva, se trata de maximizar

Page 70: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

70

F = WT Σx W - λ (WTW - I) (8-1.1.7) derivando a 8-1.1.7 con respecto a W

(Σx - λI)W = 0 (8-1.1.8) W debe cumplir con (Σx - λI)W = 0 con objeto de que WT Σx W = Σy sea máxima, sujeta a la restricción de que WTW = I.

Para que la ecuación 8-1.1.8 sea cierta solo pueden ocurrir dos casos:

1. Que W = 0 y en este caso la solución es trivial y no interesa. 2. Que Σx - λI sea singular (no invertible), esto es, que

| Σx - λI| = 0. (8-1.1.9)

La ecuación 8-1.1.9 es la ecuación característica de la matriz Σx y su expresión es una ecuación polinómica de λ.

Las soluciones a esta ecuación (los valores de λ) se conocen como los valores propios de Σx. Cuando se sustituyen en 8-1.1.8, se calculan los vectores asociados a cada valor de λ, que se conocen como los vectores propios de Σx.

En otras palabras, cada valor propio, λi, es solución a una ecuación del sistema

(Σx - λI)W = 0

De tal forma que para cada ecuación, los parámetros de W asociados a la solución con λi son un vector propio, φ i.

De esta manera podemos expresar la matriz de transformación como un vector de d vectores columna (W es un vector de vectores propios):

W = [φ 1,φ 2,..., φ d] (8-1.1.10)

Como Σx es de orden dxd, tendrá d valores propios asociados λ1, λ2, ... , λd y como es simétrica, todos los valores propios serán reales.

Page 71: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

71

Σy

8.1.2 Conclusiones

Como Σx es simétrica, todos sus valores propios serán reales. Por otra parte, dado que Σx es definida positiva, sus valores propios están ordenados:

λ1 ≥ λ 2 ≥... λd ≥ (8-1.2.1)La matriz de covarianza Σy = WTΣxW será una matriz diagonal formada por los valores propios de Σx:

=

λλ

...00...

.

.

.

.

.

.

.

.

.0...00...0

2

1

(8-1.2.2)

Y los valores de la diagonal (valores propios de Σx) son las varianzas de los patrones en las respectivas coordenadas transformadas.

La matriz que contiene los coeficientes de la transformación W, es la matriz de vectores propios de Σx, asumiendo que W es ortogonal.

Cada valor propio λi tiene asociado un vector propio φ i y cada vector propio define la dirección de un eje en el espacio transformado, P'. Dado que los valores propios están ordenados (por el valor de varianza en cada eje de P'), y que cada valor propio tiene asociado un vector propio, podemos establecer un orden entre las variables transformadas de forma que:

Y1: Primer eje en P' (primera componente principal).

La dirección de la máxima varianza de los patrones en P está determinada por este eje. Y2: Segundo eje en P' (segunda componente principal).

La dirección de la máxima varianza en P entre todos los ejes ortogonales a Y1 está determinada por este eje.

Page 72: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

72

=

Con estas consideraciones, el teorema fundamental del análisis de componentes principales se enuncia como sigue:

Dado un conjunto de variables Xi ( i = 1, 2,..., d) con matriz de covarianza Σx, no singular, siempre se puede derivar a partir de ellos un conjunto de variables no correlacionadas Yi ( i = 1, 2,..., d) mediante un conjunto de transformaciones lineales que corresponden a una rotación rígida cuya matriz de transformación W está formada, por columnas, por los d vectores propios de Σx.

La matriz de covarianza del nuevo conjunto de variables Σy, es diagonal, y contiene los valores propios de Σx.

La transformación de componentes principales definida por 8-1.1.1 con la restricción de diagonalidad 8-1.1.6 se conoce también como transformación de Karhunen-Loéwe o de Hotelling[1,3].

A modo de resumen, y con una interpretación geométrica, los valores propios λi representan la varianza de los patrones en el espacio transformado y están relacionados con el rango de los patrones en cada uno de los ejes de este espacio mientras que los vectores propios φ i son vectores ortogonales que determinan la dirección de estos ejes.

El algoritmo de cálculo de W puede plantearse en 4 pasos: 1.Calcular la matriz de covarianza global Σx. 2.Calcular los valores propios de Σx, λ1, λ2,..., λd.. 3. Calcular los vectores propios φ 1, φ 2,..., φ d asociados a λ1, λ2,..., λd. 4. Formar la matriz W = [φ 1, φ 2,..., φ d].

Una vez formada la matriz de transformación W se procede a calcular los nuevos patrones Y, a partir de cada X. Como Y = WTX, y la matriz W es la matriz formada por los vectores propios de Σx (ecuación 8-1.1.10), sustituyendo en 8-1.1.2 obtenemos:

Page 73: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

73

= =

desarrollando,

Y1 = 11φ X1 + 12φ X2 + ... + d1φ Xd Y2 = 21φ X1 + 22φ X2 + ... + d2φ Xd

Yd = 1dφ X1 + 2dφ X2 + ... + ddφ Xd

Donde

, ,..., 8.1.3 Ejemplo

A continuación vamos a aplicar la transformada en componentes principales a un conjunto de datos que presenta cierta correlación. En la figura 8.1.3.1 mostramos los 6 patrones sobre los que se va a efectuar el Análisis en Componentes Principales.

Figura 8.1.3.1 Patrones X en el espacio original P.

=

X2

X1

Xi

Page 74: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

74

µx= Σx=

1. Cálculo de Σx

El vector medio µx y la matriz de covarianza Σx se calculan a partir de los patrones X1, X2,..., X6.

5.35.3

,

1.11.11.19.1

2. Cálculo de los valores propios de Σx.

Como d = 2 habrá dos valores propios asociados a Σx: λ1y λ2. Serán las soluciones a la ecuación | Σx - λI| = 0. En particular,

01001

1.11.11.19.1

=

λ

Desarrollando: λ2- 3λ + 0.88 = 0

Y las soluciones son: λ1= 2.67 y λ2= 0.33

3. Cálculo de los vectores propios φ 1 y φ 2 asociados a λ1y λ2

El vector propio φ 1, correspondiente a λ1= 2.67 se calcula como sigue. Considerando la

ecuación (Σx - λI)W = 0, el vector propio φ 1 es la solución a (Σx - λ1I) φ 1 = 0.

01001

67.21.11.11.19.1

12

11 =

φφ

Esto es, -0.77 φ 11 + 1.10 φ 12=01.10 φ 11 - 1.57 φ 12=0

Este sistema de ecuaciones tiene una solución no trivial porque el determinante es cero. Tomando cualquiera de ellas se deduce que

φ 11= 1.43 φ 12

Como la matriz W debe ser ortogonal ( WT = W-1) se requiere que los vectores propios estén normalizados, esto es,

Page 75: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

75

φ 1=

φ 2=

φ 2

11+ φ 212= 1

Por lo que el sistema de ecuaciones a resolver es:

φ 11= 1.43 φ 12 (8-1.3.1)φ 2

11+ φ 212= 1 (8-1.3.2)

φ 2

12= 1-φ 211

φ 211= 1.432 φ 2

12. φ 2

11= 1.432 (1 - φ 211) = 2.05 - 2.05 φ 2

11

Reorganizando términos,

3.05 φ 211 = 2.05 φ 2

11 = 05.305.2 = 0.82

como φ 11= 1.43 φ 12,

φ 12= 43.111φ =

43.182.0 = 0.57

El resultado es que el vector propio asociado a λ1= 2.67 es

57.082.0

El vector propio φ 2, correspondiente a λ2= 0.33 se calcula de manera similar.

−82.057.0

Los vectores propios que se acaban de calcular están normalizados. Esto implica que son de longitud 1. Efectivamente, para ambos vectores propios

φ 211+ φ 2

12= 0.822 + 0.572 = 0.67 + 0.33 = 1 φ 2

21+ φ 222= - 0.572 + 0.822 = 0.33 + 0.67 = 1

Las componentes de un vector propio indican la dirección de los nuevos ejes respecto al sistema de coordenadas original. La interpretación geométrica del nuevo sistema de coordenadas (Y1,Y2) respecto al original (X1, X2) en base a los vectores propios φ 1y φ 2se detalla en la figura 8.1.3.2.

Page 76: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

76

=

Figura 8.1.3.2 Los vectores propios determinan el nuevo sistema de coordenadas.

4. Formar la matriz de transformación W

La matriz de transformación es una matriz cuadrada 2x2 cuyas columnas son los vectores propios φ 1 y φ 2:

−82.057.057.082.0

Finalmente, se procede a la transformación de coordenadas para expresar los patrones X en las coordenadas del nuevo espacio. La transformación viene dada por (Y = WTX), o sea,

Si aplicamos esta transformación a los patrones X1, X2,..., X6, el resultado se muestra en la figura 8.1.3.3.

W = [φ 1 , φ 2] =

X1

X2

Y1

X1

X2

Y1

Y2

Page 77: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

77

γi=

Figura 8.1.3.3, 6 patrones en dos sistemas de Coordenadas.

8.1.4 Reducción de Dimensionalidad en base al ACP

Al problema que planteamos se le conoce como el del cálculo de la dimensionalidad intrínseca, que puede definirse como el menor número de variables que pueden utilizarse para representar con el mínimo error al conjunto completo de variables.

El fundamento está en el orden entre los valores propios de una matriz de covarianza y en que la transformación de componentes principales preserva la varianza global.

Se define la contribución a la varianza global de un valor propio γi, como el valor

normalizado de un valor propio λi:

∑=

d

jj

i

λ (8-1.4.1)

Esto es, se asocia a cada valor propio (y en consecuencia, a cada componente principal) un valor relativo de importancia, considerando su aportación porcentual a la varianza total.

Considerando que los valores propios están ordenados de manera decreciente, la mayor contribución a la varianza global será la de los primeros valores propios por lo que serán las primeras componentes principales las que aporten la mayor parte de la información (en términos de varianza) mientras que las últimas se pueden considerar básicamente como ruido y pueden descartarse.

X1

Y1 Y2

X2 Xi Yi

Page 78: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

78

A continuación se muestra el resultado de aplicar la transformación de componentes principales a la imagen de la galaxia espiral.

Los datos son de dimensión 3 por lo que obtendremos 3 componentes principales.

Los valores propios se han calculado en base a la matriz de covarianza calculada a partir de los patrones que forman el conjunto de prototipos, prescindiendo de la información de clase.

En la figura 8.1.3.4, mostramos las tres bandas que forman la imagen original (columna de la izquierda) y las tres imágenes que corresponden a las tres componentes principales (columna de la derecha).

Page 79: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

79

Figura 8.1.3.4 Imagen original e imagen transformada. Galaxia espiral.

Obsérvese que la primera componente principal recoge el 92.626 % de la varianza, por lo que las dos restantes son prácticamente ruido. Podemos concluir que la primera componente principal resume la información que proporcionan las tres bandas de la imagen original.

Banda 1 C.P. 1 (92.626%)

Banda 2 C.P. 2 (4.949%)

Banda 3 C.P. 3 (2.425%)

Page 80: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

80

8.2 Análisis Factorial Discriminante (AFD) 8.2.1 Introducción

El ACP se basa en la matriz de covarianza global, por lo que no considera la estructura particular de las clases. Aún así, es frecuentemente empleada como un método de extracción y selección de características porque son frecuentes las aplicaciones en las que las clases se distribuyen en la dirección de la máxima dispersión de los datos en las que son frecuentes:

1. Clases con fuerte correlación entre las variables. 2. Correlación en la dirección de la máxima varianza.

Otro método que se emplea para crear nuevas características en las que se maximiza la separación entre clases se conoce como análisis factorial discriminante (AFD) ó análisis canónico[9,10,11].

Considérese el problema de clasificación entre dos clases con patrones bidimensionales mostrado en la figura 8.2.1.1.

Las clases no son separables utilizando las variables originales (X1,X2), ni siquiera con la primera componente principal, Y1 ya que la dispersión global está en la misma dirección.

Figura 8.2.1.1 Dos clases no

discriminables.

No obstante, puede comprobarse que puede encontrase un eje Y, en el que es posible la discriminación entre ambas clases.

X1

Y1 X2

Clase 1

Clase 2

Page 81: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

81

En la figura 8.2.1.2 a) mostramos este hecho de manera gráfica.

Un estudio más detallado revela que este eje debe ser tal que sobre él, la dispersión entre los centros de las clases,σA sea máxima (la proyección de los centros sobre este eje proporcione la máxima distancia) mientras que al mismo tiempo, la dispersión individual de cada clase, σWi, sea la mínima posible, figura 8.2.1.2 b).

Figura 8.2.1.2 a) El eje Y ( primer eje canónico) permite separar las dos clases. b) Ningún otro eje supera al primer eje canónico.

Podemos caracterizar la dispersión entre los centros de las clases σA , por la desviación típica entre los centros de las clases (en este caso se asume que cada clase está representada por un único punto, su centro).

De la misma manera, σWi será la dispersión individual de cada clase sobre el primer eje canónico. Así, el objetivo será encontrar un nuevo eje para el que el cociente

(8-2.1.1)

sea el máximo posible. En este caso, σ2W es el valor medio de σ2

W1 y σ2W2, para el

ejemplo de la figura 8.2.1.2.

a) b)

X1

Y

X2

Y

X1

X2

Y

Clase 1

Clase 2 Clase 1 Clase 2

Page 82: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

82

µ =

µ =

El nuevo sistema de coordenadas se fijará en base a una transformación lineal.

Y = WT X

De manera que se tratará de encontrar los coeficientes de transformación de la matriz W con la restricción de maximizar el cociente de la ecuación 8-2.1.1. 8.2.2 Notación

Para el estudio en espacios multidimensionales, debemos definir con precisión lo que se entiende por dispersión entre clases y dispersión interna por clase, que forzosamente se expresarán con matrices de covarianza.

µ: Media global.

Es el valor medio entre todos los patrones, sin considerar su clase. Puede expresarse en función de las medias de cada clase:

∑=

J

iiN

N 1

1 µi (8-2.2.1)

De manera que si todas las clases están igualmente representadas, entonces

∑=

J

iJ 1

1 µi (8-2.2.2)

ΣW: Matriz de covarianza interna media.

En el ejemplo de la figura 8.2.1.2, σ2W es el valor medio de σ2

W1 y σ2W2 . En espacios

multidimensionales, la dispersión de cada clase (σiW1 en el caso unidimensional) se

expresa por su matriz de covarianza, Σi, por lo que la dispersión media interna será la media de las matrices de covarianza:

∑=

∑=∑J

iiW J 1

1 (8-2.2.3)

Page 83: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

83

Aunque esta expresión solo es válida para el caso en el que las clases estén igualmente representadas. Para el caso general, la expresión 8-2.2.3 se sustituye por:

∑=

∑−=∑J

iiiW N

N 1)1(1 (8-2.2.4)

ΣW proporciona una medida de la dispersión media de las clases. O sea, el grado medio de homogeneidad de los agrupamientos.

ΣA/B: Matriz de covarianza interclase[2,12,13,14].

En el ejemplo de la figura 8.2.1.2, σ2A es la varianza entre los centros de las clases. Su

generalización a espacios multidimensionales será:

∑=

−−=∑J

i

TiiiBA N

N 1/ ))((1 µµµµ (8-2.2.5)

ΣA/B proporciona una medida de la dispersión entre los centros de las clases tomando como referencia la media global dada por 8-2.2.1.

Planteamiento y resolución del problema

Suponiendo que se va a aplicar una transformación lineal, las matrices de dispersión en el nuevo espacio serán:

ΣYW =WT ΣX

W W

ΣYA/B =WT ΣX

A/B W

Conviene recordar la similitud de estas ecuaciones con la ecuación 8-1.1.6 en la transformación por componentes principales. De hecho, ambas transformaciones son lineales por lo que las matrices de covarianza en el nuevo espacio se calculan de manera similar.

Algunas puntualizaciones importantes:

1. En este caso, al contrario que en análisis de componentes principales no se requiere que las matrices ΣY

A/B y ΣYW sean diagonales.

2. Como en análisis de componentes principales, los vectores columna que forman W

definen las direcciones de los ejes en el espacio transformado.

Page 84: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

84

=

En particular, el primer vector columna de W define la dirección del primer eje canónico, esto es, aquel para el que se alcanza la máxima separabilidad.

Sea d uno de los vectores columna de W, entonces las varianzas correspondientes a este eje son

σ2W= dT ΣX

W d

σ2A= dT ΣX

A/B d

En particular, la dirección del primer eje canónico viene dado por el vector d que maximiza:

dddd

WXT

BAXT

W

A

σσσλ ∑==

/

2

2

(8-2.2.6)

Por lo que el objetivo será la búsqueda de este vector d y en última instancia, todos los vectores que forman la matriz W (el vector d será la primera columna de W).

La relación entre las varianzas λ, según la ecuación 8-2.2.6 es máxima para el vector d que verifica que:

0=∂∂dλ

Que es equivalente a

(ΣA/B - λ ΣW) d = 0 (8-2.2.7)Donde las incógnitas son λ y d. El primer eje canónico está en la dirección de d y λ indica la relación entre la dispersión entre los centros de las clases y la dispersión interna sobre ese eje.

En lo siguiente prescindiremos por comodidad de los superíndices en las matrices de covarianza.

En general, la ecuación 8-2.2.5 puede escribirse como:

(ΣA/B - Λ ΣW)W = 0 (8-2.2.8) Donde Λ es una matriz diagonal que contiene todos los cocientes λ y W es la matriz de transformación que define las direcciones de los ejes.

Page 85: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

85

Al igual que en análisis de componentes principales, la solución a 8-2.2.6 se reduce a la búsqueda de los valores propios λ, y sus vectores propios asociados d. La restricción adicional que se impone aquí es que:

WT ΣW W = I (8-2.2.9) O sea, después de la transformación, las variables no están correlacionadas.

Al menos uno de los valores propios de la ecuación 8-2.2.6 será cero, y en consecuencia, su vector propio asociado no existirá. Esto se traduce en que la dimensionalidad del espacio transformado se reduce en una unidad.

Resumiendo:

1. El análisis canónico proporciona separabilidad en un espacio de menor dimensionalidad.

2. Las clases tendrán máxima separación en el primer eje canónico, que

corresponde al mayor.

3. El segundo eje corresponde al siguiente valor propio y proporciona el mayor grado de separación entre los restantes ejes, y así sucesivamente.

Page 86: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

86

8.2.3 Ejemplo

Supongamos un problema de clasificación entre dos clases con patrones bidimensionales como el mostrado en la figura 8.2.3.1, La discriminación entre las dos clases requiere de las dos variables (X1,X2) ya que ninguna por sí sola permite discriminar entre las dos clases.

En este ejemplo calcularemos el primer (y único) eje canónico para demostrar que sobre éste pueden discriminarse las dos clases.

Figura 8.2.3.1Prototipos (bidimensionales) de dos clases. 1. Cálculos previos.

Se calculan las medias y covarianzas por clase:

=

=

00.625.7

25.325.3

BA µµ

=

= ∑∑ 67.600.3

00.325.425.459.259.225.2

BA

X1

X2

X1

X2

Page 87: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

87

=−−=∑ ∑=

J

BAi

TiiiBA N

N ,/ ))((1 µµµµ

Y como N1 = N2 la media global se calcula según la ecuación 8-2.2.2.

( )

=

+

=+=

63.425.5

625.7

25.325.3

21

21

BA µµµ

A continuación se calculan ΣW y ΣA/B. Como N1 = N2.

( )∑ ∑ ∑

=+=

46.580.280.225.3

21

BAW

=

89.175.275.200.4

/ BA

Con N=8 y Ni=4. 2.Cálculo de los cocientes λ.

La matriz de transformación canónica WT es la solución a la ecuación (ΣA/B - Λ ΣW)W = 0 donde Λ es una matriz diagonal de valores propios (los valores de los cocientes λ en cada eje canónico).

Cada λ y su correspondiente vector d (que define la dirección del eje canónico asociado) pueden calcularse individualmente resolviendo cada componente de la matriz W por separado según la ecuación (ΣA – λ ΣW) d =0. Para tener una solución no trivial, se requiere que | ΣA/B - λ ΣW | =0

Sustituyendo en esta expresión los valores de ΣW y ΣA/B.

046.580.280.225.3

89.175.275.200.4

=

λ

o sea,

0 5.46-1.89 2.80-2.75 2.80 - 2.75 3.25 - 4.00=

λλλλ

T

63.425.5

25.325.3

63.425.5

25.325.3

21

Page 88: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

88

[d11 d12] d11 d12

d11 d12

d11 d12

Desarrollando (4 - 3.25 λ)(1.89-5.46 λ)-(2.75 - 2.8 λ)(2.75 - 2.8 λ)= 0 9.96 λ2-12.64 λ -3.27x10-13= 0

Las soluciones son: λ 1= 1.27 y λ 2= 0

Como era de esperarse, sólo hay un eje canónico, definido por el vector d1, que corresponde a λ 1= 1.27

3. Cálculo de los vectores d y de la matriz W.

El vector d1, que define la dirección del primer eje canónico es la solución a la ecuación

(ΣA/B - λ ΣW)d = 0 con λ = 1.27.

(ΣA/B - 1.27 ΣW)d1 = 0 o sea,

046.580.280.225.3

27.189.175.275.24

=

004.579.079.013.0

=

−−−−

Que da lugar al sistema de ecuaciones

-0.13 d11 – 0.79 d12 = 0-0.79 d11 – 5.04 d12 = 0

De donde se deduce que d11 = - 6.08 d12.

Por otra parte, la restricción de no correlación impuesta por la ecuación 8-2.2.7

( WT ΣW W = I) hace que, w1T ΣW w1 = 1.

146.580.280.225.3

=

Page 89: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

89

= 1

d1 =

d12

desarrollando, 3.25 d11

2 + 5.6 d11 d12 + 5.46 d122 = 1

sustituyendo d11 = - 6.08 d12, y resolviendo d12 = ± 0.1 y d11 = - 0.61

El resultado es que primer eje canónico (y único) está determinado por el vector:

−1.061.0

La interpretación geométrica del nuevo sistema de coordenadas canónicas (definido por Y) respecto al original (X1,X2), en base al vector canónico d1 se detalla en la figura Figura 8.2.3.2.

Figura 8.2.3.2 d1 determina el primer eje canónico.

3.25 2.80 2.80 5.46

X1

X2

Y -.75 d11 -.25

.25

.25d1

Page 90: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

90

W=[d1] =

Y = d1T X = [ -0.61 0.1]

X1 X2

Ya que sólo hay un eje canónico, W se reduce al vector d1:

−1.061.0

4. Transformación de los patrones a coordenadas canónicas.

Los patrones originales se transforman en coordenadas canónicas mediante la relación Y = WT X. Como W degenera a d1.

o,

Y = - 0.61 X1 + 0.1 X2

Page 91: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

91

X1 X2 Y 2 1 - 1.122 3 - 0.925 6 - 2.454 3 - 2.14

Para la clase A

X1 X2 Y 5 3 - 2.756 7 - 2.969 9 - 4.599 5 - 4.99

Para la clase B

Tabla 8.2.3.3 Patrones en las coordenadas originales y canónicas

En la tabla 8.2.3.3 mostramos el resultado de la transformación a coordenadas canónicas de los patrones representados en la figura 8.2.3.1.

En la figura 8.2.3.4 mostramos la representación de estos patrones sobre el primer eje canónico.

Page 92: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

92

Figura 8.2.3.4 Representación de los patrones según la tabla 8.2.3.3.

Obsérvese que las dos clases son perfectamente discriminables sobre el eje Y, siendo éste el eje para el que se maximiza la relación entre la dispersión entre los centros de las clases y la dispersión media de las clases.

X1

Y

X2

Page 93: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

93

Page 94: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

94

9 Clasificadores Estadísticos 9.1 Introducción El objetivo final del RP es el de etiquetar de forma automática patrones de los cuales desconocemos su clase[2,12,13,14]. Sea J el número de clases , denominamos a Ω como el conjunto de clases informacionales, donde Ω= , ,..., para j=1,2,...,J. Llamaremos clase de rechazo (ω0), a una clase que se asigna a todos los patrones para los que no se tiene una certeza aceptable de ser clasificados correctamente en alguna de las clases de Ω. Un clasificador o regla de clasificación es una función d, definida sobre los patrones X tal que para todo patrón X, d (X)∈Ω. Los patrones de una misma clase presentan cierta variabilidad natural. No obstante, deben estar relativamente cercanos en el espacio de representación y lejanos relativamente respecto a los patrones de otras clases. En esta situación, en un caso ideal, se pueden distinguir diferentes agrupamientos en el espacio de representación, uno por cada clase considerada. 9.1.1 Clasificadores Paramétricos y No Paramétricos. Si se supone un completo conocimiento a priori de la estructura estadística de las clases, el aprendizaje se reduce a la estimación de los parámetros que determinan las funciones de densidad de probabilidad de las clases. Las fronteras de decisión están definidas por las distribuciones de probabilidad de las clases. Los clasificadores construidos bajo esta suposición se conocen como clasificadores paramétricos y Un ejemplo de ellos es el clasificador de Bayes[3,12,13,14,15]. Si no se supone un determinado modelo estadístico, bien por desconocimiento o por la imposibilidad de asumir un modelo paramétrico adecuado, el problema resulta más complejo y se puede abordar desde diferentes perspectivas. Las fronteras de decisión están definidas por los prototipos. Los clasificadores construidos sin esta suposición se conocen como clasificadores no paramétricos y un ejemplo de ellos es el clasificador KNN[3,12,13,14,15]. *Nota: La teoría de éste capítulo, fue consultada de la página de “Reconocimiento de formas” del Dr. Francisco José Cortijo Bon, miembro del Departamento de Ciencias de la Computación e Inteligencia Artificial en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Granada en España http://www-etsi2.ugr.es/depar/ccia/rf/.

Page 95: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

95

9.2 Clasificador de Bayes El clasificador de Bayes se basa en la hipótesis de que la distribución de las clases sigue una distribución normal[5,12,13,14,15], y que: 1.- Los valores de los patrones asociados a una clase deben ser sustancialmente diferentes a los de otra clase[12,13,14]. 2.- Los patrones asociados a una misma clase no son exactamente iguales, es decir, hay variabilidad entre los patrones de una misma clase[12,13,14]. En la figura 9.2.1 A) se muestra un ejemplo para tres clases de dos dimensiones (atributos), y en la figura 9.2.1 B), representamos la probabilidad de pertenencia a cada clase, en la altura.

Figura 9.2.1 A) Representación de los prototipos, B) Modelado de las clases por una distribución de probabilidad gaussiana.

Basados en este planteamiento, los patrones de una clase dada son realizaciones de una distribución de probabilidad normal, cuyos parámetros son el vector medio y la matriz de covarianza.

Atributo 1

Atributo 2

Clase 1

Clase 2

Clase 3

Clase 3

Clase 2

Clase 1

Atributo 1

Atributo 2

A) B)

Page 96: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

96

Algunas propiedades de la función de densidad o distribución normal (gaussiana), son:

1.- Parámetros que especifican la distribución. La función de densidad normal queda completamente especificada por pocos parámetros. En el caso unidimensional, bastan únicamente dos parámetros: la media y la varianza. En el caso multidimensional, el vector medio y la matriz de covarianza.

2.- Incorrelación e independencia. Dado un conjunto de patrones que siguen una distribución normal, si las variables asociadas no están correlacionadas, entonces son independientes.

3.- Justificación física. La suposición de normalidad es una aproximación razonable para la mayor parte de los datos tomados de la Naturaleza. Esto es cierto, en particular, para variables aleatorias que son suma de otras variables y el teorema central del límite puede aplicarse.

La función de densidad normal es acertada en situaciones en las que un conjunto de patrones de una determinada clase toman valores en un rango continuo y alrededor de un patrón promedio. Esto es, considera que los patrones de clases diferentes tienen distintos valores pero los valores de los patrones de una clase son lo más parecidos posible.

4.- Densidades marginales y condicionadas. Las densidades marginales y condicionadas de una distribución normal son también normales.

5.- Invarianza frente a transformaciones lineales. La distribución que sigue cualquier combinación lineal de una variable aleatoria normal es también normal (con diferentes parámetros).

Esta propiedad es particularmente interesante cuando se aplican transformaciones lineales a los datos, con objeto de resaltar algunas características que se ponen de manifiesto con estas transformaciones.

Cada punto del espacio de representación tiene asociado un valor de densidad de probabilidad de pertenencia a cada clase, que se representa en el eje de la altura, y será mayor cuanto más cercano esté (relativamente) del centro (media) de una clase.

Se dice que un vector X está en la región de decisión asociada a una clase si el valor de probabilidad de pertenencia a esa clase asociado a X es mayor que para cualquiera otra clase. Las superficies que delimitan las regiones de decisión son las fronteras de decisión.

Page 97: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

97

9.2.1 Conceptos Fundamentales

La probabilidad a priori de una clase indica el conocimiento a priori acerca de esa clase antes de realizar un experimento.

La probabilidad a priori de una clase, j, se expresa como P( ) o por simplicidad.

Las probabilidades a priori de J clases no pueden ser negativas y su suma debe ser la unidad (ver 4.1 para una explicación más a fondo de éstas propiedades).

Si suponemos un esquema de dos clases, la clase ganadora sería:

si > si <

Y la probabilidad de cometer un error en la clasificación viene dado por el menor valor entre y .

Sea x una variable aleatoria con una distribución de probabilidad que depende de la clase considerada, p (x | ) es la función de densidad de probabilidad condicionada de x o, la función de densidad de probabilidad de x, en el supuesto que su clase es . En la figura 9.2.1.1 representamos las funciones de densidad de probabilidad para dos clases. El rechazo en distancia se produce cuando la probabilidad calculada es menor a un umbral de clasificación establecido con anterioridad y el rechazo en ambigüedad se produce cuando no se tiene certeza de cuál es la clase ganadora. p (x | ) y p (x | ) son las probabilidades de que un patrón etiquetado de clase 1 o de clase 2, tenga el valor x.

Page 98: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

98

Rechazo en ambigüedad

Rechazo en distancia Rechazo en

distancia

Figura 9.2.1.1 Funciones de densidad

de probabilidad normales.

Sea P( | x) la probabilidad de que la clase cierta sea dado que el valor observado es x, se enuncia el teorema de Bayes como:

P( | x) = donde p(x) = p(x | ) A P( | x) se le llama probabilidad a posteriori, que se interpreta como la probabilidad de que la clase sea cierta dado que el valor observado es x.

A continuación, calculemos la probabilidad de cometer un error en la toma de una

decisión. Dado un patrón x cualquiera,

Para cada x, minimizamos la probabilidad de error escogiendo si P( | x) > P( | x) y si P ( | x) > P( | x). La probabilidad media de error viene dada por la integral

P(error) = P(error, x) dx = P(error| x)p(x)dx

p(x|ω1)

p(x|ω2)

P(error| x)

Page 99: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

99

Para que P(error| x) sea mínima, esta integral debe ser la mínima posible. La consecuencia es que la regla de Bayes minimiza la probabilidad media de error, como se mencionó en 6.1.1. En un esquema de clasificación con dos clases la clase ganadora será si P( | x) > P( | x), y en otro caso.

A esto se le conoce como regla de decisión de Bayes.

O lo que es lo mismo:

Optar por , si P(x| ) > P(x| ) ,y por en otro caso.

Cuando P(x| ) = P(x| ), x no es capaz de aportar información sobre su clase de pertenencia, la decisión se toma según los valores de y .

Por otro lado, cuando = , la decisión se toma en base a los valores de P(x| ), y en estos casos se habla de la verosimilitud de x respecto a [17], y la regla de decisión correspondiente sería:

Optar por si P(x| ) > P(x| ), y por en otro caso. A esto se le conoce como regla de máxima verosimilitud[17]. La regla de Bayes combina la probabilidad a priori y densidad de probabilidad, de forma que se garantiza que se alcanza la mínima probabilidad de error[2,12,13,14]. 9.2.2 Función de Densidad de Probabilidad Normal La función de densidad de probabilidad normal para una variable es: P (x| ) = exp - (9-2.2.1) La ecuación 9-2.2.1 que indica la probabilidad de que el patrón observado tenga el valor x, asumiendo que la clase cierta sea ,donde:

= E [ x| ] es la media de la clase i. = E [ (x - )2| ] es la varianza de la clase i.

En el caso multidimensional, la función de densidad de probabilidad normal es:

Page 100: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

100

P (X | ) = exp - (X- )T (X- ) (9-2.2.2)

Donde:

= E [ X | ] es el vector promedio de la clase i, = E [ (X - )(X - )T| ] es la matriz de covarianza de la clase i, | | es el determinante de es la matriz inversa de (X - )T es el vector traspuesto de (X - )

Y d es el número de dimensiones. La ecuación 9-2.2.2 es muy difícil de programar en la práctica, por lo que buscaremos una reducción. Sacando el logaritmo natural a 9-2.2.2 ln P (X| ) =ln +ln exp - (X- )T (X- ) ln P (X| ) =ln (1)-ln - (X- )T (X - ) ln P (X| ) =ln (1)- ln - (X- )T (X - ) ln P (X| ) =ln (1)- ln - ln - (X- )T (X - ) (9-2.2.3) En el caso de existir J clases, los términos 1 y 2 son comunes para el cálculo de todas las probabilidades, lo que reduce nuestra ecuación 9-2.2.3 a ln P (X| ) = - ln - (X- )T (X- ) (9-2.2.4)

Page 101: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

101

multiplicando por –1 - ln P (X| ) = ln + (X- )T (X- ) (9-2.2.5)

El efecto de este cambio, es que la probabilidad ganadora va a ser la menor una vez normalizadas todos los ln P (X| ). 9.3 Clasificador KNN Este algoritmo de clasificación se basa en la estimación local de una nube de puntos realizada por el clasificador a los K vecinos más cercanos (en ingles, K-nearest-neighbor “KNN”)[2,3,5]. Sea X un vector cualquiera a clasificar, perteneciendo al espacio Rd. Sea M una base de datos de referencia compuesta de N vectores en el espacio Rd , se sabe la clase de pertenencia de cada vector de la base de referencia. El clasificador a los K vecinos mas cercanos está basada sobre la estimación local de la densidad de probabilidad de la muestra X a partir de los K vecinos mas cercanos en la base de referencia. A partir de esta, las densidades de probabilidad para todas las clases se estiman mediante dos modos de agrupamiento: agrupamiento general y agrupamiento por clase. 9.3.1 Clasificador KNN con Agrupamiento General Sea V el hipervolumen definido por la distancia D entre el vector X y el k-ésimo vecino. La densidad de probabilidad conjunta está definida por ki/( N x V), donde ki es el número de vectores pertenecientes a la clase de los K vecinos, normalizados por el número total de vectores divididos por el volumen que engloba a los K vecinos. Haciendo éstas consideraciones, y suponiendo que las probabilidades a priori de las clases son iguales, el teorema de Bayes puede calcularse como:

Donde C es el número total de clases.

Usamos la distancia euclidiana definida por ∑=

−=d

i

xxxxdist1

22121 )(),( para calcular la

distancia de los KNN.

Kk

k

k

NVk

NVk

XwP iC

cc

iC

c

c

i

i ===

∑∑== 11

)|( (9-3.1.1)

Page 102: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

102

La clase de pertenencia del vector X será determinada considerando el mayor número de vectores pertenecientes a la clase (dentro de los K vecinos más próximos), y se dice que X será asociado a la clase mayormente representada en el hipervolumen[5]. Por razones técnicas, el valor de K es un valor impar para evitar ambigüedad en la decisión[5]*. En la figura 9.3.1.1 se muestra un ejemplo con dos clases y K=3. En éste caso, la clase ganadora es la clase1, porque es la mayormente representada en el hipervolumen.

Figura 9.3.1.1 KNN con agrupamiento general.

*Nota: En “[9]”, se hace una demostración de que el error asociado al clasificador KNN, por haber seleccionado k=1,2,3,4,..., sigue el siguiente comportamiento.

E1=E2, E3=E4,... y así sucesivamente.

Por lo que no vale la pena probar para valores de K pares...

Clase 1

Clase 2

Vector a clasificar

Con K=3

Page 103: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

103

9.3.2 Clasificador KNN con Agrupamiento por Clase En éste caso, la densidad de probabilidad queda definida por K/( N x Vi), donde K va a ser el número de vectores que se van a escoger de cada una de las clases normalizada por la relación del número total de vectores dividida por el volumen Vi generado a partir de la k-ésima distancia. Haciendo éstas consideraciones, y suponiendo que las probabilidades a priori de las clases son iguales, el teorema de Bayes puede calcularse ahora como:

Para determinar la clase de pertenencia del vector X, se considera el menor hipervolumen representado definido por la máxima distancia entre el vector y sus K vecinos más próximos. En la figura 9.3.2.1 se muestra un ejemplo con dos clases y K=3. En éste caso, la clase ganadora es la clase1, porque es la que forma un hipervolumen más pequeño.

Figura 9.3.2.1 KNN con agrupamiento por clase.

∑∑==

== C

cc

iC

c i

ii

V

V

NVK

NVK

XwP

11/1

/1)|( (9-3.2.1)

Clase 1

Clase 2

Vector a clasificar Volumen V1

Volumen V2

Con K=3

Page 104: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

104

10 Métodos de Validación 10.1 Introducción Una etapa preliminar en el análisis de una aplicación de reconocimiento de patrones, es la estimación de probabilidades de clasificación errónea, las cuales dependen de la estructura de la base de datos de aprendizaje y de las limitaciones del clasificador[5]. La matriz de confusión es la forma más simple de representar esto, y existen varios métodos de obtención, los cuales pueden ser: re-sustitución, bootstrap (generación de datos de arranque), leave-one-out (deja-uno-fuera), leave-k-out (deja-k-fuera), cross-validation (validación cruzada). La matriz de confusión está organizada de la siguiente forma: La última columna va a contener los rechazos y el performance del clasificador se calcula sobre la diagonal, de tal forma que el error del clasificador, es igual a 100% menos el performance:

Error=100%-Performance (10-1.1)

9

8

7

6

5

4

3

2

1

Matriz de confusión

C l a s e r e a l

1 2 . . . . . . . . . . . . . .

Clase asignada 1 2 . . . . . . . . . . R

Page 105: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

105

En nuestra investigación usamos los métodos de validación leave-one-out y cross-validation para determinar el tamaño de ventana óptimo para el clasificador de Bayes, y el tamaño de ventana óptimo mas el valor de K que produce el menor error para el clasificador KNN. 10.2 Leave-one-out El procedimiento consiste en lo siguiente:

Se obtienen una base de datos de 100 vectores para cada clase. Enseguida, se concatenan para formar una sola de altura M, de tal forma que ya sabemos de antemano la clase de pertenencia de cada uno de los vectores de la base de datos concatenada. Tomamos el primer vector de la base de datos como vector de prueba y los M-1 restantes se toman como muestras de aprendizaje, de tal forma que el vector de prueba, y el resto de la base de datos que se está usando como aprendizaje, se someten al clasificador y se obtiene una clase asignada al vector de prueba.

Al terminar de clasificar este vector, se toma el segundo vector de la base de datos de altura M como muestra de prueba y nuevamente los M-1 vectores restantes se toman como muestras de aprendizaje y se repite el proceso anterior hasta haber clasificado la última muestra M.

Los resultados obtenidos se almacenan en la matriz de confusión con la finalidad de saber cuantos vectores fueron clasificados en forma correcta y cuantos no lo fueron.

Al tener esta información, con la cantidad de muestras que fueron correctamente clasificadas se puede obtener la eficiencia o el error que se tiene al hacer la clasificación para cierto tamaño de ventana y número de vecinos (en el caso del clasificador KNN). En la figura 10.2.1, se muestra el esquema de este método de validación.

Page 106: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

106

CLASIFICADOR

Figura 10.2.1 Método de validación leave-one-out.

M

Clase real

M-1

Base de datos total

1

Aprendizaje

Prueba

Matriz de confusión

Page 107: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

107

10.3 Cross-validation El procedimiento consiste en lo siguiente: De cada una de las bases de datos correspondientes a cada clase, se escogen aleatoriamente la mitad de los vectores para formar una base de datos de prueba y el resto para formar otra de aprendizaje, ambas de altura 100/2, y después se concatenan en una sola base de datos para aprendizaje y otra para prueba. Se someten al clasificador uno por uno los vectores de la base de datos de prueba y la base de datos de aprendizaje obteniéndose la matriz de confusión.

Este procedimiento se repite 20 veces, de tal manera que se van a tener 20 matrices de confusión. El performance va a ser el promedio de los obtenidos con las 20 matrices de confusión. En la figura 10.3.1, se muestra el esquema de este método de validación.

Page 108: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

Matriz de confusión

Figura 10.3.1 Método Cross-validation.

50 x #clases

100

Clase real

Base de datos de una de las 12 clases

Aprendizaje

Prueba

Bd de aprendizaje

Bd de prueba 50

50

1

Aprendizaje

Prueba

CLASIFICADOR

20 Veces aleatoriamente

50 x #clases

Page 109: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus
Page 110: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

110

11 Implementación Todo el código de esta investigación, fue implementado en MATLAB Versión 6.0.0.88 (R12) del Lab. Multimedia y MATLAB Versión 6.1.0.450 (R12.1) de la Maestría en Ciencias de la Computación*, ya que éste usa el paradigma de matrices y es ideal para manipulación de imágenes en forma de matrices tanto unidimensionales como multidimensionales, además de que tiene implementadas tanto la Transformada de Fourier, como la Transformada Wavelet y el ACP entre otros. Los algoritmos se probaron con las siguientes texturas que van de menor a mayor complejidad, hasta llegar a las mamografías. 1.- Texturas artificiales.

Figura 11.1 Imagen compuesta por cuatro texturas artificiales. Las texturas son generadas por el siguiente código en MATLAB: clase1=floor(rand(256,256)*mstd1 + media1); clase2=floor(rand(256,256)*mstd2 + media2); clase3=floor(rand(256,256)*mstd3 + media3); clase4=floor(rand(256,256)*mstd4 + media4); Donde mstdx y mediax son los valores de la desviación estándar y de la media que van a tener las texturas generadas.

Estas líneas nos generan cuatro texturas de tamaño 256 x 256 pixeles con valores de píxel que van a estar de 0 a 255. *Nota: Tanto el Lab. Multimedia como la Maestría en Ciencias de la Computación cuentan con las licencias y documentación respectivas para el uso de MATLAB y sus respectivos Toolboxes. Los comandos de MATLAB se están poniendo en negrita.

Page 111: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

111

Se usaron valores de media de 20, 40, 60 y 80 respectivamente para cada una de las cuatro texturas y una desviación estándar de 5 para todas. La imagen compuesta se genera tomando una cuarta parte de cada una de las cuatro texturas organizadas de la siguiente forma:

Figura 11.2 Organización de las texturas. De esta forma tenemos una imagen de 256 x 256 pixeles compuesta de cuatro texturas artificiales. 2.- Texturas naturales. Posteriormente, aplicamos los mismos algoritmos sobre una imagen más compleja formada también por cuatro texturas naturales[16].

Figura 11.3 Imagen compuesta por cuatro texturas naturales.

Las cuatro texturas individuales que forman la imagen, se presentan en la figura 11.4.

textura 1

textura 3

textura 2

textura 4

Page 112: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

112

Clase 1 Clase 2

Clase 3 Clase 4

Figura 11.4 Texturas que forman cuatro clases.

3.- Mamografías. Una vez probados los programas con las imágenes anteriores con cuatro clases (texturas), se procedió a implementarlos con doce mamografías con doce tumores diferentes de tal forma que cada tumor va a ser considerado como una clase. Las mamografías fueron obtenidas de la “MiniMammographic Database” de la Sociedad de Análisis de Imágenes Mamográficas (MIAS, http://peipa.essex.ac.uk/ipa/pix/mias/) digitalizadas a 200 micras (10-6) por pixel . Cada imagen es de 1024 x 1024 pixeles, y junto a esta base de datos se anexa un archivo que proporciona, entre otras cosas, la siguiente información para la mayoría de los tumores:

• Nivel de grasosidad del tejido. • Tipo de tumor. • Coordenadas en X e Y del centro de la anormalidad. • Radio aproximado del círculo que contiene la anormalidad.

Page 113: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

113

Se seleccionaron 6 mamografías con tumores benignos y 6 con tumores malignos organizadas de la siguiente forma:

Figura 11.5 Selección y organización de las mamografías.

Mamografía 1

Mamografía 6

Mamografía 7

Mamografía 12

Tumores malignosTumores benignos

menos grasosa menos grasosa

más grasosa más grasosa

Page 114: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

114

1 2 3

4 5 6

7 8 9

10 11 12

Figura 11.6 Mamografías utilizadas.

Page 115: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

115

100 ventanasaleatorias de cada clase

∑=

=mn

mnmnM

nxmo

.

1,),(

313m

∑=

=mn

mnmnM

nxmo

.

1,),(

414m

11.1 Aprendizaje Para crear una base de datos de aprendizaje de las texturas, se toman 100 ventanas aleatorias de un tamaño designado por el usuario, para cada clase. Esto hace que se tengan 100 subimágenes (matrices cuadradas) de cada clase. A cada una de estas matrices, se les calculan los siguientes nueve atributos: µ, σ, σ2, CON, MASO, ENT, mo3,mo4, |F(u,v)| y con ellos se forma un vector de 1 x 9, como se ve en la figura 11.1.1. Decidimos hacerlo primero de esta manera, porque se contaba con el respaldo de la investigación del Dr. Carlos Avilés en el Instituto Politécnico Nacional de Grenoble, en Francia[5]. Clase 1 Clase 2 Clase 3 Clase 4 100 vectores de atributos para cada clase

Figura 11.1.1 Esquema de aprendizaje.

Se utilizó la forma más simple para el cálculo de momentos dada por las ecuaciones:

Y |F(u,v)|, se calculó con:

1 x 9

(11-1.1)

(11-1.2)

)(|v)F(u,|.

1,),(∑

=

=mn

mnvuFabs (11-1.3)

Page 116: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

116

Para las texturas artificiales y las naturales, si concatenamos todos vectores, tendremos una base de datos con la siguiente configuración:

µ σ σ2 CON MASO ENT mo3 mo4 |F(u,v)| Clase #

1 1:100 2 101:200 3 201:300 4 301:400

En donde los primeros 100 vectores pertenecen a la clase 1, los siguientes 100 a la clase 2 y así sucesivamente de tal forma que las dimensiones de la base de datos son 400x10. En el caso de las mamografías, estas son descargadas en formato .pgm , el cuál no lee directamente MATLAB, por lo que se hizo uso del programa leer_pgm.m desarrollado en el Lab. Multimedia para poder trabajar directamente sobre las imágenes y poder conservar la mayor cantidad de información original posible. Para hacer el aprendizaje, se diseñó el programa corta_tumor.m , que localiza y separa los tumores del resto de la mamografía en base a la información proporcionada por la base de datos MIAS. Para hacer el aprendizaje, se seleccionan aleatoriamente 100 ventanas (subimágenes) de cierto tamaño directamente de los 12 tumores recortados como se muestra en la figura 11.1.2. A cada una de las ventanas se le calculan los mismos atributos que en 11.1 de tal manera que la base de datos final consta de 1,200 vectores concatenados con la organización mostrada en la figura 11.1.3.

Page 117: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

117

Figura 11.1.2 Aprendizaje con tumores.

100 ventanas aleatorias

de c/u de los 12 tumores

1

2

3

4

5

6

7

8

9

10

11

12

12 tumores x 100 ventanas

Page 118: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

118

100 x

100 x

100 x

100 x

100 x

100 x

100 x

100 x

100 x

100 x

100 x

100 x

Figura 11.1.3 Base de datos de aprendizaje con los 12 tumores. En este momento, podemos aplicar el ACP, o el AFD. 11.2 ACP A continuación explicaremos cómo se hizo el ACP y el AFD para las mamografías (12 clases), ya que para las texturas artificiales y las naturales el procedimiento es el mismo, solo que se tienen 4 clases. MATLAB hace el ACP a partir de la matriz de covarianza, por lo que el primer paso fue calcular la matriz de covarianza de la base de datos total, mediante la siguiente línea de código: mcov_Bdatos_tot_sin_acp=cov(Bdatos_tot_sin_acp); La función pcacov usa como argumento la matriz de covarianza obtenida en el paso anterior para proporcionar la matriz de transformación W y los valores propios mediante la siguiente línea:

Clase #

|F(u,v)|

mo4 mo3 ENT MASOCON σ^2

σ µ

1101:1200 12

1001:1100 11

901:1000 10

801:900 9

701:800 8

601:700 7

501:600 6

401:500 5

301:400 4

201:300 3

101:200 2

1:100 1

Page 119: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

119

[W,valores_propios]=pcacov(mcov_Bdatos_tot_sin_acp); Hacemos la reducción de correlación usando los valores propios como se mencionó en 8.1.4, y encontramos que más del 99.999% de la información más significativa estaba en las primeras tres columnas de la nueva base de datos que es resultado de la transformación hecha por el ACP. 11.3 AFD Para obtener la matriz de transformación W como se explicó en 8.2.3, se usó la instrucción “eigs” de MATLAB dándole como argumentos la matriz de covarianza interclase y la matriz de covarianza interna media como se muestra. [V,D]=eigs(varcovar_AB,varcovar_W); tamano_de_V=size(V); en_x=tamano_de_V(1); en_y=tamano_de_V(2); W=V(:,1:(en_y-1)); Al final, nos que damos con las primeras en_y-1 columnas para hacer la transformación. Posteriormente aplicamos la transformación a cada una de las bases de datos de cada clase como se muestra a continuación. %transformacion de coordenadas Bdatos_c1=(W'*Bdatos_c1_sin_afd')'; Bdatos_c2=(W'*Bdatos_c2_sin_afd')'; Bdatos_c3=(W'*Bdatos_c3_sin_afd')'; Bdatos_c4=(W'*Bdatos_c4_sin_afd')'; Bdatos_c5=(W'*Bdatos_c5_sin_afd')'; Bdatos_c6=(W'*Bdatos_c6_sin_afd')'; Bdatos_c7=(W'*Bdatos_c7_sin_afd')'; Bdatos_c8=(W'*Bdatos_c8_sin_afd')'; Bdatos_c9=(W'*Bdatos_c9_sin_afd')'; Bdatos_c10=(W'*Bdatos_c10_sin_afd')'; Bdatos_c11=(W'*Bdatos_c11_sin_afd')'; Bdatos_c12=(W'*Bdatos_c12_sin_afd')'; Donde ' es la transpuesta.

Page 120: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

120

Ventana actual

11.4 Prueba Para las texturas artificiales y las naturales, el proceso de prueba consiste en hacer un barrido de la imagen por medio de ventanas, ya sea con pasos de ventana o de pixel, de tal forma que se calcula la probabilidad de que esa ventana pertenezca o no, a alguna de las cuatro clases. Esta es la función de los clasificadores de Bayes y KNN, este último, en sus dos modos de agrupamiento.

Figura 11.4.1 Barrido de la imagen mediante ventanas.

A cada ventana se le calculan los mismos atributos que en 11.1 y con ellos se forma un vector de 1 x 9 como el de la figura 11.4.2. 9

Figura 11.4.2 Cálculo de los atributos.

A este vector aun no se le ha aplicado un ACP, o un AFD. Para hacer esto, únicamente se multiplica por la matriz de transformación W y nos quedamos con las tres primeras columnas en el caso del ACP. En pseudocódigo: Vector con ACP=(W'*Vector sin ACP')'; Donde “Vector sin ACP”, es el vector original de 1 x 9. Los clasificadores etiquetan la ventana de prueba como alguna de las cuatro clases, o como clase de rechazo en caso de ambigüedad para un umbral de clasificación dado.

|F(u,v)|mo4 mo3 ENTMASOCONσ^2σ µ

Ventana actual

1

Page 121: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

121

Ventana actual

Para las mamografías, el proceso de prueba es el mismo, recorriendo la mamografía y calculando la probabilidad de que una ventana sea susceptible o no a contener alguna de las 12 clases de tumores con los atributos ya mencionados.

Figura 11.4.3 Recorrido de prueba sobre una mamografía.

11.5 Aprendizaje y Prueba con Transformada Wavelet El primer esquema que se probó, consistió en obtener los coeficientes wavelet a nivel I y II de las ventanas de la mamografía tanto para aprendizaje como para prueba. Usamos las wavelet madre de Haar, por ser la más simple, y de Daubechies por ser la más citada en la literatura. La mayoría de las wavelets de Daubechies no son simétricas y para algunas, la asimetría es muy pronunciada. Usamos db10 debido a que es la más asimétrica[18]. Normalizamos las matrices de coeficientes de tal forma que sus elementos ocupen valores entre 0 y 255, para poder calcular la matriz de coocurrencia, a partir de la cual, calculamos los nueve atributos mencionados. Esto lo hacemos con la función NORM_COEF_ que toma como argumentos la matriz de coeficientes y cuyo código se muestra a continuación: function coef_normalizados=NORM_COEF_(coef_x); tamano_coef=size(coef_x); coef_normalizados=zeros(tamano_coef(1),tamano_coef(2));

Page 122: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

122

for j=1:tamano_coef(1) for k=1:tamano_coef(2) coef_normalizados(j,k)=round(255*(coef_x(j,k)-min(min(coef_x)))/(max(max(coef_x))-min(min(coef_x)))); end end La transformación que se programó, es la misma que se usa para hacer una helongación de histograma, cuyo propósito es que una imagen ocupe todos los niveles de gris[5]. A esta matriz de coeficientes normalizados, le calculamos los mismos atributos que en 11.1 y aplicamos el ACP y el AFD como se muestra en la figura 11.5.1.

Figura 11.5.1 Primer esquema implementado con TW. Desafortunadamente, los tumores de las mamografías reconstruidas bajo este esquema, tuvieron muy mala definición, como se ve en la figura 11.5.2.

IMÁGENES DE APRENDIZAJE

TW

cA1,cH1,cV1,cD1

Mcooc

IMÁGENES DE PRUEBA

cA2,cH2,cV2,cD2

µ σ

σ2

CON

MASO

ENT

mo3

mo4

|F(u,v)|

ACP AFD CLAS. SEG.

Page 123: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

123

Figura 11.5.2 Reconstrucción de la mamografía 1 (m1) con haar a nivel II y ACP. La siguiente prueba que se hizo sobre los coeficientes wavelet consistió en calcular la energía de los coeficientes tanto para aprendizaje como para prueba con la ecuación 11-5.1.

∑∑= 2escoeficientENERGIA (11-5.1) Como nó tiene sentido hacer el ACP o el AFD cuando se tiene una sola dimensión, Nuestro esquema general sería el de la figura 11.5.3.

cA1 cH1 cV1 cD1 cA2 cH2 cV2 cD2

Figura 11.5.3 Esquema con la energía de los coeficientes wavelet. Las mamografías reconstruidas bajo esta nueva implementación tuvieron la mejor definición para los coeficientes de las aproximaciones a ambos niveles .

ENERGIA CLAS. SEG.

Page 124: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

124

Clase 1, nivel de gris 0 Clase 2, nivel de gris 21 Clase 3, nivel de gris 42 Clase 4, nivel de gris 63 Clase 5, nivel de gris 84 Clase 6, nivel de gris 105 Clase 7, nivel de gris 126 Clase 8, nivel de gris 147 Clase 9, nivel de gris 168 Clase 10, nivel de gris 189 Clase 11, nivel de gris 210 Clase 12, nivel de gris 231 Clase de rechazo, nivel de gris 255

Clase 1, nivel de gris 200 Clase 2, nivel de gris 120 Clase 3, nivel de gris 60 Clase 4, nivel de gris 0 Clase de rechazo, nivel de gris 255

11.6 Segmentación En la segmentación se reconstruyen los resultados de la clasificación, conservando la posición original de las ventanas de prueba. Para implementar esto, reconstruimos la imagen asignando a las ventanas de cada una de las clases niveles de gris que contrasten con los de la imagen original para que las clases se discriminen lo mejor posible. Esto se resume en la figura 11.6.1, para las texturas artificiales y las naturales.

Figura 11.6.1 Esquema de reconstrucción.

Para las mamografías, la segmentación se hace de la misma forma, reconstruyendo la mamografía asignando a las ventanas de cada una de las clases niveles de gris que contrasten con los de la imagen original para que las clases se discriminen lo mejor posible en pasos de 21, iniciando con cero para la clase 1. Esto se resume en la figura 11.6.2.

Figura 11.6.2 Esquema de reconstrucción con mamografías.

Ventana actual de la imagen ACP,AFD

Vector original Vector transformado

Ventana actual de la imagen ACP,AFD

Vector original Vector transformado

Page 125: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

125

Clase 1, nivel de gris 0 Clase 2, nivel de gris 21 Clase 3, nivel de gris 42 Clase 4, nivel de gris 63 Clase 5, nivel de gris 84 Clase 6, nivel de gris 105 Clase 7, nivel de gris 126 Clase 8, nivel de gris 147 Clase 9, nivel de gris 168 Clase 10, nivel de gris 189 Clase 11, nivel de gris 210 Clase 12, nivel de gris 231 Clase de rechazo, nivel de gris 255

El proceso de segmentación con TW es similar al de 11.6 omitiendo la parte del ACP y el AFD como se ve en la figura 11.6.3.

Figura 11.6.3 Esquema de reconstrucción con mamografías.

ENERGIA CLAS.cA1, cA2

Page 126: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

126

12 Resultados A continuación presentamos algunas segmentaciones obtenidas con el clasificador de Bayes y con el clasificador KNN, observando el efecto que tienen distintos valores de k y de tamaño de ventana en la reconstrucción. 12.1 Texturas Artificiales Debido a la simplicidad de las texturas artificiales y naturales, mostramos solo los resultados de la clasificación con ACP sin reducir la correlación, ya que éstas se usaron principalmente para probar el funcionamiento de los clasificadores, y así ganar tiempo. Por la misma razón no se hicieron las pruebas de validación para ambas texturas. 12.1.1 Segmentaciones con Bayes

Figura 12.1.1.1 Segmentación con un tamaño de ventana de 18 pixeles y un umbral de clasificación de 90%.

Como se ve en la figura 12.1.1.1, con los parámetros anteriores, el clasificador rechaza la clase 1 (ventanas blancas, nivel de gris de 255), y asigna correctamente las ventanas del resto de las clases. Recordemos que las clases están organizadas según la figura 12.1.1.2:

Page 127: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

127

Figura 12.1.1.2. A pesar de esto, los bordes de las fronteras de clase están perfectamente separados.

Figura 12.1.1.3 Segmentación con un tamaño de ventana de 16 pixeles y un umbral de clasificación de 90%.

Como se ve en la figura 12.1.1.3, el clasificador rechaza la clase 1 y las ventanas que estaban sobre el borde horizontal central, fueron clasificadas erróneamente debido a la ambigüedad de la función de densidad de probabilidad entre las clases. 12.1.2 Segmentaciones con KNN, Agrupamiento por Clase

Figura 12.1.2.1 Segmentación con un tamaño de ventana de 16 pixeles y un umbral de clasificación de 90%, k=1.

clase 1

clase 3

clase 2

clase 4

Page 128: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

128

Como se ve en la figura 12.1.2.1, el clasificador rechaza nuevamente la clase 1 con los parámetros anteriores, y asigna correctamente las ventanas a sus respectivas clases. A pesar de esto, los bordes de las fronteras de clase están perfectamente separados.

Figura 12.1.2.2 Segmentación con un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90%, k=7. En ésta segmentación, la mayoría de las ventanas fueron bien clasificadas a excepción de las ventanas del borde horizontal y vertical inferior debido a la ambigüedad de la función de densidad de probabilidad entre las clases. 12.1.3 Segmentaciones con KNN, Agrupamiento General

Figura 12.1.3.1 Segmentación con un tamaño de ventana de 16 pixeles y un umbral de clasificación de 90%, k=1.

Page 129: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

129

Como se ve en la figura 12.1.3.1, el clasificador rechaza nuevamente la clase 1 con los parámetros anteriores, y asigna correctamente las ventanas a sus respectivas clases. A pesar de esto, los bordes de las fronteras de clase están perfectamente separados. Los mismos resultados se obtuvieron para k=11,17. 12.2 Texturas Naturales El siguiente paso es evaluar la metodología tomando en cuenta las texturas naturales, recordando que las clases están localizadas según la figura 12.2.1.

Figura 12.2.1. 12.2.1 Segmentaciones con Bayes

Figura 12.2.1.1 Segmentación con un tamaño de ventana de 18 pixeles y un umbral de clasificación de 90%.

Clase 3

Clase 1

Clase 2

Clase 4

Page 130: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

130

En este caso, el clasificador rechaza la clase 4 con los parámetros anteriores, y asigna correctamente la mayoría de las ventanas a sus respectivas clases. A pesar de esto, los bordes de las fronteras de clase están perfectamente separados, pero la imagen no tiene mucha definición.

Figura 12.2.1.2 Segmentación con un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90%. En este caso, el clasificador asigna correctamente la mayoría de las ventanas a sus respectivas clases y comenzamos a ver los bordes más definidos. 12.2.2 Segmentaciones con KNN, Agrupamiento por Clase

Figura 12.2.2.1 Segmentación con un tamaño de ventana de 12 pixeles, un umbral de clasificación de 90% y k=7.

En este caso, el clasificador rechaza la clase 4 con los parámetros anteriores, y asigna una buena parte de las ventanas a sus respectivas clases, pero la imagen no esta muy definida.

Page 131: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

131

Figura 12.2.2.2 Segmentación con un tamaño de ventana de 12 pixeles, un umbral de clasificación de 90% y k=21.

Aquí podemos ver una imagen mas definida que la de la figura 12.2.2.1 debido al valor de k.

12.2.3 Segmentaciones con KNN, Agrupamiento General

Figura 12.2.3.1 Segmentación con un tamaño de ventana de 12 pixeles, un umbral de clasificación de 90% y k=11.

Con el clasificador KNN con agrupamiento general se tienen muchos rechazos para k=11.

Figura 12.2.3.2 Segmentación con un tamaño de ventana de 12 pixeles, un umbral de clasificación de 60% y k=5.

Page 132: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

132

Con un umbral de clasificación más bajo (60%) y k=5, el clasificador KNN con agrupamiento general tiene un mejor desempeño, ya que clasifica bien la mayoría de las ventanas de la clase 4 . 12.3 Mamografías sin Transformada Wavelet 12.3.1 Validación sin Transformada Wavelet con ACP En el caso del clasificador de Bayes, se necesita determinar el tamaño de ventana óptimo tanto para ACP, como para AFD. Esto se hace con los métodos de validación leave-one-out y cross-validation descritos en 8.2 y 8.3, implementados en el clasificador de Bayes. A continuación se presentan las gráficas obtenidas para el clasificador de Bayes con ACP. Recordemos que los atributos son: µ, σ, σ2, CON, MASO, ENT, mo3,mo4, |F(u,v)|.

Gráfica 12.3.1.1 Leave-one –out.

Page 133: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

133

Como se ve en la gráfica 12.3.1.1 el error tiende a disminuir conforme aumenta el tamaño de ventana. Éste error comienza con un tamaño de ventana de 12 pixeles y tiene un valor de aproximadamente 37.8% pero disminuye de manera prácticamente lineal entre tamaños de ventana de 20 a 26 para finalizar con aproximadamente 8.7% y 7.8%. Éste último para el mayor tamaño de ventana programado (28 pixeles).

Gráfica 12.3.1.2 Cross-validation.

Como se ve en la gráfica 12.3.1.2 el error vuelve a disminuir conforme aumenta el tamaño de ventana. Éste error comienza con un tamaño de ventana de 12 pixeles y tiene un valor de aproximadamente 37% pero disminuye de manera prácticamente lineal hasta finalizar con un valor de aproximadamente 7.2%. Éste último para el tamaño de ventana de 28 pixeles.

Para el caso del clasificador KNN, necesitamos determinar el tamaño de ventana óptimo para diferentes valores de k, además de probar los valores de k para diferentes valores de ventana. Esto se va a hacer en 12.4.2 con la energía de los coeficientes wavelet.

Page 134: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

134

12.3.2 Segmentaciones con Bayes y ACP A continuación mostramos los resultados de aplicar los mismos algoritmos a mamografías reales con los atributos descritos en 11.1.

a) m1 b) m1 reconstruida

c) m1 reconstruida

Figura 12.3.2.1 La reconstrucción b) se hizo con un tamaño de ventana de 28 pixeles, y la c) con un tamaño de ventana de18 pixeles, ambas con un umbral de clasificación de 90%.

Como se ve en la figura 12.3.2.1 b), a pesar de haberse usado el tamaño de ventana que minimiza el error, la mamografía reconstruida no tiene mucha definición y no nos da

tumor

tumor

tumor

Page 135: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

135

pautas para detectar el tumor. A pesar de esto, podemos ver que hay ventanas sobre la región en donde se localiza el tumor. Sin embargo, en la figura 12.3.2.1 c), se ve cómo comienzan ser más notorias las ventanas sobre la región más importante del tumor, pero también sobre el hueso del pecho y el borde de separación entre éste y el tejido de la mama a pesar de que el error correspondiente es del 24% según la gráfica 12.3.1.1 y del 25.6% según la gráfica 12.3.1.2

Figura 12.3.2.2 m1 con un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90%. En la figura 12.3.2.2, al usar un tamaño de ventana más pequeño la definición del tumor aumenta y comienzan a aparecer ventanas sobre puntos grasosos por tener niveles de gris muy similares a los de los tumores. *Nota: debido a que los niveles de gris de reconstrucción son muy parecidos (múltiplos de 21), es posible que a simple vista no se distingan bien las diferentes ventanas.

tumor

Page 136: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

136

12.3.3 Segmentaciones con KNN, Agrupamiento por Clase y ACP

Figura 12.3.3.1 m1 con un tamaño de ventana de 12 pixeles, k=5 y un umbral de clasificación de 20%.

Como se muestra en la figura 12.3.3.1, las ventanas sobre la región más importante del tumor son muy notorias, pero también sobre el hueso del pecho y el borde de separación entre éste y el tejido de la mama. En el clasificador KNN suprimimos el transfondo para visualizar mejor el tumor.

tumor

Page 137: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

137

Figura 12.3.3.2 m6 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20%.

Como se ve en la figura 12.3.3.2, hay una buena concentración de ventanas sobre el tumor, lo que nos comienza a dar pautas para detectarlo y también se observa una delimitación del contorno del tumor.

tumor

Page 138: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

138

12.3.4 Segmentaciones con KNN, Agrupamiento General y ACP

Figura 12.3.4.1 m1 con un tamaño de ventana de 12 pixeles, k=5 y un umbral de clasificación de 20%. Como se muestra en la figura 12.3.4.1, las ventanas sobre la región más importante del tumor son muy notorias, pero también sobre el hueso del pecho y el borde de separación entre éste y el tejido de la mama. Por brevedad sólo presentamos una imagen para éste clasificador.

tumor

Page 139: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

139

12.3.5 Validación sin Transformada Wavelet con AFD A continuación se presentan las gráficas obtenidas para el clasificador de Bayes con AFD.

Gráfica 12.3.5.1 Leave-one –out.

Como se ve en la gráfica 12.3.5.1 el error tiende a disminuir conforme aumenta el tamaño de ventana. Éste error comienza con un tamaño de ventana de 12 pixeles y tiene un valor de 58% pero disminuye de manera abrupta hasta estabilizarse en poco más de 34% entre tamaños de ventana de 18 a 22 para después continuar disminuyendo hasta finalizar con aproximadamente 24.8%. Éste último para el mayor tamaño de ventana programado (28 pixeles). Aquí también observamos que el error mínimo corresponde al clasificador de Bayes con ACP, que es de 7.8% (gráfica 12.3.1.1), mientras con AFD, el error mínimo es del 24.8%. Esto se debe a que el AFD no pudo separar las diferentes clases de una manera eficiente debido a que el número de dimensiones es muy grande (9 atributos).

Page 140: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

140

Figura 12.3.5.2 Cross-validation.

Como se ve en la gráfica 12.3.5.2 el error tiende a disminuir de manera prácticamente lineal para tamaño de ventana de 12 a 24 pixeles. Éste error aumenta ligeramente para un tamaño de ventana de 26 pixeles para quedar en 20.2% para el máximo tamaño de ventana programado (28 pixeles). Aquí también observamos que el error mínimo corresponde al clasificador de Bayes con ACP, que es de 7.15% (gráfica 12.3.1.2), mientras con AFD, el error mínimo es del 20.2%. Esto se debe a que el AFD no pudo separar las diferentes clases de una manera eficiente debido a que el número de dimensiones es muy grande.

Page 141: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

141

12.3.6 Segmentaciones con Bayes y AFD

Figura 12.3.6.1 m1 con un tamaño de ventana de 28 pixeles y un umbral de clasificación de 90%.

Como se ve en la figura 12.3.6.1, aparece una ventana sobre el área del tumor, sin embargo, la mamografía reconstruida no tiene mucha definición.

Figura 12.3.6.2 m1 con un tamaño de ventana de 18 pixeles y un umbral de clasificación de 90%.

Como se muestra en la figura 12.3.6.2, la región del tumor esta mucho más definida.

tumor

tumor

Page 142: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

142

Figura 12.3.6.3 m1 con un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90%.

Como se muestra en la figura 12.3.6.3, la región del tumor esta aun más definida. 12.3.7 Segmentaciones con KNN, Agrupamiento por Clase y AFD

Figura 12.3.6.1 m1 con un tamaño de ventana de 12 pixeles, k=5 y un umbral de clasificación de 20%.

Como se muestra en la figura 12.3.6.1, las ventanas sobre la región más importante del tumor son muy notorias.

tumor

tumor

Page 143: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

143

Figura 12.3.6.2 m6 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20%. Como se ve en la figura 12.3.6.2, hay una buena concentración de ventanas sobre el tumor, lo que nos comienza a dar pautas para detectarlo y también se observa una delimitación del contorno del tumor.

a) m8 b) m8 reconstruida

Figura 12.3.6.3 La reconstrucción b), se hizo con un tamaño de ventana de 12 pixeles, k=17 y un umbral de clasificación de 90%.

Como se ve en la figura 12.3.6.3, aparecen ventanas prácticamente sobre toda la zona del tumor y también se observa una delimitación de su contorno.

tumor

tumor tumor

Page 144: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

144

12.3.8 Segmentaciones con KNN, Agrupamiento General y AFD

Figura 12.3.8.1 m1 con un tamaño de ventana de 12 pixeles, k=5 y un umbral de clasificación de 20%.

En la figura 12.3.8.1, las ventanas sobre la región más importante del tumor son muy notorias

Figura 12.3.8.2 m6 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20%.

Como se ve en la figura 12.3.8.2, hay una buena concentración de ventanas sobre el tumor y se observa una delimitación de su contorno.

tumor

tumor

Page 145: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

145

Figura 12.3.8.3 m8 con un tamaño de ventana de 12 pixeles, k=17 y un umbral de clasificación de 90%. En la figura 12.3.8.3, aparecen ventanas prácticamente sobre toda la zona del tumor y también se observa una delimitación de su contorno.

tumor

Page 146: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

146

12.4 Mamografías con Transformada Wavelet 12.4.1 Validación con Bayes y db10 A partir de este momento, decidimos reportar sólo las gráficas obtenidas por el método de validación cross-validation descrito en 8.3, debido a que el método leave-one-out, es muy optimista, ya que usa el 99% de la base de datos para hacer el aprendizaje. En tanto que cross-validation usa una proporción de los datos tanto para aprendizaje como para prueba del 50%, el cuál se selecciona aleatoriamente 20 veces, lo que hace que los resultados sean más realistas[2,15]. A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de Bayes con la energía de los coeficientes cA a nivel I y II de db10.

Gráfica 12.4.1.1 Cross-validation con cA1.

En la gráfica 12.4.1.1 el error va decayendo de forma suave hasta tomar un valor de 23.9% para el máximo tamaño de ventana.

Page 147: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

147

Este aumento en el error se debe a que el único atributo que se está usando no proporciona la información suficiente para una buena clasificación.

Gráfica 12.4.1.2 Cross-validation con cA2. En la gráfica 12.4.1.2 el error va decayendo de forma suave a excepción del valor correspondiente al tamaño de ventana de 18 pixeles, hasta tomar un valor de 24.1% para el máximo tamaño de ventana. Las gráficas 12.4.1.1 y 12.4.1.2 son muy parecidas a pesar de que son a diferentes niveles de resolución, pero el error es considerablemente más grande que para el clasificador de Bayes con ACP.

Page 148: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

148

12.4.2 Validación con KNN, Agrupamiento por Clase y db10 A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento por clase con la energía de los coeficientes cA1 de db10, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.2.1 Cross-validation para k=1-7.

En la gráfica 12.4.2.1 el error va decayendo de forma suave hasta tomar valores mínimos que van de 26% a 28% aprox. Aquí se observa que no importando el valor de k, el error es prácticamente el mismo.

Page 149: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

149

Gráfica 12.4.2.2 Cross-validation para k=9-15.

En la gráfica 12.4.2.2 el error tiende a decaer en forma casi lineal hasta tomar valores mínimos que van de 26% a 32% aprox. Aquí se observa que el error aumenta ligeramente para valores de k=15.

Page 150: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

150

Gráfica 12.4.2.3 Cross-validation para k=17-19.

En la gráfica 12.4.2.3 el error va decayendo de forma suave a excepción del valor correspondiente al tamaño de ventana de 20 pixeles, hasta tomar un valor de entre 30.5% y 31.5% para el máximo tamaño de ventana.

Page 151: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

151

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento por clase con la energía de los coeficientes cA1 de db10.

Gráfica 12.4.2.4 Cross-validation para un tamaño de ventana de 12-18 pixeles. La gráfica 12.4.2.4 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores que 5, pero éste es muy elevado (entre 42% y 48.2% aprox.)

Page 152: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

152

Gráfica 12.4.2.5 Cross-validation para un tamaño de ventana de 20-24 pixeles.

En la gráfica 12.4.2.5 el error de los tamaños de ventana de 20 y 24 pixeles se comporta prácticamente de la misma manera, pero con una traslación de 4.5% aprox.

Page 153: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

153

Gráfica 12.4.2.6 Cross-validation para un tamaño de ventana de 26-28 pixeles En la gráfica 12.4.2.6 el error es menor para un tamaño de ventana de 28 pixeles.

Page 154: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

154

A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento por clase con la energía de los coeficientes cA2 de db10, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.2.7 Cross-validation para k=1-7.

En la gráfica 12.4.2.7 el error va decayendo de forma suave hasta tomar valores mínimos que van de 26% a 28% aprox., muy similar al de la gráfica 12.4.2.1, a nivel 1. El error es prácticamente el mismo no importando el valor de k.

Page 155: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

155

Gráfica 12.4.2.8 Cross-validation para k=9-15.

En la gráfica 12.4.2.8 el error tiende a decaer en forma lineal hasta tomar valores mínimos que van de 27% a 30% aprox.

Page 156: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

156

Gráfica 12.4.2.9 Cross-validation para k=17-19. En la gráfica 12.4.2.9 el error va decayendo de forma suave hasta tomar un valor de entre 29.7% y 30.7% para el máximo tamaño de ventana.

Page 157: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

157

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento por clase con la energía de los coeficientes cA2 de db10.

Gráfica 12.4.2.10 Cross-validation para un tamaño de ventana de 12-18 pixeles.

La gráfica 12.4.2.10 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores que 7, pero éste es muy elevado (entre 40% y 50% aprox.).

Page 158: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

158

Gráfica 12.4.2.11 Cross-validation para un tamaño de ventana de 20-24 pixeles.

La gráfica 12.4.2.11 nos muestra errores muy grandes para tamaños de ventana de 20 a 24 pixeles, pero con éste último tamaño, se logra un error mínimo de 35.2% aprox. para k =7.

Page 159: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

159

Gráfica 12.4.2.12 Cross-validation para un tamaño de ventana de 26 y 28 pixeles.

En la gráfica 12.4.2.12 el error de los tamaños de ventana 26 y 28 pixeles se comporta prácticamente de la misma manera, pero con una traslación ligeramente mayor de 4% aprox.

Page 160: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

160

12.4.3 Validación con KNN, Agrupamiento General y db10 A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento general con la energía de los coeficientes cA1 de db10, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.3.1 Cross-validation para k=1-7. En la gráfica 12.4.3.1 el error va decayendo de forma lineal hasta tomar valores mínimos que van de 26% a 28% aprox. Aquí se observa que no importando el valor de k, el error es prácticamente el mismo.

Page 161: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

161

Gráfica 12.4.3.2 Cross-validation para k=9-15.

En la gráfica 12.4.3.2 el error tiende a decaer en forma muy suave hasta tomar valores mínimos que van de 25.5% a 28% aprox. El error es prácticamente el mismo para cualquier valor de k.

Page 162: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

162

Gráfica 12.4.3.3 Cross-validation para k=17-19. En la gráfica 12.4.3.3 el error va decayendo de forma suave hasta tomar un valor de 27% aprox. para ambos valores de k.

Page 163: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

163

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento general con la energía de los coeficientes cA1 de db10.

Gráfica 12.4.3.4 Cross-validation para un tamaño de ventana de 12-18 pixeles.

La gráfica 12.4.3.4 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores que 11, pero éste es muy elevado (entre 39.5% y 54.6% aprox.).

Page 164: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

164

Gráfica 12.4.3.5 Cross-validation para un tamaño de ventana de 20-24 pixeles. En la gráfica 12.4.3.5 el error correspondiente a un tamaños de ventana de 20 pixeles es más grande que el de los otros tamaños de ventana, lo que nó nos da una buena pauta de detección del tumor.

Page 165: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

165

Gráfica 12.4.3.6 Cross-validation para un tamaño de ventana de 26-28 pixeles. En la gráfica 12.4.3.6, el error es menor para un tamaño de ventana de 28 pixeles y éste se comporta de manera muy similar al producido por una ventana de 26 pixeles, pero trasladado poco más de un 4%, pero no se tiene buena certidumbre de detección de tumor.

Page 166: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

166

A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento general con la energía de los coeficientes cA2 de db10, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.3.7 Cross-validation para k=1-7.

En la gráfica 12.4.3.7 el error va decayendo de forma suave hasta tomar valores mínimos que van de 25% a 28% aprox., muy similar al de la gráfica 12.4.3.1, a nivel 1. El error es prácticamente el mismo no importando el valor de k.

Page 167: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

167

Gráfica 12.4.3.8 Cross-validation para k=9-15. En la gráfica 12.4.3.8 el error tiende a decaer en forma casi lineal hasta tomar valores mínimos que van de 26.5% a 29.5% aprox.

Page 168: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

168

Gráfica 12.4.3.9 Cross-validation para k=17-19. En la gráfica 12.4.3.9 el error va decayendo de forma suave hasta tomar un valor de 27.5% aprox. para ambos valores de k.

Page 169: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

169

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento general con la energía de los coeficientes cA2 de db10.

Gráfica 12.4.3.10 Cross-validation para un tamaño de ventana de 12-18 pixeles. La gráfica 12.4.3.10 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores que 7, pero éste es muy elevado (entre 39.5% y 54% aprox.)

Page 170: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

170

Gráfica 12.4.3.11 Cross-validation para un tamaño de ventana de 20-24 pixeles. La gráfica 12.4.3.11 nos muestra errores muy grandes para tamaños de ventana de 20 a 24 pixeles, pero con éste último tamaño, se logra un error mínimo de 35.5% aprox. para k=1.

Page 171: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

171

Gráfica 12.4.3.12 Cross-validation para un tamaño de ventana de 26-28 pixeles.

En la gráfica 12.4.3.12 el error de los tamaños de ventana 26 y 28 pixeles se comporta prácticamente de la misma manera, pero con una traslación ligeramente mayor de 6% aprox.

Page 172: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

172

12.4.4 Validación con Bayes y haar A continuación presentamos las gráficas generadas por el método de validación cross-validation descrito en 8.3, implementado en el clasificador de Bayes con la energía de los coeficientes cA a nivel I y II de haar.

Gráfica 12.4.4.1 Cross-validation con cA1.

En la gráfica 12.4.4.1 el error va decayendo de forma suave hasta tomar un valor de 24% para el máximo tamaño de ventana.

Page 173: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

173

Gráfica 12.4.4.2 Cross-validation con cA2. En la gráfica 12.4.4.2 el error va decayendo de forma suave hasta llegar a un valor de 24.1% para el máximo tamaño de ventana. Las gráficas 12.4.4.1 y 12.4.4.2 son muy parecidas a pesar de que son a diferentes niveles de resolución, pero el error es considerablemente más grande que el del clasificador de Bayes con ACP.

Page 174: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

174

12.4.5 Validación con KNN, Agrupamiento por Clase y haar A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento por clase con la energía de los coeficientes cA1 de haar, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.5.1 Cross-validation para k=1-7.

En la gráfica 12.4.5.1 el error va decayendo de forma suave hasta tomar valores mínimos que van de 26% a 28% aprox. Aquí se observa que no importando el valor de k, el error es prácticamente el mismo.

Page 175: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

175

Gráfica 12.4.5.2 Cross-validation para k=9-15.

En la gráfica 12.4.5.2 el error tiende a decaer en forma casi lineal hasta tomar valores mínimos que van de 25% a 31% aprox.

Page 176: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

176

Gráfica 12.4.5.3 Cross-validation para k=17-19.

En la gráfica 12.4.5.3 el error va decayendo de forma suave a excepción del valor correspondiente al tamaño de ventana de 18 pixeles, hasta tomar un valor de 30.5% y 32% para el máximo tamaño de ventana.

Page 177: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

177

Gráfica 12.4.5.4 Cross-validation para un tamaño de ventana de 12-18 pixeles.

La gráfica 12.4.5.4 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores de 7, pero éste es muy elevado (entre 39.8% y 52% aprox.)

Page 178: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

178

Gráfica 12.4.5.5 Cross-validation para un tamaño de ventana de 20-24 pixeles.

En la gráfica 12.4.5.5 el error es muy grande no importando los tamaños de ventana, lo que no nos da pautas para una detección adecuada de tumor.

Page 179: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

179

Gráfica 12.4.5.6 Cross-validation para un tamaño de ventana de 26-28 pixeles.

En la gráfica 12.4.5.6 el error de los tamaños de ventana 26 y 28 se comporta prácticamente de la misma manera, pero con una traslación de 4% aprox.

Page 180: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

180

A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento por clase con la energía de los coeficientes cA2 de haar, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.5.7 Cross-validation para k=1-7.

En la gráfica 12.4.5.7 el error va decayendo de forma casi lineal hasta tomar valores mínimos que van de 25.4% a 26.5% aprox., muy similar al de la gráfica 12.4.5.1, a nivel 1. El error es prácticamente el mismo no importando el valor de k.

Page 181: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

181

Gráfica 12.4.5.8 Cross-validation para k=9-15.

En la gráfica 12.4.2.2 el error tiende a decaer en forma casi lineal hasta tomar valores mínimos que van de 25% a 31% aprox.

Page 182: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

182

Gráfica 12.4.5.9 Cross-validation para k=17-19.

En la gráfica 12.4.5.9 el error va decayendo de forma suave a excepción del valor correspondiente al tamaño de ventana de 18 pixeles, hasta tomar un valor de entre 30.5% y 32% para el máximo tamaño de ventana.

Page 183: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

183

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento por clase con la energía de los coeficientes cA2 de haar.

Gráfica 12.4.5.10 Cross-validation para un tamaño de ventana de 12-18 pixeles.

La gráfica 12.4.2.4 nos dice que no importando el tamaño de ventana, el error tiende a permanecer constante para valores de k mayores que 7, pero éste es muy elevado como para tener certeza de diagnóstico.

Page 184: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

184

Gráfica 12.4.5.11 Cross-validation para un tamaño de ventana de 20-24 pixeles.

En la gráfica 12.4.5.11 el error aparentemente tiende a aumentar para valores de k mayores que 17.

Page 185: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

185

Gráfica 12.4.5.12 Cross-validation para un tamaño de ventana de 26-28 pixeles.

En la gráfica 12.4.5.12 el error es menor para un tamaño de ventana de 28 pixeles.

Page 186: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

186

12.4.6 Validación con KNN, Agrupamiento General y haar

A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento general con la energía de los coeficientes cA1 de haar, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.6.1 Cross-validation para k=1-7.

En la gráfica 12.4.6.1 el error va decayendo de forma casi lineal hasta tomar valores mínimos que van de 26% a 28% aprox.

Page 187: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

187

Gráfica 12.4.6.2 Cross-validation para k=9-15.

En la gráfica 12.4.6.2 el error tiende a decaer en forma muy suave hasta tomar valores mínimos que van de 24% a 26% aprox. El error es prácticamente el mismo para cualquier valor de k.

Page 188: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

188

Gráfica 12.4.6.3 Cross-validation para k=17-19. En la gráfica 12.4.6.3 el error va decayendo de forma muy suave hasta tomar un valor de 26% aprox. para ambos valores de k.

Page 189: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

189

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento general con la energía de los coeficientes cA1 de haar.

Gráfica 12.4.6.4 Cross-validation para un tamaño de ventana de 12-18 pixeles. El error en la gráfica 12.4.6.4 se comporta de una manera muy parecida no importando el tamaño de ventana, pero éste es muy elevado (entre 39.5% y 53% aprox.).

Page 190: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

190

Gráfica 12.4.6.5 Cross-validation para un tamaño de ventana de 20-24 pixeles.

En la gráfica 12.4.6.5, el error correspondiente a un tamaño de ventana de 20 pixeles es más grande que el de los otros tamaños de ventana. Aún así, no se tiene una buena certeza de detección del tumor.

Page 191: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

191

Gráfica 12.4.6.6 Cross-validation para un tamaño de ventana de 26-28 pixeles.

En la gráfica 12.4.6.6, el mejor desempeño se consigue con un valor de k=9 y un tamaño de ventana de 28 pixeles.

Page 192: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

192

A continuación presentamos las gráficas generadas por el método de validación cross-validation implementado en el clasificador de KNN, agrupamiento general con la energía de los coeficientes cA2 de haar, para k=1,3,5,7,9,11,13,15,17,19.

Gráfica 12.4.6.7 Cross-validation para k=1-7. En la gráfica 12.4.3.7 el error va decayendo de forma casi lineal hasta tomar valores mínimos que van de 26% a 27% aprox. De cualquier forma, el error es prácticamente el mismo no importando el valor de k.

Page 193: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

193

Gráfica 12.4.6.8 Cross-validation para k=9-15. En la gráfica 12.4.6.8 el error tiende a decaer de forma suave hasta tomar valores mínimos que van de 24% a 27.5% aprox.

Page 194: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

194

Gráfica 12.4.6.9 Cross-validation para k=17-19. En la gráfica 12.4.6.9 el error va decayendo de forma suave hasta tomar un valor de 27.5% aprox. para ambos valores de k.

Page 195: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

195

A continuación presentamos las gráficas generadas de k vs. % de error para un tamaño de ventana de 12,14,16,18,20,22,24,26,28 pixeles, con el clasificador KNN, agrupamiento general con la energía de los coeficientes cA2 de haar.

Gráfica 12.4.6.10 Cross-validation para un tamaño de ventana de 12-18 pixeles. En la gráfica 12.4.6.10 el error mínimo se logra para un valor de k=15 (39%).

Page 196: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

196

Gráfica 12.4.6.11Cross-validation para un tamaño de ventana de 20-24 pixeles.

En la gráfica 12.4.6.11 el error correspondiente a los tamaños de ventana de 20 y 24 pixeles es muy similar, con un defasamiento den éste último tamaño, se logra un error mínimo de 4.5% aprox.

Page 197: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

197

Gráfica 12.4.6.12Cross-validation para un tamaño de ventana de 26-28 pixeles.

En la gráfica 12.4.6.12 el error de los tamaños de ventana 26 y 28 pixeles se comporta prácticamente de la misma manera, pero con una traslación ligeramente mayor de 6% aprox.

Page 198: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

198

12.4.7 Segmentaciones con Bayes y db10

a) b)

c) d)

Figura 12.4.7.1 m1 reconstruida con a) cA1 e b) cA2, con un tamaño de ventana de 28 pixeles, mientras que c) cA1 y d) cA2 tienen un tamaño de ventana de 12 pixeles, todas con un umbral de clasificación de 90%.

Como se ve en las figuras 12.4.7.1 a) e b), a pesar de haberse usado el tamaño de ventana que minimiza el error, la mamografía reconstruida no tiene mucha definición pero nos da pautas para detectar el tumor ya que podemos ver que hay ventanas agrupadas sobre la región en donde éste se localiza.

tumor

tumor

tumor

tumor

Page 199: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

199

En la figura 12.4.7.1 c) y d), se ve cómo comienzan ser más notorias las ventanas sobre la región más importante del tumor, pero también sobre el hueso del pecho y el borde de separación entre éste y el tejido de la mama a pesar de que el error correspondiente es del 24% según la gráfica 12.3.1.1 y del 25.6% según la gráfica 12.3.1.2

a) b)

c)

Figura 12.4.7.2 m2 reconstruida con b) cA1 e c) cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

En la figura 12.4.7.2, b) e c), al usar un tamaño de ventana más pequeño la definición del tumor aumenta y comienzan a aparecer ventanas sobre puntos grasosos por tener niveles de gris muy similares a los de los tumores.

tumor tumor

tumor

Page 200: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

200

En éste caso a nivel 1, la mamografía está más limpia de grasa.

a) m3 b) m3 reconstruida

Figura 12.4.7.3 La reconstrucción b), se hizo con cA1, un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90%.

Figura 12.4.7.4 m3 reconstruida con cA2, un tamaño de

ventana de 12 pixeles y un umbral de clasificación de 90%. Como se ve en las figuras 12.4.7.3 b) y 12.4.7.4, hay una buena concentración de ventanas sobre el tumor, lo que nos comienza a dar pautas para detectarlo y también se observa una delimitación del contorno del tumor. A nivel 2 la mamografía está más limpia de grasa.

tumor tumor

tumor

Page 201: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

201

a) m4 b) m4 reconstruida

Figura 12.4.7.5 La reconstrucción b), se hizo con cA1 un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

Figura 12.4.7.6 m4 reconstruida con cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

En éste último caso, debido a que la mamografía es muy grasosa aparecen ventanas sobre el tumor pero también sobre una buena parte de le región con grasa.

tumor

tumor

tumor

Page 202: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

202

a) m6 b) m6 reconstruida

Figura 12.4.7.7 m6 reconstruida con un tamaño de ventana de 12 pixeles y un umbral de clasificación de 90% a) cA1 e b) cA2.

Como se ve en la figura 12.4.7.7, en ambos incisos hay una buena concentración de ventanas sobre el tumor, lo que nos comienza a dar pautas para detectarlo y también se observa una delimitación de su contorno.

tumor tumor

Page 203: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

203

a) m11 b) m11 reconstruida

Figura 12.4.7.8 La reconstrucción b), se hizo con cA1 un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

Figura 12.4.7.9 m11 reconstruida con cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

tumor tumor

tumor

Page 204: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

204

En la figura 12.4.7.8 b) y 12.4.7.9, se observa una delimitación del contorno del tumor lo que nos comienza a dar pautas para detectarlo y aparentemente no hay diferencia en la segmentación a nivel 1 y 2. 12.4.8 Segmentaciones con KNN, Agrupamiento por Clase y db10

a) b)

Figura 12.4.8.1 m1 con un tamaño de ventana de 12 pixeles, k=5 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

tumor tumor

Page 205: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

205

a) b)

Figura 12.4.8.2 m2 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, k=15 y un umbral de clasificación de 90%.

La segmentación a nivel 1 de la figura 12.4.8.1, aparece más limpia de grasa que a nivel 2, mientras que en la figura 12.4.8.2 a), el tumor esta más definido que a nivel 2.

a) b)

Figura 12.4.8.3 m3 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, k=15 y un umbral de clasificación de 90%.

tumor

tumor

tumor

tumor

Page 206: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

206

a) b)

Figura 12.4.8.4 m4 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, k=15 y un umbral de clasificación de 90%.

a) b)

Figura 12.4.8.5 m6 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, k=9 y un umbral de clasificación de 90%.

tumor tumor

tumor tumor

Page 207: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

207

a) b)

Figura 12.4.8.6 m11 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, k=9 y un umbral de clasificación de 90%. En las figuras 12.4.8.3-6, la segmentación a ambos niveles es muy parecida.

tumor tumor

Page 208: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

208

12.4.9 Segmentaciones con KNN, Agrupamiento General y db10

a) b)

Figura 12.4.9.1 m1 con un tamaño de ventana de 12 pixeles con a) cA1, k= 9, y un umbral de clasificación de 20%, b) cA2, k=5, y un umbral de clasificación de 90%.

En la figura 12.4.9.1, el tumor es rechazado con un umbral de clasificación del 90% y k=5 a nivel 2, mientras que en a), el tumor esta perfectamente identificado.

tumortumor

Page 209: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

209

a) b)

Figura 12.4.9.2 m2 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, k=9 y un umbral de clasificación de 20%.

a) b)

Figura 12.4.9.3 m3 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, k=9 y un umbral de clasificación de 20%.

tumor tumor

tumor tumor

Page 210: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

210

a) b)

Figura 12.4.9.4 m4 reconstruida con a) cA1 e b) cA2, un tamaño de

ventana de 12 pixeles, k=9 y un umbral de clasificación de 20%.

a) b)

Figura 12.4.9.5 m6 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, k=9 y un umbral de clasificación de 20%.

tumor

tumor tumor

tumor

Page 211: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

211

a) b)

Figura 12.4.9.6 m11 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, k=9 y un umbral de clasificación de 20%.

En las figuras 12.4.9.2-6, la segmentación a ambos niveles resolución es muy parecida.

tumor tumor

Page 212: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

212

12.4.10 Segmentaciones con Bayes y haar

a) b) Figura 12.4.10.1 m1 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, y un umbral de clasificación de 90%.

a) b)

Figura 12.4.10.2 m2 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

tumor

tumor tumor

tumor

Page 213: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

213

a) b)

Figura 12.4.10.3 m3 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, y un umbral de clasificación de 90%.

a) b)

Figura 12.4.10.4 m4 reconstruida con a) cA1 e b) cA2, un tamaño

de ventana de 12 pixeles, y un umbral de clasificación de 90%.

tumor

tumor

tumor

tumor

Page 214: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

214

a) b)

Figura 12.4.10.5 m6 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

a) b)

Figura 12.4.10.6 m11 reconstruida con a) cA1 e b) cA2, un tamaño de ventana de 12 pixeles, y un umbral de clasificación de 90%.

En las figuras 12.4.10.1-6, la segmentación a ambos niveles es muy parecida.

tumor

tumor tumor

tumor

Page 215: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

215

12.4.11 Segmentaciones con KNN, Agrupamiento por Clase y haar

a) b)

Figura 12.4.11.1 m1 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.11.2 m2 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

tumor tumor

tumor tumor

Page 216: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

216

a) b)

Figura 12.4.11.3 m3 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.11.4 m4 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

tumor

tumor tumor

tumor

Page 217: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

217

a) b)

Figura 12.4.11.5 m6 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.11.6 m11 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

En las figuras 12.4.11.1-6, la segmentación a ambos niveles es muy parecida.

tumor

tumor tumor

tumor

Page 218: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

218

12.4.12 Segmentaciones con KNN, Agrupamiento General y haar

a) b)

Figura 12.4.12.1 m1 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.12.2 m2 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

tumor

tumor

tumor

tumor

Page 219: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

219

a) b)

Figura 12.4.12.3 m3 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.12.4 m4 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

tumor tumor

tumor tumor

Page 220: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

220

a) b)

Figura 12.4.12.5 m6 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

a) b)

Figura 12.4.12.6 m11 con un tamaño de ventana de 12 pixeles, k=11 y un umbral de clasificación de 20% con a) cA1 e b) cA2.

En las figuras 12.4.12.1-6, se puede decir que la segmentación a ambos niveles es la misma.

tumor tumor

tumor tumor

Page 221: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

221

Page 222: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

222

Conclusiones De las gráficas generadas podemos concluir primeramente que el mejor resultado se logró con el clasificador de Bayes y ACP, con los atributos µ, σ, σ2, CON, MASO, ENT, mo3, mo4, |F(u,v)|, ya que se logró un error de solo el 7.15%. Como se afirmó en [2,12,13,14], se ve que efectivamente el clasificador de Bayes tiene un mejor desempeño en cualquiera de los casos reportados, sólo que el usuario debe de experimentar con varios tamaños de ventana y decidir por uno que le proporcione la definición más conveniente, ya que al aumentar el tamaño de ventana el error llega a disminuir en unos casos incluso de una forma lineal pero esto implica pérdida de definición. Debido al número de clases consideradas (12 tumores), el ADF no fue muy eficiente, incluso, los niveles de gris se confunden en las reconstrucciones debido a que éstos son muy parecidos. Aún así, con el AFD también aparecen ventanas sobre las regiones de los tumores y también se ve una buena delimitación del contorno del tumor. En cualquiera de los esquemas aplicados, los coeficientes de Daubechies llegan a generar un error ligeramente menor que el obtenido al aplicar los de Haar, con lo que se verifica lo que ha venido diciendo la literatura acerca del uso de la Wavelet de Daubechies más asimétrica[18]. Con Daubechies se obtienen errores de 23.9% a nivel I y de 24.13% a nivel II mientras que con Haar se obtienen errores de 24.02% a nivel I y de 24.15% a nivel II, en el clasificador de Bayes. A pesar de que los errores entre niveles son muy parecidos, se llega a apreciar una mejor uniformidad de la superficie acotada en algunas reconstrucciones a nivel I. Respecto al clasificador KNN, agrupamiento por clase, con Daubechies a nivel I se obtiene un mejor desempeño para los tamaños de ventana de 24 y 26 pixeles, con valores de k=11 y 1 a nivel I respectivamente.Y a nivel II con tamaños de ventana de 24 y 26 pixeles con valores de k=7 y 1 respectivamente. En el caso del clasificador KNN, agrupamiento general, con Daubechies a nivel I se obtiene un mejor desempeño para los tamaños de ventana de 24 y 26 pixeles, con valores de k=13 y 1 a nivel I respectivamente. Y a nivel II con tamaños de ventana de 24 y 26 pixeles con valores de k=1 y 13 para ambos tamaños de ventana. Respecto al clasificador KNN, agrupamiento por clase, con Haar a nivel I y II, se obtiene un mejor desempeño para los tamaños de ventana de 24 y 26 pixeles, con valores de k=1 y 13 respectivamente.

Page 223: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

223

En el caso del clasificador KNN, agrupamiento general, con Haar a nivel I se obtiene un mejor desempeño para los tamaños de ventana de 24 y 26 pixeles, con valores de k=1, 13 y 1 I respectivamente. Y a nivel II con tamaños de ventana de 24 y 26 pixeles con valores de k=1 y 13 para ambos tamaños de ventana. Se observa también que en el clasificador KNN, el error en general tiende a disminuir para tamaños de ventana grandes y valores de k pequeños, y que las variaciones en el error producido al dejar fijo el valor de k, y variar el tamaño de ventana, son más uniformes para Haar, que para Daubechies. Los tamaños de ventana menores se recomiendan cuando se necesite la mejor definición posible ya que como lo indican las gráficas, el error aumenta si el tamaño de la ventana disminuye. Un valor pequeño de k es conveniente cuando se necesite un tiempo de procesamiento lo más corto posible debido a que el tamaño de las matrices a programar, disminuye. La modalidad de agrupamiento por clase se desempeña mejor que la de agrupamiento general en el clasificador KNN, pero en este último caso se tienen que usar valores pequeños de umbral de clasificación (20%), para no producir tantos rechazos. Desde un punto de vista más práctico, a pesar de que el error al usar la energía de los coeficientes wavelet como único atributo, es grande, el tiempo de cálculo fue considerablemente menor que el de los primeros esquemas y las líneas de código fueron menores (ver Anexo), además de que se logró a definir hasta un 85% del contorno de la anormalidad buscada, así como la uniformidad de la superficie acotada lo cual es una información bastante buena para que un radiólogo logre discriminar de una mejor manera las regiones susceptibles o no a contener un tumor.

Page 224: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

224

Perspectivas Una vez finalizada la investigación, consideramos que los algoritmos aquí utilizados tienen campo amplio de aplicación tanto para el procesamiento digital de imágenes como de señales y control de calidad entre otros. En el caso de señales, el ACP o AFD podría ser de gran ayuda en problemas relacionados con el procesamiento de voz, aislando una señal de otras de una manera más eficiente. Hemos dejado las bases para el desarrollo de otras herramientas destinadas no sólo encontrar tumores en el pecho de la mujer, sino también en otras partes del cuerpo. Aunque en estos días se ha usado la Transformada Wavelet para la compresión de señales e imágenes con mucho éxito, se debe seguir experimentando con los coeficientes wavelet a diferentes niveles, en problemas de múltiples dimensiones y que requieran un tiempo de cálculo menor, de tal forma que se encuentre un equilibrio entre el desempeño de estos como atributos de clasificación y el tiempo esperado de cálculo.

Page 225: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

225

Page 226: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

226

Bibliografía

Libros

1.- González C. Rafael, “Tratamiento Digital de Imágenes”, Ed. Addison Wesley.

2.- Keinosuke Fukunaga, “Introduction to Statistical Pattern Recognition”, Academic Press INC.

3.- Morton Nadler and Eric P. Smith, “Pattern Recognition Engineering”, John Wiley and Sons 1993.

4.- Bernd Jähne, “Digital Image Processing”, Springer-Verlag 1991.

5.- Carlos Avilés Cruz, “ANALYSE DE TEXTURE PAR STATISTIQUES D’ORDRE SUPÉRIEUR: CARACTERISATION ET PERFORMANCES” (THÉSE), INPG.

6.- Gerald Kaiser, “A Friendly Guide to Wavelets”, Birkhäuser.

7.- L. Prasad & S.S. Iyengar, “Wavelet Analysis, With Aplications to Image Processing”, CRC Press.

8.- Michel Misiti, Yves Misiti,Georges Oppenheim,Jean-Michel Poggi, “Wavelet Toolbox User´s Guide Version 2”,The MathWorks INC.

9.- P.A. DEVIJVER y J.V. KITTLER, “Pattern Recognition. A Statistical Approach”, Prentice Hall- Englewood Cliffs.

10.- RICHARDS, J.A. (1986), “Remote Sensing Digital Image Analysis”, Springer-Verlag.

11.- P.H. SWAIN y S.M. DAVIS, “Remote Sensing. The Quantitative Approach”, Mc. Graw Hill.

12.- BREIMAN, L., FRIEDMAN, J., OLSHEN, R., y STONE, C., “Classification and Regresion Trees”, Wadsworth International Group.

13.- DUDA, R. y HART, P., “Pattern Classification and Scene Analysis”, John Wiley & Sons.

14.- LAMPINEN, J., LAAKONSEN, J, y OJA, E.,”Pattern Recognition”, Leondes C.T., Academic Press.

Page 227: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

227

15.- Carlos Avilés Cruz, Notas del curso “Reconocimiento de Patrones”, Maestría en Ciencias de la Computación, UAM-A trimestre 01I.

16.- P. Brodatz, “Textures: A Photographic Album for Artists and Designers”, Dover Publications, Inc., June 1966.

Papers

17.- Hyeokho Choi and Richard Baraniuk, “Image Segmentation using Wavelet-domain Classification”, Department of Electrical and Computer Engineering, Rice University, Houston, TX 77055,USA.

18.- Hiroyuki Yoshida, Wei Zhang, Weidong Cai, Kunio Doi, Robert M Nishikawa, and Maryellen L. Giger, “Optimizing Wavelet Transform based on Supervised Learning for Detection of Microcalcifications in Digital Mammograms”, Kurt Rossmann Laboratories for Radiologic Image Research, Department of Radiology,The University of Chicago.

19.- Joaquín Azpiroz Leehan, Verónica Medina Bañuelos, Jean François Lerallut, CD-ROM “Procesamiento de imágenes biomédicas”, UAM-Ixtapalapa.

20.- S. Geman and D. Geman, ”Stochastic relaxation, gibbs distribution, and the Bayesian restoration of images”, IEEE Trans. on Pattern Anal Machine Intell. 6, pp. 721-741, 1984.

21.- R. Challappa and S. Chatterjee, “Classification of textures using Gaussian Markov random fields”, IEEE Trans. Acous. Speech Signal Proc. 33, pp. 959-963,1995.

22.- M. S. Crouse, R. D. Nowak, and R.g. Baraniuk, “Wavelet-based statistical signal processing using hidden Markov models”, IEEE Trans. Signal Proc. 46, pp. 886-902, April 1998.

23.- Joaquín Azpiroz Leehan y Sonia Charleston Villalobos “Estudio comparativo de cuatro métodos de compresión para Imágenes de Resonancia Magnética Nuclear”, UAM-Ixtapalapa.

24.- Mallat, S., "A theory for multiresolution signal decomposition: the wavelet representation", IEEE Pattern Anal. and Machine Intell., vol. 11, no. 7.

Page 228: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

228

Internet

25.- http://www.invdes.com.mx/suplemento/anteriores/Febrero2001/principal.html

26.- http://www.tuotromedico.com/temas/cancer_de_mama.htm

27.- http://www.mujeractual.com/salud/dolencias/cancer_mama.html

Page 229: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

229

Page 230: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

230

Anexo A continuación se muestra el código de los programas principales, así como de sus respectivas funciones. Cabe hacer la aclaración de que se necesita contar con los Toolboxes de: Wavelets, Probabilidad y Estadística, Procesamiento de Señales e Imágenes, para que estos programas se ejecuten sin ningún problema. Los archivos de las mamografías (mamogra_1.pgm a mamogra_12.pgm), deben estar en el mismo directorio junto con el programa principal y las funciones. Por brevedad solo se anexa la validación para la Transformada Wavelet y no se presenta el código de las texruras naturales ni artificiales.

Page 231: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

231

Clasificador de Bayes con ACP.

Bayes.m

clear

close all

format long g

disp('CLASIFICADOR DE BAYES CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%ACP

MI_ACP_;

%obtencion de los promedios de cada una de las 12 bases de datos

media_bdc1=mean(Bdatos_c1);

media_bdc2=mean(Bdatos_c2);

media_bdc3=mean(Bdatos_c3);

media_bdc4=mean(Bdatos_c4);

media_bdc5=mean(Bdatos_c5);

media_bdc6=mean(Bdatos_c6);

media_bdc7=mean(Bdatos_c7);

media_bdc8=mean(Bdatos_c8);

media_bdc9=mean(Bdatos_c9);

media_bdc10=mean(Bdatos_c10);

media_bdc11=mean(Bdatos_c11);

media_bdc12=mean(Bdatos_c12);

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

t_four_x=sum(sum(abs(fft2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_acp=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x1=(W'*vector_x_sin_acp')';

vector_x=vector_x1(1,1:iteracion);

%Calculo de las probabilidades

Pc1=Prob_Bayes_(vector_x,Bdatos_c1,media_bdc1);

Pc2=Prob_Bayes_(vector_x,Bdatos_c2,media_bdc2);

Pc3=Prob_Bayes_(vector_x,Bdatos_c3,media_bdc3);

Pc4=Prob_Bayes_(vector_x,Bdatos_c4,media_bdc4);

Pc5=Prob_Bayes_(vector_x,Bdatos_c5,media_bdc5);

Pc6=Prob_Bayes_(vector_x,Bdatos_c6,media_bdc6);

Pc7=Prob_Bayes_(vector_x,Bdatos_c7,media_bdc7);

Pc8=Prob_Bayes_(vector_x,Bdatos_c8,media_bdc8);

Pc9=Prob_Bayes_(vector_x,Bdatos_c9,media_bdc9);

Pc10=Prob_Bayes_(vector_x,Bdatos_c10,media_bdc10);

Pc11=Prob_Bayes_(vector_x,Bdatos_c11,media_bdc11);

Pc12=Prob_Bayes_(vector_x,Bdatos_c12,media_bdc12);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

prob_norm=100*abs(vec_prob)/sum(abs(vec_prob));

Pmin=min(prob_norm);

%Se asigna un nivel de gris para resaltar la clase

if (prob_norm(1)==Pmin & prob_norm(1)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0*21;

elseif (prob_norm(2)==Pmin & prob_norm(2)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=1*21;

elseif (prob_norm(3)==Pmin & prob_norm(3)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*21;

elseif (prob_norm(4)==Pmin & prob_norm(4)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*21;

Page 232: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

232

elseif (prob_norm(5)==Pmin & prob_norm(5)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*21;

elseif (prob_norm(6)==Pmin & prob_norm(6)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*21;

elseif (prob_norm(7)==Pmin & prob_norm(7)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*21;

elseif (prob_norm(8)==Pmin & prob_norm(8)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*21;

elseif (prob_norm(9)==Pmin & prob_norm(9)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*21;

elseif (prob_norm(10)==Pmin & prob_norm(10)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*21;

elseif (prob_norm(11)==Pmin & prob_norm(11)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*21;

elseif (prob_norm(12)==Pmin & prob_norm(12)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*21;

elseif prob_norm(1)==prob_norm(2)==prob_norm(3)==prob_norm(4)==prob_norm(5)...

==prob_norm(6)==prob_norm(7)==prob_norm(8)==prob_norm(9)==prob_norm(10)...

==prob_norm(11)==prob_norm(12),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256) MI_ACP_.m

format long g

tumor1=leer_pgm('mamogra_1.pgm');

%mdb010 fondo homogeneo,clase de anormalidad masas circunscritas, benigno

clase1=CORTATUMOR_(tumor1,525,425,15);%r=33

tumor2=leer_pgm('mamogra_2.pgm');

%mdb025 fondo homogeneo,clase de anormalidad masas circunscritas, benigno

clase2=CORTATUMOR_(tumor2,674,443,22);%r=79

tumor3=leer_pgm('mamogra_3.pgm');

%mdb015 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase3=CORTATUMOR_(tumor3,595,864,25);%r=68

tumor4=leer_pgm('mamogra_4.pgm');

%mdb021 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase4=CORTATUMOR_(tumor4,493,125,20);%r=49

tumor5=leer_pgm('mamogra_5.pgm');

%mdb244 fondo denso glandular,clase de anormalidad masas circunscritas, benigno

clase5=CORTATUMOR_(tumor5,466,567,15);%r=52

tumor6=leer_pgm('mamogra_6.pgm');

%mdb001 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase6=CORTATUMOR_(tumor6,535,425,50);%r=197

tumor7=leer_pgm('mamogra_7.pgm');

%mdb028 fondo homogeneo ,clase de anormalidad masas circunscritas, maligno

clase7=CORTATUMOR_(tumor7,338,314,30);%r=56

tumor8=leer_pgm('mamogra_8.pgm');

%mdb184 fondo homogeneo ,clase de anormalidad spiculated masses, maligno

clase8=CORTATUMOR_(tumor8,352,624,40);%r=114

tumor9=leer_pgm('mamogra_9.pgm');

%mdb271 fondo homogeneo ,clase de anormalidad distinta lll masas definidas, maligno

clase9=CORTATUMOR_(tumor9,784,270,30);%r=68

tumor10=leer_pgm('mamogra_10.pgm');

%mdb265 fondo homogeneo ,clase de anormalidad distinta lll masas definidas, maligno

clase10=CORTATUMOR_(tumor10,593,498,30);%r=60

tumor11=leer_pgm('mamogra_11.pgm');

%mdb155 fondo homogeneo ,clase de anormalidad distorcion arquitectonica, maligno

clase11=CORTATUMOR_(tumor11,448,480,15);%r=95

tumor12=leer_pgm('mamogra_12.pgm');

%mdb092 fondo homogeneo ,clase de anormalidad asimetrica, maligno

clase12=CORTATUMOR_(tumor12,423,662,20);%r=43

%PARA LA CLASE 1

Bdatos_c1_sin_acp=bdatos_(N_ventanas,t_vent,clase1);

Page 233: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

233

%PARA LA CLASE 2

Bdatos_c2_sin_acp=bdatos_(N_ventanas,t_vent,clase2);

%PARA LA CLASE 3

Bdatos_c3_sin_acp=bdatos_(N_ventanas,t_vent,clase3);

%PARA LA CLASE 4

Bdatos_c4_sin_acp=bdatos_(N_ventanas,t_vent,clase4);

%PARA LA CLASE 5

Bdatos_c5_sin_acp=bdatos_(N_ventanas,t_vent,clase5);

%PARA LA CLASE 6

Bdatos_c6_sin_acp=bdatos_(N_ventanas,t_vent,clase6);

%PARA LA CLASE 7

Bdatos_c7_sin_acp=bdatos_(N_ventanas,t_vent,clase7);

%PARA LA CLASE 8

Bdatos_c8_sin_acp=bdatos_(N_ventanas,t_vent,clase8);

%PARA LA CLASE 9

Bdatos_c9_sin_acp=bdatos_(N_ventanas,t_vent,clase9);

%PARA LA CLASE 10

Bdatos_c10_sin_acp=bdatos_(N_ventanas,t_vent,clase10);

%PARA LA CLASE 11

Bdatos_c11_sin_acp=bdatos_(N_ventanas,t_vent,clase11);

%PARA LA CLASE 12

Bdatos_c12_sin_acp=bdatos_(N_ventanas,t_vent,clase12);

%Obtencion del ACP con las 12 Bd----------------

Bdatos_tot_sin_acp=vertcat(Bdatos_c1_sin_acp,Bdatos_c2_sin_acp,Bdatos_c3_sin_acp,...

Bdatos_c4_sin_acp,Bdatos_c5_sin_acp,Bdatos_c6_sin_acp,Bdatos_c7_sin_acp,...

Bdatos_c8_sin_acp,Bdatos_c9_sin_acp,Bdatos_c10_sin_acp,Bdatos_c11_sin_acp,...

Bdatos_c12_sin_acp);

mcov_Bdatos_tot_sin_acp=cov(Bdatos_tot_sin_acp);

[W,valores_propios]=pcacov(mcov_Bdatos_tot_sin_acp);

Bdatos_tot_sin_acp_T=Bdatos_tot_sin_acp';

tama=size(Bdatos_tot_sin_acp);

n=tama(1);

m=tama(2);

Bdatos_tot_con_acp1=zeros(n,m);

Bdatos_tot_con_acp1=(W'*Bdatos_tot_sin_acp_T)';

susuma=sum(valores_propios);

%el 99 porciento de la informacion esta en

%el_99_porciento=susuma*(100/100);

el_99_porciento=susuma;%*(100/100);

tama_val_p=size(valores_propios);

for iteracion=1:tama_val_p(1)

acumulador1=valores_propios(1:iteracion,1);

acumulador=sum(acumulador1);

if acumulador>=el_99_porciento

iteracion;

break

end

end

Bdatos_tot_con_acp=Bdatos_tot_con_acp1(:,1:iteracion);

Bdatos_c1=Bdatos_tot_con_acp(1:100,:);

Bdatos_c2=Bdatos_tot_con_acp(101:200,:);

Bdatos_c3=Bdatos_tot_con_acp(201:300,:);

Bdatos_c4=Bdatos_tot_con_acp(301:400,:);

Bdatos_c5=Bdatos_tot_con_acp(401:500,:);

Bdatos_c6=Bdatos_tot_con_acp(501:600,:);

Bdatos_c7=Bdatos_tot_con_acp(601:700,:);

Bdatos_c8=Bdatos_tot_con_acp(701:800,:);

Bdatos_c9=Bdatos_tot_con_acp(801:900,:);

Bdatos_c10=Bdatos_tot_con_acp(901:1000,:);

Bdatos_c11=Bdatos_tot_con_acp(1001:1100,:);

Bdatos_c12=Bdatos_tot_con_acp(1101:1200,:); BDATOS_.m

%generaci´on de la base de datos

function bd=bdatos_(N_ventanas,t_vent,clase_n)

tamano_clase_n=size(clase_n);

for i=1:N_ventanas,

n=fix((tamano_clase_n(1)-t_vent)*rand);

m=fix((tamano_clase_n(2)-t_vent)*rand);

ventana_clase_n =clase_n(n+1:n+t_vent,m+1:m+t_vent);

m3_c_n=mo3_(t_vent,ventana_clase_n);

m4_c_n=mo4_(t_vent,ventana_clase_n);

tfour_n=sum(sum(abs(fft2(ventana_clase_n))));

con_n=CON_(t_vent,ventana_clase_n);

maso_n=MASO_(t_vent,ventana_clase_n);

ent_n=ENT_(t_vent,ventana_clase_n);

bd(i,:)=[mean2(ventana_clase_n),std2(ventana_clase_n),(std2(ventana_clase_n))^2,m3_c_n,m4_c_n,tfour_n,con_n,maso_n,ent_n];

end

CORTATUMOR_.m

Page 234: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

234

function tumor=CORTATUMOR_(mamo,X,Y,R);

tumor=mamo(1024-Y-R:1024-Y+R,X-R:X+R);

CON_.m

%Mide la reparticion de coeficientes matriciales con respecto a la diagonal

function contraste=CON_(t_vent,ventana_clase_n);

M=mcoc_(t_vent,ventana_clase_n);

tama=size(M);

contra=zeros(tama(1),tama(2));

for i=1:tama(1),

for j=1:tama(2),

contra(i,j)=(i-j)^2*M(i,j);

end

end

contraste=sum(sum(contra));

COR_.m

%Mide la relacion entre columnas o lineas

function corr=COR_(t_vent,ventana_clase_n);

M=mcoc_(t_vent,ventana_clase_n);

tama=size(M);

correla=zeros(tama(1),tama(2));

for i=1:tama(1),

for j=1:tama(2),

if std(M(i,:))*std(M(:,j))>0

correla(i,j)=(i*j*M(i,j)-mean(M(i,:))*mean(M(:,j)))/(std(M(i,:))*std(M(:,j)));

else

correla(i,j)=0;

end

end

end

corr=sum(sum(correla));

ENT_.m

%Mide la complegidad de la textura

function entropia=ENT_(t_vent,ventana_clase_n)

M=mcoc_(t_vent,ventana_clase_n);

tama=size(M);

entro_p=zeros(tama(1),tama(2));

for i=1:tama(1),

for j=1:tama(2),

if M(i,j)>0

entro_p(i,j)=M(i,j)*log(M(i,j));

else

entro_p(i,j)=0;

end

end

end

entropia=sum(sum(entro_p));

leer_pgm.m

%DOMINGUEZ LOPEZ JUAN ANGEL

%LECTURA DE IMAGENES .pgm

function [total]=leer_pgm(filename)

%LAS SIGUIENTES VARIABLES CONTIENEN LOS VALORES DE ENTRADA PARA FORMATOS PGM

tetel1='P5';

tetel2='CREATOR :TIRF';

tetel4='255';

fid=fopen(filename,'r');

if fid==-1

disp('ERROR');

return;

end

%LECTURA DEL ARCHIVO

l1=fgetl(fid);

l2=fgetl(fid);

l3=fgetl(fid);

largo=length(l2);

for i=1:largo

if l2(i)==' '

break

end

end

h=l2(1,i+1:largo);

Page 235: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

235

w=l2(1,1:i);

w=str2num(w);

h=str2num(h);

original=fread(fid,[w,h]);

fclose(fid);

total=original';

%IMAGEN ORIGINAL

%matrix=original./4;

%matrixt=matrix';

%image(matrixt);

MASO_.m

%Mide la homogeneidad de la textura y es sensible a los valores grandes de la MCOC

function momang=MASO_(t_vent,ventana_clase_n);

M=mcoc_(t_vent,ventana_clase_n);

momang=sum(sum(M.^2));

MCOC_.m

function mi_coc=mcoc_(t_vent,ventana_clase_n);

format long g

mcoc=zeros(256,256);

for i=1:t_vent,

for j=1:t_vent-1,

indiceizq_x=ventana_clase_n(i,j)+1;

indiceizq_y=ventana_clase_n(i,j+1)+1;

mcoc(ventana_clase_n(i,j)+1,ventana_clase_n(i,j+1)+1)= mcoc(ventana_clase_n(i,j)+1,ventana_clase_n(i,j+1)+1)+1;

end

end

mi_coco=mcoc/sum(sum(mcoc));

[I,J]=find(mi_coco);

mi_coc=mi_coco(min(I):max(I),min(J):max(J));

MO3_.m

function m3=mo3_(t_vent,ventana_clase_n)

m3=1/(t_vent*t_vent)*sum(sum(ventana_clase_n.^3));

MO4_.m

function m4=mo4_(t_vent,ventana_clase_n)

m4=1/(t_vent*t_vent)*sum(sum(ventana_clase_n.^4));

PROB_BAYES.m

function Pc_n=Prob_Bayes_(vector_x,bd_c_n,media_bd_c_n);

varcovar=cov(bd_c_n);

Pc_n=(log(det(varcovar)))/2+((vector_x-media_bd_c_n)*inv(varcovar)*(vector_x-media_bd_c_n)')/2;

Clasificador KNN, agr. clase con ACP.

KNN_clas.m

clear

close all

format long g

disp('CLASIFICADOR KNN CLASE CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%ACP

MI_ACP_;

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

Page 236: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

236

t_four_x=sum(sum(abs(fft2(ventana_x))));

%t_cos_x=sum(sum(abs(dct2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_acp=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x1=(W'*vector_x_sin_acp')';

vector_x=vector_x1(1,1:iteracion);

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_c1_ord=sort(matriz_distan_c1);

matriz_distan_c2_ord=sort(matriz_distan_c2);

matriz_distan_c3_ord=sort(matriz_distan_c3);

matriz_distan_c4_ord=sort(matriz_distan_c4);

matriz_distan_c5_ord=sort(matriz_distan_c5);

matriz_distan_c6_ord=sort(matriz_distan_c6);

matriz_distan_c7_ord=sort(matriz_distan_c7);

matriz_distan_c8_ord=sort(matriz_distan_c8);

matriz_distan_c9_ord=sort(matriz_distan_c9);

matriz_distan_c10_ord=sort(matriz_distan_c10);

matriz_distan_c11_ord=sort(matriz_distan_c11);

matriz_distan_c12_ord=sort(matriz_distan_c12);

vect_dis_c1=matriz_distan_c1_ord(1:k,1);

vect_dis_c2=matriz_distan_c2_ord(1:k,1);

vect_dis_c3=matriz_distan_c3_ord(1:k,1);

vect_dis_c4=matriz_distan_c4_ord(1:k,1);

vect_dis_c5=matriz_distan_c5_ord(1:k,1);

vect_dis_c6=matriz_distan_c6_ord(1:k,1);

vect_dis_c7=matriz_distan_c7_ord(1:k,1);

vect_dis_c8=matriz_distan_c8_ord(1:k,1);

vect_dis_c9=matriz_distan_c9_ord(1:k,1);

vect_dis_c10=matriz_distan_c10_ord(1:k,1);

vect_dis_c11=matriz_distan_c11_ord(1:k,1);

vect_dis_c12=matriz_distan_c12_ord(1:k,1);

d_max_c1=max(vect_dis_c1);

d_max_c2=max(vect_dis_c2);

d_max_c3=max(vect_dis_c3);

d_max_c4=max(vect_dis_c4);

d_max_c5=max(vect_dis_c5);

d_max_c6=max(vect_dis_c6);

d_max_c7=max(vect_dis_c7);

d_max_c8=max(vect_dis_c8);

d_max_c9=max(vect_dis_c9);

d_max_c10=max(vect_dis_c10);

d_max_c11=max(vect_dis_c11);

d_max_c12=max(vect_dis_c12);

vect_dist_max=[d_max_c1 d_max_c2 d_max_c3 d_max_c4 d_max_c5 d_max_c6 d_max_c7,...

d_max_c8 d_max_c9 d_max_c10 d_max_c11 d_max_c12];

Pc1=vect_dist_max(1)/sum(vect_dist_max);

Pc2=vect_dist_max(2)/sum(vect_dist_max);

Pc3=vect_dist_max(3)/sum(vect_dist_max);

Pc4=vect_dist_max(4)/sum(vect_dist_max);

Pc5=vect_dist_max(5)/sum(vect_dist_max);

Pc6=vect_dist_max(6)/sum(vect_dist_max);

Pc7=vect_dist_max(7)/sum(vect_dist_max);

Pc8=vect_dist_max(8)/sum(vect_dist_max);

Pc9=vect_dist_max(9)/sum(vect_dist_max);

Pc10=vect_dist_max(10)/sum(vect_dist_max);

Pc11=vect_dist_max(11)/sum(vect_dist_max);

Pc12=vect_dist_max(12)/sum(vect_dist_max);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmin=min(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmin & Pc1*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmin & Pc2*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif Pc3==Pmin & Pc3*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

Page 237: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

237

elseif Pc4==Pmin & Pc4*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmin & Pc5*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmin & Pc6*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif Pc7==Pmin & Pc7*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmin & Pc8*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmin & Pc9*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmin & Pc10*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif Pc11==Pmin & Pc11*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmin & Pc12*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

DIST_.m

%Calcula la distancia euclidiana entre 2 vectores

function dista=DIST_(vector_tal,Bdatos_general)

for i=1:100,

dista(i,:)=sqrt(sum((vector_tal-Bdatos_general(i,:)).^2));

end

KI_.m

%Calcula el numero de k's en un vector dado, de cada clase

function kises=KI_(vector_ord,elk)

clear a b c d e f g h j k m n;

a=0;

b=0;

c=0;

d=0;

e=0;

f=0;

g=0;

h=0;

j=0;

k=0;

m=0;

n=0;

k_uno=0;

k_dos=0;

k_tres=0;

k_cuatro=0;

k_cinco=0;

k_seis=0;

k_siete=0;

k_ocho=0;

k_nueve=0;

k_diez=0;

k_once=0;

k_doce=0;

for i=1:elk,

if vector_ord(i)==1

k_uno=1+a;

a=a+1;

elseif vector_ord(i)==2

k_dos=1+b;

b=b+1;

elseif vector_ord(i)==3

Page 238: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

238

k_tres=1+c;

c=c+1;

elseif vector_ord(i)==4

k_cuatro=1+d;

d=d+1;

elseif vector_ord(i)==5

k_cinco=1+e;

e=e+1;

elseif vector_ord(i)==6

k_seis=1+f;

f=f+1;

elseif vector_ord(i)==7

k_siete=1+g;

g=g+1;

elseif vector_ord(i)==8

k_ocho=1+h;

h=h+1;

elseif vector_ord(i)==9

k_nueve=1+j;

j=j+1;

elseif vector_ord(i)==10

k_diez=1+k;

k=k+1;

elseif vector_ord(i)==11

k_once=1+m;

m=m+1;

else vector_ord(i)==12

k_doce=1+n;

n=n+1;

end

end

kises=[k_uno k_dos k_tres k_cuatro k_cinco k_seis k_siete k_ocho k_nueve k_diez...

k_once k_doce];

MAT_DIST_X_.m

function mat_dist=MAT_DIST_X_(vector_x,Bdatos_cn,cn)

distancias=DIST_(vector_x,Bdatos_cn);

m_auxiliar=cn*ones(100,1);

mat_dist=[distancias,m_auxiliar];

DAME_CN_.m

%Cuenta el numero de clases de cada una

function sub_mat=DAME_CN_(m_dis,cn);

cont=0;

for i=1:600,

if m_dis(i,2)==cn

cont=cont+1;

end

end

sub_mat=zeros(cont,2);

for j=1:600,

if m_dis(j,2)==cn

sub_mat(j,:)=m_dis(j,:);

end

end

I=find(sub_mat(:,2));

sub_mat=sub_mat(I,:);

Clasificador KNN, agr. general con ACP.

KNN_gen.m

clear

close all

format long g

disp('CLASIFICADOR KNN GEN.CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%ACP

MI_ACP_;

Page 239: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

239

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

t_four_x=sum(sum(abs(fft2(ventana_x))));

%t_cos_x=sum(sum(abs(dct2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_acp=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x1=(W'*vector_x_sin_acp')';

vector_x=vector_x1(1,1:iteracion);

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_tot=vertcat(matriz_distan_c1,matriz_distan_c2,matriz_distan_c3,matriz_distan_c4,...

matriz_distan_c5,matriz_distan_c6,matriz_distan_c7,matriz_distan_c8,matriz_distan_c9,...

matriz_distan_c10,matriz_distan_c11,matriz_distan_c12);

ordenados=sortrows(matriz_distan_tot);

vect_ordenados=ordenados(1:k,2,:);

vect_ki=KI_(vect_ordenados,k);

K1=vect_ki(1);

K2=vect_ki(2);

K3=vect_ki(3);

K4=vect_ki(4);

K5=vect_ki(5);

K6=vect_ki(6);

K7=vect_ki(7);

K8=vect_ki(8);

K9=vect_ki(9);

K10=vect_ki(10);

K11=vect_ki(11);

K12=vect_ki(12);

Pc1=K1/k;

Pc2=K2/k;

Pc3=K3/k;

Pc4=K4/k;

Pc5=K5/k;

Pc6=K6/k;

Pc7=K7/k;

Pc8=K8/k;

Pc9=K9/k;

Pc10=K10/k;

Pc11=K11/k;

Pc12=K12/k;

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmax=max(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmax & Pc1*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmax & Pc2*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif Pc3==Pmax & Pc3*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif Pc4==Pmax & Pc4*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmax & Pc5*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmax & Pc6*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

Page 240: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

240

elseif Pc7==Pmax & Pc7*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmax & Pc8*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmax & Pc9*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmax & Pc10*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif Pc11==Pmax & Pc11*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmax & Pc12*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

Clasificador de Bayes con AFD. Bayes.m

clear

close all

disp('CLASIFICADOR DE BAYES CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <21 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%AFD

MI_AFD_

%fin de AFD

media_bdc1=mean(Bdatos_c1);

media_bdc2=mean(Bdatos_c2);

media_bdc3=mean(Bdatos_c3);

media_bdc4=mean(Bdatos_c4);

media_bdc5=mean(Bdatos_c5);

media_bdc6=mean(Bdatos_c6);

media_bdc7=mean(Bdatos_c7);

media_bdc8=mean(Bdatos_c8);

media_bdc9=mean(Bdatos_c9);

media_bdc10=mean(Bdatos_c10);

media_bdc11=mean(Bdatos_c11);

media_bdc12=mean(Bdatos_c12);

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

t_four_x=sum(sum(abs(fft2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_afd=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x=(W'*vector_x_sin_afd')';

%Calculo de las probabilidades

Pc1=Prob_Bayes_(vector_x,Bdatos_c1,media_bdc1);

Pc2=Prob_Bayes_(vector_x,Bdatos_c2,media_bdc2);

Pc3=Prob_Bayes_(vector_x,Bdatos_c3,media_bdc3);

Pc4=Prob_Bayes_(vector_x,Bdatos_c4,media_bdc4);

Page 241: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

241

Pc5=Prob_Bayes_(vector_x,Bdatos_c5,media_bdc5);

Pc6=Prob_Bayes_(vector_x,Bdatos_c6,media_bdc6);

Pc7=Prob_Bayes_(vector_x,Bdatos_c7,media_bdc7);

Pc8=Prob_Bayes_(vector_x,Bdatos_c8,media_bdc8);

Pc9=Prob_Bayes_(vector_x,Bdatos_c9,media_bdc9);

Pc10=Prob_Bayes_(vector_x,Bdatos_c10,media_bdc10);

Pc11=Prob_Bayes_(vector_x,Bdatos_c11,media_bdc11);

Pc12=Prob_Bayes_(vector_x,Bdatos_c12,media_bdc12);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

prob_norm=100*abs(vec_prob)/sum(abs(vec_prob));

Pmin=min(prob_norm);

%Se asigna un nivel de gris para resaltar la clase

if (prob_norm(1)==Pmin & prob_norm(1)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif (prob_norm(2)==Pmin & prob_norm(2)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif (prob_norm(3)==Pmin & prob_norm(3)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif (prob_norm(4)==Pmin & prob_norm(4)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif (prob_norm(5)==Pmin & prob_norm(5)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif (prob_norm(6)==Pmin & prob_norm(6)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif (prob_norm(7)==Pmin & prob_norm(7)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif (prob_norm(8)==Pmin & prob_norm(8)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif (prob_norm(9)==Pmin & prob_norm(9)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif (prob_norm(10)==Pmin & prob_norm(10)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif (prob_norm(11)==Pmin & prob_norm(11)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif (prob_norm(12)==Pmin & prob_norm(12)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif prob_norm(1)==prob_norm(2)==prob_norm(3)==prob_norm(4)==prob_norm(5)...

==prob_norm(6)==prob_norm(7)==prob_norm(8)==prob_norm(9)==prob_norm(10)...

==prob_norm(11)==prob_norm(12),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

MI_AFD.m

format long g

tumor1=leer_pgm('mamogra_1.pgm');

%mdb010 fondo homogeneo,clase de anormalidad masas circunscritas, benigno

clase1=CORTATUMOR_(tumor1,525,425,15);%r=33

tumor2=leer_pgm('mamogra_2.pgm');

%mdb025 fondo homogeneo,clase de anormalidad masas circunscritas, benigno

clase2=CORTATUMOR_(tumor2,674,443,22);%r=79

tumor3=leer_pgm('mamogra_3.pgm');

%mdb015 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase3=CORTATUMOR_(tumor3,595,864,25);%r=68

tumor4=leer_pgm('mamogra_4.pgm');

%mdb021 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase4=CORTATUMOR_(tumor4,493,125,20);%r=49

tumor5=leer_pgm('mamogra_5.pgm');

%mdb244 fondo denso glandular,clase de anormalidad masas circunscritas, benigno

clase5=CORTATUMOR_(tumor5,466,567,15);%r=52

tumor6=leer_pgm('mamogra_6.pgm');

%mdb001 fondo homogeneo glandular,clase de anormalidad masas circunscritas, benigno

clase6=CORTATUMOR_(tumor6,535,425,50);%r=197

Page 242: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

242

tumor7=leer_pgm('mamogra_7.pgm');

%mdb028 fondo homogeneo ,clase de anormalidad masas circunscritas, maligno

clase7=CORTATUMOR_(tumor7,338,314,30);%r=56

tumor8=leer_pgm('mamogra_8.pgm');

%mdb184 fondo homogeneo ,clase de anormalidad spiculated masses, maligno

clase8=CORTATUMOR_(tumor8,352,624,40);%r=114

tumor9=leer_pgm('mamogra_9.pgm');

%mdb271 fondo homogeneo ,clase de anormalidad distinta lll masas definidas, maligno

clase9=CORTATUMOR_(tumor9,784,270,30);%r=68

tumor10=leer_pgm('mamogra_10.pgm');

%mdb265 fondo homogeneo ,clase de anormalidad distinta lll masas definidas, maligno

clase10=CORTATUMOR_(tumor10,593,498,30);%r=60

tumor11=leer_pgm('mamogra_11.pgm');

%mdb155 fondo homogeneo ,clase de anormalidad distorcion arquitectonica, maligno

clase11=CORTATUMOR_(tumor11,448,480,15);%r=95

tumor12=leer_pgm('mamogra_12.pgm');

%mdb092 fondo homogeneo ,clase de anormalidad asimetrica, maligno

clase12=CORTATUMOR_(tumor12,423,662,20);%r=43

%PARA LA CLASE 1

Bdatos_c1_sin_afd=bdatos_(N_ventanas,t_vent,clase1);

%PARA LA CLASE 2

Bdatos_c2_sin_afd=bdatos_(N_ventanas,t_vent,clase2);

%PARA LA CLASE 3

Bdatos_c3_sin_afd=bdatos_(N_ventanas,t_vent,clase3);

%PARA LA CLASE 4

Bdatos_c4_sin_afd=bdatos_(N_ventanas,t_vent,clase4);

%PARA LA CLASE 5

Bdatos_c5_sin_afd=bdatos_(N_ventanas,t_vent,clase5);

%PARA LA CLASE 6

Bdatos_c6_sin_afd=bdatos_(N_ventanas,t_vent,clase6);

%PARA LA CLASE 7

Bdatos_c7_sin_afd=bdatos_(N_ventanas,t_vent,clase7);

%PARA LA CLASE 8

Bdatos_c8_sin_afd=bdatos_(N_ventanas,t_vent,clase8);

%PARA LA CLASE 9

Bdatos_c9_sin_afd=bdatos_(N_ventanas,t_vent,clase9);

%PARA LA CLASE 10

Bdatos_c10_sin_afd=bdatos_(N_ventanas,t_vent,clase10);

%PARA LA CLASE 11

Bdatos_c11_sin_afd=bdatos_(N_ventanas,t_vent,clase11);

%PARA LA CLASE 12

Bdatos_c12_sin_afd=bdatos_(N_ventanas,t_vent,clase12);

%Obtencion del AFD con las 4 Bd----------------

%obtencion de los promedios de cada una de las 4 bases de datos

media_bd_c1=(mean(Bdatos_c1_sin_afd))';

media_bd_c2=(mean(Bdatos_c2_sin_afd))';

media_bd_c3=(mean(Bdatos_c3_sin_afd))';

media_bd_c4=(mean(Bdatos_c4_sin_afd))';

media_bd_c5=(mean(Bdatos_c5_sin_afd))';

media_bd_c6=(mean(Bdatos_c6_sin_afd))';

media_bd_c7=(mean(Bdatos_c7_sin_afd))';

media_bd_c8=(mean(Bdatos_c8_sin_afd))';

media_bd_c9=(mean(Bdatos_c9_sin_afd))';

media_bd_c10=(mean(Bdatos_c10_sin_afd))';

media_bd_c11=(mean(Bdatos_c11_sin_afd))';

media_bd_c12=(mean(Bdatos_c12_sin_afd))';

%matrices de covarianza

varcovar_bd_c1=cov(Bdatos_c1_sin_afd);

varcovar_bd_c2=cov(Bdatos_c2_sin_afd);

varcovar_bd_c3=cov(Bdatos_c3_sin_afd);

varcovar_bd_c4=cov(Bdatos_c4_sin_afd);

varcovar_bd_c5=cov(Bdatos_c5_sin_afd);

varcovar_bd_c6=cov(Bdatos_c6_sin_afd);

varcovar_bd_c7=cov(Bdatos_c7_sin_afd);

varcovar_bd_c8=cov(Bdatos_c8_sin_afd);

varcovar_bd_c9=cov(Bdatos_c9_sin_afd);

varcovar_bd_c10=cov(Bdatos_c10_sin_afd);

varcovar_bd_c11=cov(Bdatos_c11_sin_afd);

varcovar_bd_c12=cov(Bdatos_c12_sin_afd);

%media total

media_total=(media_bd_c1+media_bd_c2+media_bd_c3+media_bd_c4...

+media_bd_c5+media_bd_c6+media_bd_c7+media_bd_c8...

+media_bd_c9+media_bd_c10+media_bd_c11+media_bd_c12)/12;

%matriz de coovarianza total

varcovar_W=(varcovar_bd_c1+varcovar_bd_c2+varcovar_bd_c3+varcovar_bd_c4...

+varcovar_bd_c5+varcovar_bd_c6+varcovar_bd_c7+varcovar_bd_c8...

+varcovar_bd_c9+varcovar_bd_c10+varcovar_bd_c11+varcovar_bd_c12)/12;

%matriz de coovarianca entre clases

varcovar_AB=((media_bd_c1-media_total)*(media_bd_c1-media_total)'+...

(media_bd_c2-media_total)*(media_bd_c2-media_total)'+...

(media_bd_c3-media_total)*(media_bd_c3-media_total)'+...

(media_bd_c4-media_total)*(media_bd_c4-media_total)'+...

(media_bd_c5-media_total)*(media_bd_c5-media_total)'+...

(media_bd_c6-media_total)*(media_bd_c6-media_total)'+...

(media_bd_c7-media_total)*(media_bd_c7-media_total)'+...

Page 243: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

243

(media_bd_c8-media_total)*(media_bd_c8-media_total)'+...

(media_bd_c9-media_total)*(media_bd_c9-media_total)'+...

(media_bd_c10-media_total)*(media_bd_c10-media_total)'+...

(media_bd_c11-media_total)*(media_bd_c11-media_total)'+...

(media_bd_c12-media_total)*(media_bd_c12-media_total)')/12;

[V,D]=eigs(varcovar_AB,varcovar_W);

tamano_de_V=size(V);

en_x=tamano_de_V(1);

en_y=tamano_de_V(2);

W=V(:,1:(en_y-1));

%transformacion de coordenadas

Bdatos_c1=(W'*Bdatos_c1_sin_afd')';

Bdatos_c2=(W'*Bdatos_c2_sin_afd')';

Bdatos_c3=(W'*Bdatos_c3_sin_afd')';

Bdatos_c4=(W'*Bdatos_c4_sin_afd')';

Bdatos_c5=(W'*Bdatos_c5_sin_afd')';

Bdatos_c6=(W'*Bdatos_c6_sin_afd')';

Bdatos_c7=(W'*Bdatos_c7_sin_afd')';

Bdatos_c8=(W'*Bdatos_c8_sin_afd')';

Bdatos_c9=(W'*Bdatos_c9_sin_afd')';

Bdatos_c10=(W'*Bdatos_c10_sin_afd')';

Bdatos_c11=(W'*Bdatos_c11_sin_afd')';

Bdatos_c12=(W'*Bdatos_c12_sin_afd')';

%fin de AFD

Clasificador KNN, agr. clase con AFD.

knn_cla.m

clear

close all

disp('CLASIFICADOR KNN AGR. POR CLASE CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <21 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

MI_AFD_

%fin de AFD

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

t_four_x=sum(sum(abs(fft2(ventana_x))));

%t_cos_x=sum(sum(abs(dct2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_afd=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x=(W'*vector_x_sin_afd')';

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_c1_ord=sort(matriz_distan_c1);

matriz_distan_c2_ord=sort(matriz_distan_c2);

matriz_distan_c3_ord=sort(matriz_distan_c3);

matriz_distan_c4_ord=sort(matriz_distan_c4);

matriz_distan_c5_ord=sort(matriz_distan_c5);

matriz_distan_c6_ord=sort(matriz_distan_c6);

matriz_distan_c7_ord=sort(matriz_distan_c7);

Page 244: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

244

matriz_distan_c8_ord=sort(matriz_distan_c8);

matriz_distan_c9_ord=sort(matriz_distan_c9);

matriz_distan_c10_ord=sort(matriz_distan_c10);

matriz_distan_c11_ord=sort(matriz_distan_c11);

matriz_distan_c12_ord=sort(matriz_distan_c12);

vect_dis_c1=matriz_distan_c1_ord(1:k,1);

vect_dis_c2=matriz_distan_c2_ord(1:k,1);

vect_dis_c3=matriz_distan_c3_ord(1:k,1);

vect_dis_c4=matriz_distan_c4_ord(1:k,1);

vect_dis_c5=matriz_distan_c5_ord(1:k,1);

vect_dis_c6=matriz_distan_c6_ord(1:k,1);

vect_dis_c7=matriz_distan_c7_ord(1:k,1);

vect_dis_c8=matriz_distan_c8_ord(1:k,1);

vect_dis_c9=matriz_distan_c9_ord(1:k,1);

vect_dis_c10=matriz_distan_c10_ord(1:k,1);

vect_dis_c11=matriz_distan_c11_ord(1:k,1);

vect_dis_c12=matriz_distan_c12_ord(1:k,1);

d_max_c1=max(vect_dis_c1);

d_max_c2=max(vect_dis_c2);

d_max_c3=max(vect_dis_c3);

d_max_c4=max(vect_dis_c4);

d_max_c5=max(vect_dis_c5);

d_max_c6=max(vect_dis_c6);

d_max_c7=max(vect_dis_c7);

d_max_c8=max(vect_dis_c8);

d_max_c9=max(vect_dis_c9);

d_max_c10=max(vect_dis_c10);

d_max_c11=max(vect_dis_c11);

d_max_c12=max(vect_dis_c12);

vect_dist_max=[d_max_c1 d_max_c2 d_max_c3 d_max_c4 d_max_c5 d_max_c6 d_max_c7,...

d_max_c8 d_max_c9 d_max_c10 d_max_c11 d_max_c12];

Pc1=vect_dist_max(1)/sum(vect_dist_max);

Pc2=vect_dist_max(2)/sum(vect_dist_max);

Pc3=vect_dist_max(3)/sum(vect_dist_max);

Pc4=vect_dist_max(4)/sum(vect_dist_max);

Pc5=vect_dist_max(5)/sum(vect_dist_max);

Pc6=vect_dist_max(6)/sum(vect_dist_max);

Pc7=vect_dist_max(7)/sum(vect_dist_max);

Pc8=vect_dist_max(8)/sum(vect_dist_max);

Pc9=vect_dist_max(9)/sum(vect_dist_max);

Pc10=vect_dist_max(10)/sum(vect_dist_max);

Pc11=vect_dist_max(11)/sum(vect_dist_max);

Pc12=vect_dist_max(12)/sum(vect_dist_max);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmin=min(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmin & Pc1*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmin & Pc2*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif Pc3==Pmin & Pc3*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif Pc4==Pmin & Pc4*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmin & Pc5*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmin & Pc6*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif Pc7==Pmin & Pc7*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmin & Pc8*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmin & Pc9*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmin & Pc10*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif Pc11==Pmin & Pc11*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmin & Pc12*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

Page 245: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

245

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

Clasificador KNN, agr. general con AFD.

knn_gen.m

clear

close all

disp('CLASIFICADOR KNN AGR. GEN. CON MAMOGRAFIAS');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <21 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

MI_AFD_

%fin de AFD

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

m3_x=mo3_(t_vent,ventana_x);

m4_x=mo4_(t_vent,ventana_x);

t_four_x=sum(sum(abs(fft2(ventana_x))));

%estadisticos

con_x=CON_(t_vent,ventana_x);

maso_x=MASO_(t_vent,ventana_x);

ent_x=ENT_(t_vent,ventana_x);

vector_x_sin_afd=[mean2(ventana_x),std2(ventana_x),(std2(ventana_x))^2,m3_x,m4_x,t_four_x,con_x,maso_x,ent_x];

vector_x=(W'*vector_x_sin_afd')';

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_tot=vertcat(matriz_distan_c1,matriz_distan_c2,matriz_distan_c3,matriz_distan_c4,...

matriz_distan_c5,matriz_distan_c6,matriz_distan_c7,matriz_distan_c8,...

matriz_distan_c9,matriz_distan_c10,matriz_distan_c11,matriz_distan_c12);

ordenados=sortrows(matriz_distan_tot);

vect_ordenados=ordenados(1:k,2,:);

vect_ki=KI_(vect_ordenados,k);

K1=vect_ki(1);

K2=vect_ki(2);

K3=vect_ki(3);

K4=vect_ki(4);

K5=vect_ki(5);

K6=vect_ki(6);

K7=vect_ki(7);

K8=vect_ki(8);

K9=vect_ki(9);

K10=vect_ki(10);

K11=vect_ki(11);

K12=vect_ki(12);

Pc1=K1/k;

Pc2=K2/k;

Pc3=K3/k;

Pc4=K4/k;

Pc5=K5/k;

Pc6=K6/k;

Page 246: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

246

Pc7=K7/k;

Pc8=K8/k;

Pc9=K9/k;

Pc10=K10/k;

Pc11=K11/k;

Pc12=K12/k;

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmax=max(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmax & Pc1*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmax & Pc2*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif Pc3==Pmax & Pc3*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif Pc4==Pmax & Pc4*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmax & Pc5*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmax & Pc6*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif Pc7==Pmax & Pc7*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmax & Pc8*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmax & Pc9*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmax & Pc10*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif Pc11==Pmax & Pc11*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmax & Pc12*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

Clasificador de Bayes con TW.

El código es el mismo tanto para db10 como para haar. Únicamente se sustituye haar por db10 en donde aparezca

Bayes_db10.m

clear

close all

format long g

disp('CLASIFICADOR DE BAYES CON TW');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

umbral=input('Umbral ->');

disp('A1 --->1')

disp('A2 --->2')

seleccion=input(' --->');

HORA_DE_INICIO=datestr(clock,0)

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%genera las bd's

Page 247: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

247

BASES_DE_DATOS_;

%obtencion de los promedios de cada una de las 12 bases de datos

media_bdc1=mean(Bdatos_c1);

media_bdc2=mean(Bdatos_c2);

media_bdc3=mean(Bdatos_c3);

media_bdc4=mean(Bdatos_c4);

media_bdc5=mean(Bdatos_c5);

media_bdc6=mean(Bdatos_c6);

media_bdc7=mean(Bdatos_c7);

media_bdc8=mean(Bdatos_c8);

media_bdc9=mean(Bdatos_c9);

media_bdc10=mean(Bdatos_c10);

media_bdc11=mean(Bdatos_c11);

media_bdc12=mean(Bdatos_c12);

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

%descomposicion Wavelet a nivel 1 y 2

[C,S]=wavedec2(ventana_x,2,'db10');

%extraccion de los coeficientes de las aproximaciones a nivel 1 y 2

cA1=appcoef2(C,S,'db10',1);

cA2=appcoef2(C,S,'db10',2);

%obtencion de la energia

energ_aprox_n1=sum(sum(cA1.^2));

energ_aprox_n2=sum(sum(cA2.^2));

switch seleccion

case 1

vector_x=[energ_aprox_n1];

case 2

vector_x=[energ_aprox_n2];

otherwise disp('¡¡¡Seleccion Invalida!!!')

end

%Calculo de las probabilidades

Pc1=Prob_Bayes_(vector_x,Bdatos_c1,media_bdc1);

Pc2=Prob_Bayes_(vector_x,Bdatos_c2,media_bdc2);

Pc3=Prob_Bayes_(vector_x,Bdatos_c3,media_bdc3);

Pc4=Prob_Bayes_(vector_x,Bdatos_c4,media_bdc4);

Pc5=Prob_Bayes_(vector_x,Bdatos_c5,media_bdc5);

Pc6=Prob_Bayes_(vector_x,Bdatos_c6,media_bdc6);

Pc7=Prob_Bayes_(vector_x,Bdatos_c7,media_bdc7);

Pc8=Prob_Bayes_(vector_x,Bdatos_c8,media_bdc8);

Pc9=Prob_Bayes_(vector_x,Bdatos_c9,media_bdc9);

Pc10=Prob_Bayes_(vector_x,Bdatos_c10,media_bdc10);

Pc11=Prob_Bayes_(vector_x,Bdatos_c11,media_bdc11);

Pc12=Prob_Bayes_(vector_x,Bdatos_c12,media_bdc12);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

prob_norm=100*abs(vec_prob)/sum(abs(vec_prob));

Pmin=min(prob_norm);

%Se asigna un nivel de gris para resaltar la clase

if (prob_norm(1)==Pmin & prob_norm(1)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0*21;

elseif (prob_norm(2)==Pmin & prob_norm(2)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=1*21;

elseif (prob_norm(3)==Pmin & prob_norm(3)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*21;

elseif (prob_norm(4)==Pmin & prob_norm(4)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*21;

elseif (prob_norm(5)==Pmin & prob_norm(5)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*21;

elseif (prob_norm(6)==Pmin & prob_norm(6)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*21;

elseif (prob_norm(7)==Pmin & prob_norm(7)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*21;

elseif (prob_norm(8)==Pmin & prob_norm(8)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*21;

elseif (prob_norm(9)==Pmin & prob_norm(9)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*21;

elseif (prob_norm(10)==Pmin & prob_norm(10)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*21;

elseif (prob_norm(11)==Pmin & prob_norm(11)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*21;

elseif (prob_norm(12)==Pmin & prob_norm(12)<=(100-umbral)),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*21;

elseif prob_norm(1)==prob_norm(2)==prob_norm(3)==prob_norm(4)==prob_norm(5)...

Page 248: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

248

==prob_norm(6)==prob_norm(7)==prob_norm(8)==prob_norm(9)==prob_norm(10)...

==prob_norm(11)==prob_norm(12),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

HORA_DE_TERMINACION=datestr(clock,0)

colormap(gray);

IMSHOW(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

IMSHOW(A,256)

Bdatos_.m

%generaci´on de la base de datos

function bd=bdatos_(N_ventanas,t_vent,clase_n,opcion)

tamano_clase_n=size(clase_n);

for i=1:N_ventanas,

n=fix((tamano_clase_n(1)-t_vent)*rand);

m=fix((tamano_clase_n(2)-t_vent)*rand);

ventana_clase_n =clase_n(n+1:n+t_vent,m+1:m+t_vent);

%descomposicion Wavelet a nivel 1 y 2

[C,S]=wavedec2(ventana_clase_n,2,'db10');

%extraccion de los coeficientes de las aproximaciones a nivel 1 y 2

cA1=appcoef2(C,S,'db10',1);

cA2=appcoef2(C,S,'db10',2);

%obtencion de la energia

energ_aprox_n1=sum(sum(cA1.^2));

energ_aprox_n2=sum(sum(cA2.^2));

switch opcion

case 1

bd(i,:)=[energ_aprox_n1];

case 2

bd(i,:)=[energ_aprox_n2];

otherwise disp('¡¡¡Error en la seleccion de coeficientes!!!')

end

end

Clasificador KNN, agr. clase con TW.

knn_gen.m

clear

close all

format long g

disp('CLASIFICADOR KNN CLASE CON TW');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

disp('A1 --->1')

disp('A2 --->2')

seleccion=input(' --->');

HORA_DE_INICIO=datestr(clock,0)

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%genera las bd's

BASES_DE_DATOS_;

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

%descomposicion Wavelet a nivel 1 y 2

[C,S]=wavedec2(ventana_x,2,'db10');

Page 249: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

249

%extraccion de los coeficientes de las aproximaciones a nivel 1 y 2

cA1=appcoef2(C,S,'db10',1);

cA2=appcoef2(C,S,'db10',2);

%obtencion de la energia

energ_aprox_n1=sum(sum(cA1.^2));

energ_aprox_n2=sum(sum(cA2.^2));

switch seleccion

case 1

vector_x=[energ_aprox_n1];

case 2

vector_x=[energ_aprox_n2];

otherwise disp('¡¡¡Seleccion Invalida!!!')

end

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_c1_ord=sort(matriz_distan_c1);

matriz_distan_c2_ord=sort(matriz_distan_c2);

matriz_distan_c3_ord=sort(matriz_distan_c3);

matriz_distan_c4_ord=sort(matriz_distan_c4);

matriz_distan_c5_ord=sort(matriz_distan_c5);

matriz_distan_c6_ord=sort(matriz_distan_c6);

matriz_distan_c7_ord=sort(matriz_distan_c7);

matriz_distan_c8_ord=sort(matriz_distan_c8);

matriz_distan_c9_ord=sort(matriz_distan_c9);

matriz_distan_c10_ord=sort(matriz_distan_c10);

matriz_distan_c11_ord=sort(matriz_distan_c11);

matriz_distan_c12_ord=sort(matriz_distan_c12);

vect_dis_c1=matriz_distan_c1_ord(1:k,1);

vect_dis_c2=matriz_distan_c2_ord(1:k,1);

vect_dis_c3=matriz_distan_c3_ord(1:k,1);

vect_dis_c4=matriz_distan_c4_ord(1:k,1);

vect_dis_c5=matriz_distan_c5_ord(1:k,1);

vect_dis_c6=matriz_distan_c6_ord(1:k,1);

vect_dis_c7=matriz_distan_c7_ord(1:k,1);

vect_dis_c8=matriz_distan_c8_ord(1:k,1);

vect_dis_c9=matriz_distan_c9_ord(1:k,1);

vect_dis_c10=matriz_distan_c10_ord(1:k,1);

vect_dis_c11=matriz_distan_c11_ord(1:k,1);

vect_dis_c12=matriz_distan_c12_ord(1:k,1);

d_max_c1=max(vect_dis_c1);

d_max_c2=max(vect_dis_c2);

d_max_c3=max(vect_dis_c3);

d_max_c4=max(vect_dis_c4);

d_max_c5=max(vect_dis_c5);

d_max_c6=max(vect_dis_c6);

d_max_c7=max(vect_dis_c7);

d_max_c8=max(vect_dis_c8);

d_max_c9=max(vect_dis_c9);

d_max_c10=max(vect_dis_c10);

d_max_c11=max(vect_dis_c11);

d_max_c12=max(vect_dis_c12);

vect_dist_max=[d_max_c1 d_max_c2 d_max_c3 d_max_c4 d_max_c5 d_max_c6 d_max_c7,...

d_max_c8 d_max_c9 d_max_c10 d_max_c11 d_max_c12];

Pc1=vect_dist_max(1)/sum(vect_dist_max);

Pc2=vect_dist_max(2)/sum(vect_dist_max);

Pc3=vect_dist_max(3)/sum(vect_dist_max);

Pc4=vect_dist_max(4)/sum(vect_dist_max);

Pc5=vect_dist_max(5)/sum(vect_dist_max);

Pc6=vect_dist_max(6)/sum(vect_dist_max);

Pc7=vect_dist_max(7)/sum(vect_dist_max);

Pc8=vect_dist_max(8)/sum(vect_dist_max);

Pc9=vect_dist_max(9)/sum(vect_dist_max);

Pc10=vect_dist_max(10)/sum(vect_dist_max);

Pc11=vect_dist_max(11)/sum(vect_dist_max);

Pc12=vect_dist_max(12)/sum(vect_dist_max);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmin=min(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmin & Pc1*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmin & Pc2*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

Page 250: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

250

elseif Pc3==Pmin & Pc3*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif Pc4==Pmin & Pc4*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmin & Pc5*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmin & Pc6*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif Pc7==Pmin & Pc7*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmin & Pc8*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmin & Pc9*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmin & Pc10*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

elseif Pc11==Pmin & Pc11*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmin & Pc12*100<=(100-umbral),

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

HORA_DE_TERMINACION=datestr(clock,0)

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

Clasificador KNN, agr. general con TW.

knn_gen.m

clear

close all

format long g

disp('CLASIFICADOR KNN GEN.CON TW');

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

mamografia=input('Nombre de la mamografia->','s');

t_vent=input('Tamaño de ventana ->');

k=input('Ingrese el valor de K ->');

umbral=input('Umbral ->');

disp('A1 --->1')

disp('A2 --->2')

seleccion=input(' --->');

HORA_DE_INICIO=datestr(clock,0)

compuesta=leer_pgm(mamografia);

tamano_comp=size(compuesta);

comp_en_n=tamano_comp(1);

comp_en_m=tamano_comp(2);

comp_rec=zeros(comp_en_n,comp_en_m);

%genera las bd's

BASES_DE_DATOS_;

%Hacemos el barrido de la figura compuesta

for y=0:t_vent:(comp_en_n-t_vent),

for x=0:t_vent:(comp_en_m-t_vent),

ventana_x=compuesta(y+1:y+t_vent,x+1:x+t_vent);

%descomposicion Wavelet a nivel 1 y 2

[C,S]=wavedec2(ventana_x,2,'db10');

%extraccion de los coeficientes de las aproximaciones a nivel 1 y 2

cA1=appcoef2(C,S,'db10',1);

cA2=appcoef2(C,S,'db10',2);

%obtencion de la energia

energ_aprox_n1=sum(sum(cA1.^2));

energ_aprox_n2=sum(sum(cA2.^2));

Page 251: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

251

switch seleccion

case 1

vector_x=[energ_aprox_n1];

case 2

vector_x=[energ_aprox_n2];

otherwise disp('¡¡¡Seleccion Invalida!!!')

end

%Calculo de las MATRIZ DE DISTANCIAS

matriz_distan_c1=MAT_DIST_X_(vector_x,Bdatos_c1,1);

matriz_distan_c2=MAT_DIST_X_(vector_x,Bdatos_c2,2);

matriz_distan_c3=MAT_DIST_X_(vector_x,Bdatos_c3,3);

matriz_distan_c4=MAT_DIST_X_(vector_x,Bdatos_c4,4);

matriz_distan_c5=MAT_DIST_X_(vector_x,Bdatos_c5,5);

matriz_distan_c6=MAT_DIST_X_(vector_x,Bdatos_c6,6);

matriz_distan_c7=MAT_DIST_X_(vector_x,Bdatos_c7,7);

matriz_distan_c8=MAT_DIST_X_(vector_x,Bdatos_c8,8);

matriz_distan_c9=MAT_DIST_X_(vector_x,Bdatos_c9,9);

matriz_distan_c10=MAT_DIST_X_(vector_x,Bdatos_c10,10);

matriz_distan_c11=MAT_DIST_X_(vector_x,Bdatos_c11,11);

matriz_distan_c12=MAT_DIST_X_(vector_x,Bdatos_c12,12);

matriz_distan_tot=vertcat(matriz_distan_c1,matriz_distan_c2,matriz_distan_c3,matriz_distan_c4,...

matriz_distan_c5,matriz_distan_c6,matriz_distan_c7,matriz_distan_c8,matriz_distan_c9,...

matriz_distan_c10,matriz_distan_c11,matriz_distan_c12);

ordenados=sortrows(matriz_distan_tot);

vect_ordenados=ordenados(1:k,2,:);

vect_ki=KI_(vect_ordenados,k);

K1=vect_ki(1);

K2=vect_ki(2);

K3=vect_ki(3);

K4=vect_ki(4);

K5=vect_ki(5);

K6=vect_ki(6);

K7=vect_ki(7);

K8=vect_ki(8);

K9=vect_ki(9);

K10=vect_ki(10);

K11=vect_ki(11);

K12=vect_ki(12);

Pc1=K1/k;

Pc2=K2/k;

Pc3=K3/k;

Pc4=K4/k;

Pc5=K5/k;

Pc6=K6/k;

Pc7=K7/k;

Pc8=K8/k;

Pc9=K9/k;

Pc10=K10/k;

Pc11=K11/k;

Pc12=K12/k;

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmax=max(vec_prob);

%Se asigna un nivel de gris para resaltar la clase

if Pc1==Pmax & Pc1*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=0;

elseif Pc2==Pmax & Pc2*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=16;

elseif Pc3==Pmax & Pc3*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=2*16;

elseif Pc4==Pmax & Pc4*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=3*16;

elseif Pc5==Pmax & Pc5*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=4*16;

elseif Pc6==Pmax & Pc6*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=5*16;

elseif Pc7==Pmax & Pc7*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=6*16;

elseif Pc8==Pmax & Pc8*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=7*16;

elseif Pc9==Pmax & Pc9*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=8*16;

elseif Pc10==Pmax & Pc10*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=9*16;

Page 252: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

252

elseif Pc11==Pmax & Pc11*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=10*16;

elseif Pc12==Pmax & Pc12*100>=umbral,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=11*16;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

else

comp_rec(y+1:y+t_vent,x+1:x+t_vent)=255;

end

end

end

HORA_DE_INICIO

HORA_DE_TERMINACION=datestr(clock,0)

colormap(gray);

imshow(uint8(compuesta))

figure

colormap(gray);

A=uint8(comp_rec);

imshow(A,256)

Cross-validation, clasificador de Bayes con TW.

Para el nivel I o nivel II, simplemente se especificamos el número de nivel deseado en la sintaxis de los comandos appcoef2.

cv_bayes_db_I.m

clear

close all

format long g

disp('CROSS VALIDATION CON BAYES bd10 NIVEL I');

HORA_DE_INICIO=datestr(clock,0)

N_ventanas=100;

ERROR=0;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

matriz_tvent_vs_error_1=[12,0;

14,0;

16,0;

18,0;

20,0;

22,0;

24,0;

26,0;

28,0;

30,0];

for h=1:10

t_vent=matriz_tvent_vs_error_1(h,1);

t_vent

umbral=0;

m_confusion=zeros(12,13,20);

%genera las bd's

BASES_DE_DATOS_;

%Fin del ACP con las 12 Bd----------------------

mat_aux=ones(100,1);

col_unos=1*mat_aux;

col_dos=2*mat_aux;

col_tres=3*mat_aux;

col_cuatro=4*mat_aux;

col_cinco=5*mat_aux;

col_seis=6*mat_aux;

col_siete=7*mat_aux;

col_ocho=8*mat_aux;

col_nueve=9*mat_aux;

col_diez=10*mat_aux;

col_once=11*mat_aux;

col_doce=12*mat_aux;

Bdatos_tot=vertcat(Bdatos_c1,Bdatos_c2,Bdatos_c3,Bdatos_c4,Bdatos_c5,Bdatos_c6,...

Bdatos_c7,Bdatos_c8,Bdatos_c9,Bdatos_c10,Bdatos_c11,Bdatos_c12);

columna_num=vertcat(col_unos,col_dos,col_tres,col_cuatro,col_cinco,col_seis,col_siete,...

col_ocho,col_nueve,col_diez,col_once,col_doce);

Bdatos1=[Bdatos_tot,columna_num];

Bdatos_c1=Bdatos1(1:100,:);

Bdatos_c2=Bdatos1(101:200,:);

Bdatos_c3=Bdatos1(201:300,:);

Bdatos_c4=Bdatos1(301:400,:);

Bdatos_c5=Bdatos1(401:500,:);

Bdatos_c6=Bdatos1(501:600,:);

Bdatos_c7=Bdatos1(601:700,:);

Bdatos_c8=Bdatos1(701:800,:);

Bdatos_c9=Bdatos1(801:900,:);

Bdatos_c10=Bdatos1(901:1000,:);

Page 253: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

253

Bdatos_c11=Bdatos1(1001:1100,:);

Bdatos_c12=Bdatos1(1101:1200,:);

promedios=zeros(1,20);

for i=1:20,

[Bdatos_c1_a,Bdatos_c1_p]=M_APRE_(Bdatos_c1);

[Bdatos_c2_a,Bdatos_c2_p]=M_APRE_(Bdatos_c2);

[Bdatos_c3_a,Bdatos_c3_p]=M_APRE_(Bdatos_c3);

[Bdatos_c4_a,Bdatos_c4_p]=M_APRE_(Bdatos_c4);

[Bdatos_c5_a,Bdatos_c5_p]=M_APRE_(Bdatos_c5);

[Bdatos_c6_a,Bdatos_c6_p]=M_APRE_(Bdatos_c6);

[Bdatos_c7_a,Bdatos_c7_p]=M_APRE_(Bdatos_c7);

[Bdatos_c8_a,Bdatos_c8_p]=M_APRE_(Bdatos_c8);

[Bdatos_c9_a,Bdatos_c9_p]=M_APRE_(Bdatos_c9);

[Bdatos_c10_a,Bdatos_c10_p]=M_APRE_(Bdatos_c10);

[Bdatos_c11_a,Bdatos_c11_p]=M_APRE_(Bdatos_c11);

[Bdatos_c12_a,Bdatos_c12_p]=M_APRE_(Bdatos_c12);

bd_aprend=vertcat(Bdatos_c1_a,Bdatos_c2_a,Bdatos_c3_a,Bdatos_c4_a,...

Bdatos_c5_a,Bdatos_c6_a,Bdatos_c7_a,Bdatos_c8_a,...

Bdatos_c9_a,Bdatos_c10_a,Bdatos_c11_a,Bdatos_c12_a);

bd_prueba=vertcat(Bdatos_c1_p,Bdatos_c2_p,Bdatos_c3_p,Bdatos_c4_p,...

Bdatos_c5_p,Bdatos_c6_p,Bdatos_c7_p,Bdatos_c8_p,...

Bdatos_c9_p,Bdatos_c10_p,Bdatos_c11_p,Bdatos_c12_p);

for j=1:600,

vent_act=bd_prueba(j,:);

%obtencion de los promedios de cada una de las 4 bases de datos DE APRENDIZAJE

media_bdc1=mean(Bdatos_c1_a);

media_bdc2=mean(Bdatos_c2_a);

media_bdc3=mean(Bdatos_c3_a);

media_bdc4=mean(Bdatos_c4_a);

media_bdc5=mean(Bdatos_c5_a);

media_bdc6=mean(Bdatos_c6_a);

media_bdc7=mean(Bdatos_c7_a);

media_bdc8=mean(Bdatos_c8_a);

media_bdc9=mean(Bdatos_c9_a);

media_bdc10=mean(Bdatos_c10_a);

media_bdc11=mean(Bdatos_c11_a);

media_bdc12=mean(Bdatos_c12_a);

%Calculo de las probabilidades

Pc1=Prob_Bayes_(vent_act(1),Bdatos_c1_a(:,1),media_bdc1(1));

Pc2=Prob_Bayes_(vent_act(1),Bdatos_c2_a(:,1),media_bdc2(1));

Pc3=Prob_Bayes_(vent_act(1),Bdatos_c3_a(:,1),media_bdc3(1));

Pc4=Prob_Bayes_(vent_act(1),Bdatos_c4_a(:,1),media_bdc4(1));

Pc5=Prob_Bayes_(vent_act(1),Bdatos_c5_a(:,1),media_bdc5(1));

Pc6=Prob_Bayes_(vent_act(1),Bdatos_c6_a(:,1),media_bdc6(1));

Pc7=Prob_Bayes_(vent_act(1),Bdatos_c7_a(:,1),media_bdc7(1));

Pc8=Prob_Bayes_(vent_act(1),Bdatos_c8_a(:,1),media_bdc8(1));

Pc9=Prob_Bayes_(vent_act(1),Bdatos_c9_a(:,1),media_bdc9(1));

Pc10=Prob_Bayes_(vent_act(1),Bdatos_c10_a(:,1),media_bdc10(1));

Pc11=Prob_Bayes_(vent_act(1),Bdatos_c11_a(:,1),media_bdc11(1));

Pc12=Prob_Bayes_(vent_act(1),Bdatos_c12_a(:,1),media_bdc12(1));

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

prob_norm=100*abs(vec_prob)/sum(abs(vec_prob));

Pmin=min(prob_norm);

my=vent_act(2);

if prob_norm(1)==Pmin & prob_norm(1)<=(100-umbral),

pg=1;

elseif (prob_norm(2)==Pmin & prob_norm(2)<=(100-umbral)),

pg=2;

elseif (prob_norm(3)==Pmin & prob_norm(3)<=(100-umbral)),

pg=3;

elseif (prob_norm(4)==Pmin & prob_norm(4)<=(100-umbral)),

pg=4;

elseif (prob_norm(5)==Pmin & prob_norm(5)<=(100-umbral)),

pg=5;

elseif (prob_norm(6)==Pmin & prob_norm(6)<=(100-umbral)),

pg=6;

elseif (prob_norm(7)==Pmin & prob_norm(7)<=(100-umbral)),

pg=7;

elseif (prob_norm(8)==Pmin & prob_norm(8)<=(100-umbral)),

pg=8;

elseif (prob_norm(9)==Pmin & prob_norm(9)<=(100-umbral)),

pg=9;

elseif (prob_norm(10)==Pmin & prob_norm(10)<=(100-umbral)),

pg=10;

elseif (prob_norm(11)==Pmin & prob_norm(11)<=(100-umbral)),

pg=11;

elseif (prob_norm(12)==Pmin & prob_norm(12)<=(100-umbral)),

pg=12;

elseif prob_norm(1)==prob_norm(2)==prob_norm(3)==prob_norm(4)==prob_norm(5)...

==prob_norm(6)==prob_norm(7)==prob_norm(8)==prob_norm(9)==prob_norm(10)...

==prob_norm(11)==prob_norm(12),

pg=13;

else

pg=13;

end %del if

Page 254: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

254

m_confusion(my,pg,i)=m_confusion(my,pg,i)+1;

promedios(i)=(sum(diag(m_confusion(:,:,i))))/6;

end %del for que recorre la base de datos de aprendizaje

end %de for que repite 20 veces esto aleatoriamente

PERFORMANCE=1/20*sum(promedios);

ERROR=100-PERFORMANCE;

matriz_tvent_vs_error_1(h,2)=ERROR;

ERROR=0;

%end

end

HORA_DE_INICIO

HORA_DE_TERMINACION=datestr(clock,0)

matriz_tvent_vs_error_1

save CV_BAYES_DB10_NI matriz_tvent_vs_error_1

disp('¡¡¡PROCESO TERMINADO!!!')

disp('')

disp('')

Bdatos_.m

%generaci´on de la base de datos

function bd=bdatos_(N_ventanas,t_vent,clase_n)

tamano_clase_n=size(clase_n);

for i=1:N_ventanas,

n=fix((tamano_clase_n(1)-t_vent)*rand);

m=fix((tamano_clase_n(2)-t_vent)*rand);

ventana_clase_n=clase_n(n+1:n+t_vent,m+1:m+t_vent);

%descomposicion Wavelet a nivel 1 y 2

[C,S]=wavedec2(ventana_clase_n,2,'db10');

%extraccion de los coeficientes de las aproximaciones a nivel 1

cA1=appcoef2(C,S,'db10',1);

%obtencion de la energia

energ_aprox_n1=sum(sum(cA1.^2));

bd(i,:)=[energ_aprox_n1];

end

M_APRE.m

function [aprendi,prueb]=M_APRE_(matri,iteracion)

%se generan 50 numeros enteros al azar del 1 al 100

A=zeros(50,1);

indice=0;

bandera=0;

while indice<50

n=fix(100*rand)+1;

for x=1:indice

if n==A(x)

bandera=1;

end

end

if bandera==0

indice=indice+1;

A(indice)=n;

end

bandera=0;

end

nprueb=matri;

%de la bd de 100, los 50 vectores no escogidos tienen 0 en su ultima columna

for i=1:50,

aprendi(i,:)=matri(A(i),:);

los_ceros=zeros(1,2);

nprueb(A(i),:)=los_ceros;

end

%aprendi contiene los 50 vectores de aprendizaje

indice=1;

for i=1:100,

if sum(nprueb(i,:))~=0

prueb(indice,:)=nprueb(i,:);

indice=indice+1;

end

end

prueb;

%aprendi contiene los 50 vectores de prueba

Cross-validation, clasificador KNN, agr. clase con TW.

Para probar diferentes tamaños de ventana, únicamente se ingresa el tamaño de ventana deseado en la variable t_vent.

Page 255: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

255

cv_knn_clas_tvent12.m

clear

close all

format long g

disp('CROSS VALIDATION CON KNN POR CLASE bd10 NIVEL I');

disp('Tamaño de ventana=12')

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

t_vent=12;

matriz_k_vs_error_12=[1,0;

3,0;

5,0;

7,0;

9,0;

11,0;

13,0;

15,0;

17,0;

19,0];

iteracion=1;

HORA_DE_INICIO=datestr(clock,0)

for h=1:10

k=matriz_k_vs_error_12(h,1);

k

umbral=0;

m_confusion=zeros(12,13,20);

BASES_DE_DATOS_

mat_aux=ones(100,1);

col_unos=1*mat_aux;

col_dos=2*mat_aux;

col_tres=3*mat_aux;

col_cuatro=4*mat_aux;

col_cinco=5*mat_aux;

col_seis=6*mat_aux;

col_siete=7*mat_aux;

col_ocho=8*mat_aux;

col_nueve=9*mat_aux;

col_diez=10*mat_aux;

col_once=11*mat_aux;

col_doce=12*mat_aux;

Bdatos_tot=vertcat(Bdatos_c1,Bdatos_c2,Bdatos_c3,Bdatos_c4,Bdatos_c5,Bdatos_c6,...

Bdatos_c7,Bdatos_c8,Bdatos_c9,Bdatos_c10,Bdatos_c11,Bdatos_c12);

columna_num=vertcat(col_unos,col_dos,col_tres,col_cuatro,col_cinco,col_seis,col_siete,...

col_ocho,col_nueve,col_diez,col_once,col_doce);

Bdatos1=[Bdatos_tot,columna_num];

Bdatos_c1=Bdatos1(1:100,:);

Bdatos_c2=Bdatos1(101:200,:);

Bdatos_c3=Bdatos1(201:300,:);

Bdatos_c4=Bdatos1(301:400,:);

Bdatos_c5=Bdatos1(401:500,:);

Bdatos_c6=Bdatos1(501:600,:);

Bdatos_c7=Bdatos1(601:700,:);

Bdatos_c8=Bdatos1(701:800,:);

Bdatos_c9=Bdatos1(801:900,:);

Bdatos_c10=Bdatos1(901:1000,:);

Bdatos_c11=Bdatos1(1001:1100,:);

Bdatos_c12=Bdatos1(1101:1200,:);

promedios=zeros(1,20);

for i=1:20,

[Bdatos_c1_a,Bdatos_c1_p]=M_APRE_(Bdatos_c1,iteracion);

[Bdatos_c2_a,Bdatos_c2_p]=M_APRE_(Bdatos_c2,iteracion);

[Bdatos_c3_a,Bdatos_c3_p]=M_APRE_(Bdatos_c3,iteracion);

[Bdatos_c4_a,Bdatos_c4_p]=M_APRE_(Bdatos_c4,iteracion);

[Bdatos_c5_a,Bdatos_c5_p]=M_APRE_(Bdatos_c5,iteracion);

[Bdatos_c6_a,Bdatos_c6_p]=M_APRE_(Bdatos_c6,iteracion);

[Bdatos_c7_a,Bdatos_c7_p]=M_APRE_(Bdatos_c7,iteracion);

[Bdatos_c8_a,Bdatos_c8_p]=M_APRE_(Bdatos_c8,iteracion);

[Bdatos_c9_a,Bdatos_c9_p]=M_APRE_(Bdatos_c9,iteracion);

[Bdatos_c10_a,Bdatos_c10_p]=M_APRE_(Bdatos_c10,iteracion);

[Bdatos_c11_a,Bdatos_c11_p]=M_APRE_(Bdatos_c11,iteracion);

[Bdatos_c12_a,Bdatos_c12_p]=M_APRE_(Bdatos_c12,iteracion);

bd_aprend=vertcat(Bdatos_c1_a,Bdatos_c2_a,Bdatos_c3_a,Bdatos_c4_a,...

Bdatos_c5_a,Bdatos_c6_a,Bdatos_c7_a,Bdatos_c8_a,...

Bdatos_c9_a,Bdatos_c10_a,Bdatos_c11_a,Bdatos_c12_a);

bd_prueba=vertcat(Bdatos_c1_p,Bdatos_c2_p,Bdatos_c3_p,Bdatos_c4_p,...

Bdatos_c5_p,Bdatos_c6_p,Bdatos_c7_p,Bdatos_c8_p,...

Bdatos_c9_p,Bdatos_c10_p,Bdatos_c11_p,Bdatos_c12_p);

for j=1:600,

Page 256: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

256

vent_act=bd_prueba(j,:);

pg=0;

matriz_distan_v=MAT_DIST_X_(vent_act,bd_aprend,iteracion);

% m_dist_ord=sortrows(matriz_distan_v);

matriz_dist_c1=DAME_CN_(matriz_distan_v,1);

matriz_dist_c2=DAME_CN_(matriz_distan_v,2);

matriz_dist_c3=DAME_CN_(matriz_distan_v,3);

matriz_dist_c4=DAME_CN_(matriz_distan_v,4);

matriz_dist_c5=DAME_CN_(matriz_distan_v,5);

matriz_dist_c6=DAME_CN_(matriz_distan_v,6);

matriz_dist_c7=DAME_CN_(matriz_distan_v,7);

matriz_dist_c8=DAME_CN_(matriz_distan_v,8);

matriz_dist_c9=DAME_CN_(matriz_distan_v,9);

matriz_dist_c10=DAME_CN_(matriz_distan_v,10);

matriz_dist_c11=DAME_CN_(matriz_distan_v,11);

matriz_dist_c12=DAME_CN_(matriz_distan_v,12);

m_dist_c1_ord=sortrows(matriz_dist_c1);

m_dist_c2_ord=sortrows(matriz_dist_c2);

m_dist_c3_ord=sortrows(matriz_dist_c3);

m_dist_c4_ord=sortrows(matriz_dist_c4);

m_dist_c5_ord=sortrows(matriz_dist_c5);

m_dist_c6_ord=sortrows(matriz_dist_c6);

m_dist_c7_ord=sortrows(matriz_dist_c7);

m_dist_c8_ord=sortrows(matriz_dist_c8);

m_dist_c9_ord=sortrows(matriz_dist_c9);

m_dist_c10_ord=sortrows(matriz_dist_c10);

m_dist_c11_ord=sortrows(matriz_dist_c11);

m_dist_c12_ord=sortrows(matriz_dist_c12);

vect_dis_c1=m_dist_c1_ord(1:k,1);

vect_dis_c2=m_dist_c2_ord(1:k,1);

vect_dis_c3=m_dist_c3_ord(1:k,1);

vect_dis_c4=m_dist_c4_ord(1:k,1);

vect_dis_c5=m_dist_c5_ord(1:k,1);

vect_dis_c6=m_dist_c6_ord(1:k,1);

vect_dis_c7=m_dist_c7_ord(1:k,1);

vect_dis_c8=m_dist_c8_ord(1:k,1);

vect_dis_c9=m_dist_c9_ord(1:k,1);

vect_dis_c10=m_dist_c10_ord(1:k,1);

vect_dis_c11=m_dist_c11_ord(1:k,1);

vect_dis_c12=m_dist_c12_ord(1:k,1);

d_max_c1=max(vect_dis_c1);

d_max_c2=max(vect_dis_c2);

d_max_c3=max(vect_dis_c3);

d_max_c4=max(vect_dis_c4);

d_max_c5=max(vect_dis_c5);

d_max_c6=max(vect_dis_c6);

d_max_c7=max(vect_dis_c7);

d_max_c8=max(vect_dis_c8);

d_max_c9=max(vect_dis_c9);

d_max_c10=max(vect_dis_c10);

d_max_c11=max(vect_dis_c11);

d_max_c12=max(vect_dis_c12);

vect_dist_max=[d_max_c1 d_max_c2 d_max_c3 d_max_c4 d_max_c5 d_max_c6 d_max_c7,...

d_max_c8 d_max_c9 d_max_c10 d_max_c11 d_max_c12];

Pc1=vect_dist_max(1)/sum(vect_dist_max);

Pc2=vect_dist_max(2)/sum(vect_dist_max);

Pc3=vect_dist_max(3)/sum(vect_dist_max);

Pc4=vect_dist_max(4)/sum(vect_dist_max);

Pc5=vect_dist_max(5)/sum(vect_dist_max);

Pc6=vect_dist_max(6)/sum(vect_dist_max);

Pc7=vect_dist_max(7)/sum(vect_dist_max);

Pc8=vect_dist_max(8)/sum(vect_dist_max);

Pc9=vect_dist_max(9)/sum(vect_dist_max);

Pc10=vect_dist_max(10)/sum(vect_dist_max);

Pc11=vect_dist_max(11)/sum(vect_dist_max);

Pc12=vect_dist_max(12)/sum(vect_dist_max);

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmin=min(vec_prob);

my=vent_act(iteracion+1);

%Se calcula la clase asignada

if Pc1==Pmin & Pc1*100<=(100-umbral),

pg=1;

elseif Pc2==Pmin & Pc2*100<=(100-umbral),

pg=2;

elseif Pc3==Pmin & Pc3*100<=(100-umbral),

pg=3;

elseif Pc4==Pmin & Pc4*100<=(100-umbral),

pg=4;

elseif Pc5==Pmin & Pc5*100<=(100-umbral),

pg=5;

elseif Pc6==Pmin & Pc6*100<=(100-umbral),

pg=6;

elseif Pc7==Pmin & Pc7*100<=(100-umbral),

pg=7;

elseif Pc8==Pmin & Pc8*100<=(100-umbral),

Page 257: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

257

pg=8;

elseif Pc9==Pmin & Pc9*100<=(100-umbral),

pg=9;

elseif Pc10==Pmin & Pc10*100<=(100-umbral),

pg=10;

elseif Pc11==Pmin & Pc11*100<=(100-umbral),

pg=11;

elseif Pc12==Pmin & Pc12*100<=(100-umbral),

pg=12;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10...

==Pc11==Pc12 ,

pg=13;

else

pg=13;

end %del if

m_confusion(my,pg,i)=m_confusion(my,pg,i)+1;

promedios(i)=(sum(diag(m_confusion(:,:,i))))/6;

end %del for que recorre la base de datos de aprendizaje

end %de for que repite 20 veces esto aleatoriamente

PERFORMANCE=1/20*sum(promedios)

ERROR=100-PERFORMANCE;

matriz_k_vs_error_12(h,2)=ERROR;

ERROR=0;

end

matriz_k_vs_error_12

HORA_DE_INICIO

HORA_DE_TERMINACION=datestr(clock,0)

disp('')

disp('')

save mamografia1_t_vent12_acp matriz_k_vs_error_12

disp('¡¡¡PROCESO TERMINADO!!!')

Cross-validation, clasificador KNN, agr. general con TW.

cv_gen_tvent12.m

clear

close all

format long g

disp('LEAVE ONE OUT CON KNN CLASE db10 NIVEL I');

disp('Tamaño de ventana=12')

N_ventanas=100;

%DEBIDO A LOS TAMANNOS DE LOS TUMORES RECORTADOS

%EL TAMANNO MAXIMO DE VENTANA DEBE DE SER <30 PIXELES

t_vent=12;

matriz_k_vs_error_12=[1,0;

3,0;

5,0;

7,0;

9,0;

11,0;

13,0;

15,0;

17,0;

19,0];

HORA_DE_INICIO=datestr(clock,0)

iteracion=1;

for h=1:10

k=matriz_k_vs_error_12(h,1);

k

umbral=0;

m_confusion=zeros(12,13,20);

BASES_DE_DATOS_;

mat_aux=ones(100,1);

col_unos=1*mat_aux;

col_dos=2*mat_aux;

col_tres=3*mat_aux;

col_cuatro=4*mat_aux;

col_cinco=5*mat_aux;

col_seis=6*mat_aux;

col_siete=7*mat_aux;

col_ocho=8*mat_aux;

col_nueve=9*mat_aux;

col_diez=10*mat_aux;

col_once=11*mat_aux;

col_doce=12*mat_aux;

Bdatos_tot=vertcat(Bdatos_c1,Bdatos_c2,Bdatos_c3,Bdatos_c4,Bdatos_c5,Bdatos_c6,...

Bdatos_c7,Bdatos_c8,Bdatos_c9,Bdatos_c10,Bdatos_c11,Bdatos_c12);

columna_num=vertcat(col_unos,col_dos,col_tres,col_cuatro,col_cinco,col_seis,col_siete,...

col_ocho,col_nueve,col_diez,col_once,col_doce);

Bdatos1=[Bdatos_tot,columna_num];

Page 258: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

258

Bdatos_c1=Bdatos1(1:100,:);

Bdatos_c2=Bdatos1(101:200,:);

Bdatos_c3=Bdatos1(201:300,:);

Bdatos_c4=Bdatos1(301:400,:);

Bdatos_c5=Bdatos1(401:500,:);

Bdatos_c6=Bdatos1(501:600,:);

Bdatos_c7=Bdatos1(601:700,:);

Bdatos_c8=Bdatos1(701:800,:);

Bdatos_c9=Bdatos1(801:900,:);

Bdatos_c10=Bdatos1(901:1000,:);

Bdatos_c11=Bdatos1(1001:1100,:);

Bdatos_c12=Bdatos1(1101:1200,:);

promedios=zeros(1,20);

for i=1:20,

[Bdatos_c1_a,Bdatos_c1_p]=M_APRE_(Bdatos_c1,iteracion);

[Bdatos_c2_a,Bdatos_c2_p]=M_APRE_(Bdatos_c2,iteracion);

[Bdatos_c3_a,Bdatos_c3_p]=M_APRE_(Bdatos_c3,iteracion);

[Bdatos_c4_a,Bdatos_c4_p]=M_APRE_(Bdatos_c4,iteracion);

[Bdatos_c5_a,Bdatos_c5_p]=M_APRE_(Bdatos_c5,iteracion);

[Bdatos_c6_a,Bdatos_c6_p]=M_APRE_(Bdatos_c6,iteracion);

[Bdatos_c7_a,Bdatos_c7_p]=M_APRE_(Bdatos_c7,iteracion);

[Bdatos_c8_a,Bdatos_c8_p]=M_APRE_(Bdatos_c8,iteracion);

[Bdatos_c9_a,Bdatos_c9_p]=M_APRE_(Bdatos_c9,iteracion);

[Bdatos_c10_a,Bdatos_c10_p]=M_APRE_(Bdatos_c10,iteracion);

[Bdatos_c11_a,Bdatos_c11_p]=M_APRE_(Bdatos_c11,iteracion);

[Bdatos_c12_a,Bdatos_c12_p]=M_APRE_(Bdatos_c12,iteracion);

bd_aprend=vertcat(Bdatos_c1_a,Bdatos_c2_a,Bdatos_c3_a,Bdatos_c4_a,...

Bdatos_c5_a,Bdatos_c6_a,Bdatos_c7_a,Bdatos_c8_a,...

Bdatos_c9_a,Bdatos_c10_a,Bdatos_c11_a,Bdatos_c12_a);

bd_prueba=vertcat(Bdatos_c1_p,Bdatos_c2_p,Bdatos_c3_p,Bdatos_c4_p,...

Bdatos_c5_p,Bdatos_c6_p,Bdatos_c7_p,Bdatos_c8_p,...

Bdatos_c9_p,Bdatos_c10_p,Bdatos_c11_p,Bdatos_c12_p);

for j=1:600,

pg=0;

vent_act=bd_prueba(j,:);

cla_verdadera=vent_act(iteracion+1);

matriz_distan_v=MAT_DIST_X_(vent_act,bd_aprend,iteracion);

ordenados=sortrows(matriz_distan_v);

vect_ordenados=ordenados(1:k,2,:);

vect_ki=KI_(vect_ordenados,k);

K1=vect_ki(1);

K2=vect_ki(2);

K3=vect_ki(3);

K4=vect_ki(4);

K5=vect_ki(5);

K6=vect_ki(6);

K7=vect_ki(7);

K8=vect_ki(8);

K9=vect_ki(9);

K10=vect_ki(10);

K11=vect_ki(11);

K12=vect_ki(12);

%clear Pc1 Pc2 Pc3 Pc4

Pc1=K1/k;

Pc2=K2/k;

Pc3=K3/k;

Pc4=K4/k;

Pc5=K5/k;

Pc6=K6/k;

Pc7=K7/k;

Pc8=K8/k;

Pc9=K9/k;

Pc10=K10/k;

Pc11=K11/k;

Pc12=K12/k;

vec_prob=[Pc1 Pc2 Pc3 Pc4 Pc5 Pc6 Pc7 Pc8 Pc9 Pc10 Pc11 Pc12];

Pmax=max(vec_prob);

%Se calcula la clase asignada

if Pc1==Pmax & Pc1*100>=umbral,

cla_asig=1;

elseif Pc2==Pmax & Pc2*100>=umbral,

cla_asig=2;

elseif Pc3==Pmax & Pc3*100>=umbral,

cla_asig=3;

elseif Pc4==Pmax & Pc4*100>=umbral,

cla_asig=4;

elseif Pc5==Pmax & Pc5*100>=umbral,

cla_asig=5;

Page 259: UNIVERSIDAD AUTÓNOMA METROPOLITANAnewton.azc.uam.mx/mcc/01_esp/11_tesis/tesis/terminada/... · 2006-10-06 · se usaron como atributos en los clasificadores de Bayes y KNN en sus

259

elseif Pc6==Pmax & Pc6*100>=umbral,

cla_asig=6;

elseif Pc7==Pmax & Pc7*100>=umbral,

cla_asig=7;

elseif Pc8==Pmax & Pc8*100>=umbral,

cla_asig=8;

elseif Pc9==Pmax & Pc9*100>=umbral,

cla_asig=9;

elseif Pc10==Pmax & Pc10*100>=umbral,

cla_asig=10;

elseif Pc11==Pmax & Pc11*100>=umbral,

cla_asig=11;

elseif Pc12==Pmax & Pc12*100>=umbral,

cla_asig=12;

elseif Pc1==Pc2==Pc3==Pc4==Pc5==Pc6==Pc7==Pc8==Pc9==Pc10==Pc11==Pc12,

cla_asig=13;

else

cla_asig=13;

end %del if

m_confusion(cla_verdadera,cla_asig,i)=m_confusion(cla_verdadera,cla_asig,i)+1;

promedios(i)=(sum(diag(m_confusion(:,:,i))))/6;

end %del for que recorre la base de datos de aprendizaje

%m_confusion(my,pg:i)=m_confusion(my,pg:i)+1;

%m_confusion;

end %de for que repite 20 veces esto aleatoriamente

PERFORMANCE=1/20*sum(promedios);

ERROR=100-PERFORMANCE;

matriz_k_vs_error_12(h,2)=ERROR;

ERROR=0;

end

matriz_k_vs_error_12

disp('')

disp('')

save mamografia1_t_vent12_acp matriz_k_vs_error_12

HORA_DE_INICIO

HORA_DE_TERMINACION=datestr(clock,0)