Full text
i Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Radiómica para el análisis automático de mamografías Autor: José Manuel Román Moguer Tutoras: María del Carmen Serrano Gotarredona y Begoña Acha Piñero Dpto. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
ii
iii Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Radiómica para el análisis automático de mamografías Autor: José Manuel Román Moguer Tutoras: María del Carmen Serrano Gotarredona y Begoña Acha Piñero Catedráticas de Universidad Dpto. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
iv
v Trabajo Fin de Grado: Radiómica para el análisis automático de mamografías Autor: José Manuel Román Moguer Tutoras: María del Carmen Serrano Gotarredona y Begoña Acha Piñero El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2024 El Secretario del Tribunal
vi
vii A mi familia A mis maestros A mis amigos
viii
ix AGRADECIMIENTOS Para concluir mi etapa como estudiante del grado de Ingeniería de las Tecnologías de Telecomunicación, me gustaría agradecer a todas y cada una de las personas que han hecho posible, junto a mí, el finalizar este largo y complejo camino. En primer lugar, me gustaría agradecer a esas dos personas que nunca me han soltado de la mano, a mis padres: José Manuel y Conchi. Gracias por desviviros tanto por mí como por mis hermanas y por cuidarnos siempre tan bien como lo han hecho. Gracias a ellos por aportarme cada uno su apoyo personal e incondicional; y por permitirme ser el hombre en el que, sin darme cuenta, me he convertido. También me gustaría agradecer a mis hermanas, Conchi y Elisabeth, por guiarme siempre y sostenerme en los momentos más complicados, por ver en mí una capacidad para lograr metas que ni yo mismo veía. Me gustaría agradecer a una persona que ha sido bastante influyente para mí, mi cuñado Quique, el cual pese a llegar más tarde a mi vida, siempre ha estado en el momento clave, confiando y sacando lo mejor de mí. A mis amigos del pueblo, mil gracias a cada uno de vosotros. Sin vuestras largas charlas y vuestro apoyo incondicional, tanto en los buenos como en los malos momentos, nada de esto habría sido posible. A mis amigos de la universidad, los cuales en los momentos de mayor debilidad en este proceso, habéis sacado un empujón de mí, que os lo voy a agradecer de por vida. También me gustaría agradecer a mis amigos de Bolonia. Llegasteis a mi vida de manera inesperada, pero os quedasteis de la forma más sana. Gracias por ser un apoyo fundamental y por estar conmigo en cada momento importante. Por último, quiero expresar mi profundo agradecimiento a mis profesores a lo largo de la carrera, y en especial a mis tutoras de TFG, Carmen y Begoña. Su paciencia infinita conmigo durante este largo proceso y su apoyo constante han sido fundamentales para la realización de este trabajo. Su dedicación ha sido una fuente de inspiración para mí como futuro ingeniero. Sé que es probable que me deje a algunas personas sin mencionar, pero este agradecimiento es solo una pequeña parte de lo que todos vosotros merecéis. Sin vosotros, nada de esto hubiera sido posible. Gracias a todos, de corazón. José Manuel Román Moguer Sevilla, 2024
xvi
xvii ÍNDICE DE ILUSTRACIONES Ilustración 1. Flujo de trabajo de la radiómica [25] 7 Ilustración 2. Importación de librerías 8 Ilustración 3. Extractor de radiomics (para el caso del grupo ‗gldm‘) 9 Ilustración 4. Manipulación de lista y almacenado en archivo ―.mat‖ 9 Ilustración 5. Extracción de regiones 9 Ilustración 6. Propiedades extraídas de las regiones 10 Ilustración 7. Comando de Matlab ―ttest2‖ 12 Ilustración 8. Caso linealmente separable [47] 13 Ilustración 9. Caso linealmente no separable [47] 13 Ilustración 10. Matriz de confusión 14 Ilustración 11. Histograma ―Percentil 90‖ 17 Ilustración 12. Histograma ―Mediana‖ 18 Ilustración 13. Histograma ―RMS‖ 18 Ilustración 14. Histograma ―Ratio Perímetro Superficie‖ 19 Ilustración 15. Histograma ―Esfericidad‖ 20 Ilustración 16. Histograma ―Excentricidad‖ 20 Ilustración 17. Histograma ―Compacidad‖ 21 Ilustración 18. Histograma ―GLDM No dependencia en uniformidad‖ 21 Ilustración 19. Histograma ―NGTDM Contraste‖ 22
xviii
1 1 CONTEXTO CLÍNICO l cáncer representa uno de los principales problemas de salud para la población mundial. En España, al igual que en muchos otros países, el cáncer de mama es una de las enfermedades más frecuentes entre la población femenina [1]. Según datos extraídos de la OMS (Organización Mundial de la Salud), en el año 2012 el diagnóstico mundial fue de unos 1,67 millones de mujeres enfermas por este tipo de cáncer; mientras que en el año 2020, este número llegó a aumentar hasta los 2,3 millones de mujeres enfermas [2], lo que muestra un amplio aumento con el paso de los años, debido al incremento y al avance en las técnicas de detección. El éxito ante cualquier enfermedad radica en el desarrollo en su detección y tratamiento. En nuestro caso, centrándonos en la detección de esta enfermedad, tras tantos años de investigación, los profesionales en el sector han llegado a la conclusión de que tanto las características de formas como las de textura de la masa tumoral definen, en su gran mayoría, la malignidad de ésta. Los parámetros característicos que alarman de malignidad son los siguientes [3]: aumento de la densidad en el tejido mamario, distorsión en la morfología mamaria, heterogeneidad en la densidad del tejido de la masa, contornos irregulares, etc. Sin embargo, el desarrollo de la tecnología informática, en concreto el desarrollo de la conocida IA (Inteligencia Artificial) está revolucionando el mundo de la medicina en muchos campos, ya que está demostrando ofrecer una gran mejora en cuanto a resultados junto a los que ya obteníamos con técnicas de detección más tradicionales [4]. Hoy en día, se recogen enormes cantidades de imágenes en bases de datos mundialmente conocidas para ofrecerse como ayuda en el desarrollo de la investigación biomédica. En este contexto, hemos hecho uso de la conocida base de datos CBIS-DDSM (Curated Breast Imaging Subset of Digital Database for Screening Mammography) [5], la cual es una versión mejorada y actualizada de la base de datos DDSM. Dicha base de datos está especializada en imágenes mamográficas, conteniendo imágenes sobre casos malignos y benignos de masas tumorales en mamas. Esta base de datos ofrece, además, segmentaciones de ROIs (Region Of Interest) detalladas por profesionales, datos seleccionados y supervisados por radiólogos altamente cualificados, entre muchas otras herramientas. Además, esta base de datos ofrece las máscaras de las masas tumorales presentes en las imágenes, precisamente de aquí se extraen las características radiómicas. E
2 2 ESTADO DEL ARTE 2.1. Inteligencia artificial Lo que conocemos como IA está basada en una tecnología informática, la cual pretende dotar a las máquinas de la capacidad de aprender, haciendo uso de enormes cantidades de datos, con el fin de simular el funcionamiento de la inteligencia humana. Esta tecnología posee una característica muy importante, la adaptabilidad frente a los distintos campos de la ciencia. En nuestro caso, vamos a centrarnos en su aplicación en el campo de la medicina, ya que, a pesar de ser una tecnología desarrollada en los años 50 del pasado siglo, hasta hace pocos años no ha adquirido verdaderamente su peso, como lo fue en los años 2000, con la aparición del ―Deep Learning‖ (aprendizaje profundo, en español) [6]. Su desarrollo se remonta al año 1943, cuando la unión del matemático estadounidense Walter Pitts y el neurólogo estadounidense, Warren McCulloch, dio lugar al primer modelo de red neuronal en la historia [7]. Años después, en 1956, fue cuando se dio a conocer el nombre de ―Inteligencia Artificial‖, cuando un grupo de científicos estadounidenses formado por John McCarthy, Marvin Minsky, Nat Rochester y Claude Shannon durante una conferencia lo mencionaron por primera vez en la historia [8]. Su potencial está basado, principalmente, en la capacidad de predicción ante diversos puntos claves en nuestras vidas, como puede ser desde la ayuda en la educación de las próximas generaciones hasta el desarrollo de técnicas para el desarrollo de enfermedades. Esta capacidad de predicción está fundamentada en modelos analíticos relacionales y lógicos [9]. Un punto clave dentro de la IA es lo que conocemos como ―Machine Learning‖ (aprendizaje automático, en español), lo cual dota a la máquina de la capacidad de ―aprender‖ sin estar programada para un uso en concreto, aportando una infinidad de beneficios tecnológicos. Entre la infinidad de avances desarrollados gracias al machine learning, uno de los principales fue la evolución hacia las conocidas RNA (redes neuronales artificiales), en las que cada neurona interviene a fin de simular el comportamiento del cerebro humano. Sin embargo, estas redes están evolucionando hacia las que conocemos ahora como redes neuronales cada vez más profundas, las cuales se están basando en el conocido ―Deep Learning‖. 2.1.1 Machine Learning El campo que abarca el machine learning va desde la clasificación de imágenes, la extracción de características, la predicción de datos, hasta muchos otros más, ya que es imposible mencionar todas sus aplicaciones. Su funcionalidad está basada en el uso de matrices numéricas, vectores, tensores y cálculos estadísticos y probabilísticos [10]. Al no ser un modelo programado y definido para una finalidad en concreto, y basarse en modelos de aprendizaje de datos, se distinguen distintos tipos de modelos según su tipo de aprendizaje [11]: Aprendizaje supervisado: los datos que usan son previamente etiquetados, para lo que se requiere de intervención humana. El conjunto de datos que se le introduce al sistema se divide en dos: grupo de entrenamiento y grupo de prueba. Entre los distintos algoritmos que implementan este modelo de aprendizaje podemos destacar: Decision tree: el cual se basa en un grafo donde se representan las distintas opciones y los resultados, se llama así por su forma de árbol. Naive Bayes: basado en el teorema de Bayes, se suele usar para clustering.
3 SVM (Support Vector Machine): se basa en una clasificación utilizando lo que se conoce como ―truco del kernel‖ (espaciar las clases, maximizando las distancias entre clases y el margen, consiguiendo minimizar el error a la hora de la clasificación). Aprendizaje no supervisado: se basa, al igual que el aprendizaje supervisado, en un modelo entrenado, pero, a diferencia del anterior, éste no consta de datos previamente etiquetados, por lo que deduce patrones y salidas a partir de lo aprendido. El principal algoritmo basado en este tipo de aprendizaje es el conocido como: K-Means: basado en la creación de ―K‖ número de centroides, uno para cada clúster, que han de ubicarse estratégicamente para que estén lo más lejos posible unos de otros, produciendo así el mejor resultado de clasificación viable. Aprendizaje semisupervisado: se trata de una combinación de los dos métodos anteriores. Dentro de los algoritmos que lo implementan, podemos destacar: TSVM (Transductive SVM): se usa para el etiquetado de datos, de manera que maximice la distancia entre el grupo de datos etiquetados y los no etiquetados. Aprendizaje de refuerzo: Se basa en un modelo de aprendizaje en el que, en función del resultado que genere, se aplica un refuerzo para mejorar su funcionamiento. Esta tecnología del Machine Learning se desarrolla en distintos lenguajes de programación como son R (para el análisis estadístico y la representación de datos), Python, Matlab o Julia [12]. Entre todos estos lenguajes destacan ciertas librerías usadas según el propósito del sistema, enfatizando Scikit-Learn para la clasificación de imágenes o extracción de características, o Statsmodels para el desarrollo de modelos estadísticos. 2.1.2 Deep Learning Abarca un subconjunto del aprendizaje automático, diseñado para el abordaje de problemas de mayor magnitud de datos, para ello, se hace uso de las conocidas redes neuronales, las cuales existen distintos tipos [13]. Estas redes han demostrado resultados bastante mejorados respecto a aquellos algoritmos pertenecientes al aprendizaje máquina. Este citado campo de la IA ha tenido su máximo punto de desarrollo en los últimos años. Actualmente, se aplica para temas como el procesamiento del lenguaje o la visión artificial. Dentro del aprendizaje profundo se distinguen de nuevo distintos modelos de aprendizaje, como lo hacía también el aprendizaje máquina [14]: Aprendizaje profundo supervisado: se basa en un modelo con datos previamente etiquetados, y basa su cálculo de salida a partir del ajuste de parámetros de la red como, por ejemplo, los pesos de las conexiones entre neuronas y las funciones de pérdidas. Se aplica este tipo de aprendizaje en redes como las RNN (Recurrent Neural Network, en español redes neuronales recurrentes), CNN (Convolutional Neural Network, en español redes neuronales convolucionales) y las DNN (Deep Neural Network, en español redes neuronales profundas). Frente a otros modelos de aprendizaje, este muestra un mayor rendimiento a la hora del aprendizaje de la red.
4 Aprendizaje profundo no supervisado: no hace uso de datos previamente etiquetados. Lo encontramos en las redes GAN (Generative Adversarial Network, en español redes generativas adversarias), dentro del campo de la reducción de dimensiones y el agrupamiento; así como también se ha implementado en las conocidas RNN. Comúnmente, este modelo se usa para tareas de agrupación. Aprendizaje profundo semisupervisado: en este modelo los datos no están totalmente etiquetados. Frente al modelo supervisado, muestra la capacidad de disminuir el volumen de datos etiquetados. Podemos encontrar su implementación dentro de las RNN o las GAN. Aprendizaje profundo por refuerzo: fue desarrollado por la empresa americana Google en el año 2013, con el conocido Google Deep Mind (modelo basado en el refuerzo con el entorno pero, a su vez, depende en gran parte del número de parámetros). No es recomendable en modelos con una gran cantidad de parámetros, ya que puede reducir notablemente la velocidad del aprendizaje. Dentro del aprendizaje profundo se distinguen distintos tipos de redes según su estructura y funcionalidad [15]: Redes neuronales convolucionales (CNN): es el tipo de red más famoso dentro del aprendizaje profundo, especialmente para el uso de aplicaciones de imágenes. Este tipo de red está basado en la imitación de la anatomía neuronal humana. Su principal diferencia respecto a las redes neuronales tradicionales es el hecho de convolucionar matrices para obtener resultados, en lugar de multiplicaciones como en las redes tradicionales. Se caracteriza por dos atributos principales: la escasez de interacciones (consigue disminuir el tamaño del núcleo del modelo frente al tamaño de la entrada, lo que consigue que la carga de uso de la memoria computacional se reduzca) y la compartición de parámetros (también conocido como pesos vinculados) entre las entradas del sistema. Realizan tres pasos principales: convoluciones para generar activaciones lineales, ejecución de estas activaciones a través de funciones de activación para generar un mapeo a la salida y, por último, se da la agrupación para modificar así la ubicación de una salida de la red en función de sus salidas cercanas. La primera red de este tipo que resultó exitosa fue la LeNet [16], diseñada por Yann LeCun en los años 90 del siglo pasado, llegando hasta el desarrollo de la LeNet-5, la cual alcanza una precisión del 99,2 %. Ulteriormente, se desarrollaron otras redes como GoogLeNet, de la empresa Google, o la conocida AlexNet [14]. La arquitectura de estas redes constan de varias capas: capa convolucional (encargada de la definición del núcleo y del cálculo convolucional), capa de agrupación (encargada del submuestreo de los mapas de características generados como resultado de las convoluciones), capa de activación (encargada de las funciones de activación, la más conocida de las funciones de activación es la ReLU [17]) y, por último, la capa totalmente conectada (típicamente es la capa final de la arquitectura CNN, encargada de la conexión de cada neurona con todas las neuronas de la capa anterior). En la capa de salida de la red se implementan distintos tipos de funciones para el cálculo de las pérdidas. Redes neuronales recurrentes (RNN): se caracterizan por su tratamiento con datos secuenciales y por la compartición de parámetros. La red se organiza en bucles en lugar de capas, como ocurre en las CNN [18]. LTSM (Long Short-Term Memory en español memoria a corto y largo plazo) es el tipo de red RNN más común. Fueron introducidas en el año 1997 [19]. Redes generativas adversarias (GAN): en este tipo de redes los datos de las entradas se combinan con predictores estadísticos para generar las salidas. Se caracterizan por su facilidad de entrenamiento [18]. Fueron introducidas por primera vez en el año 2014 y están basadas en el modelo de aprendizaje no supervisado. Efectúan principalmente 3 pasos: generación de números aleatorios, discriminación de los
5 números devolviendo probabilidades y, por último, retroalimentación para mejorar el rendimiento del modelo. Por último, dentro del Deep Learning existe una técnica de aprendizaje profundo llamada Transfer Learning (en español, aprendizaje por transferencia), la cual se caracteriza por permitir la reutilización de un modelo entrenado para una tarea en concreto, en otra aplicación relacionada. Herramientas como TensorFlow permiten este tipo de aprendizaje [20]. 2.2. Radiómica Según Kumar et al. [21], la radiómica está centrada en la extracción de características cuantitativas procedentes de las imágenes médicas obtenidas por TAC (Tomografía Axial Computarizada), PET (Tomografía por Emisión de Positrones) o RM (Resonancia Magnética). Existen dos tipos diferenciados de radiómica [22] [23]: Basada en características: previo al paso de la extracción de características, los datos a explotar requieren de una etapa de preprocesado para ofrecer una buena reproducibilidad en los resultados, para ello, se realiza una etapa de interpolación en la dimensión de los vóxeles de la imagen y una etapa de discretización de niveles de gris, garantizando una mejora en la comparación frente a distintos casos de escáneres, pacientes, etc. Además, dentro de la etapa de preprocesamiento, podemos encontrar etapas como el suavizado de la imagen o la reducción de ruido. Una vez preparados los datos, tiene lugar la etapa de extracción, lo que permite extraer un gran número de características, todas ellas matemáticamente definidas y recogidas en distintos grupos: Características de forma: describen relaciones geométricas dentro de las regiones segmentadas, existiendo 2 subgrupos, donde se dividen por características 2D y 3D. Para nuestro proyecto solo son necesarias características bidimensionales debido a nuestras imágenes de entrada, por lo que podemos destacar dentro de todas las existentes: Elongación. Longitud del eje mayor y menor. Perímetro. Relación perímetro-superficie. Esfericidad. Características de primer orden: están basadas en la distribución de los niveles de intensidad de la imagen. Permiten hallar distintos parámetros, entre los que podemos destacar: Percentil 10 y 90. Energía Curtosis. Desviación media absoluta. Mediana. Máximo y mínimo. Uniformidad. Varianza. Asimetría. Características de segundo orden: representan la información textural de la imagen, la cual se define mediante distintos tipos de matrices, donde encontramos:
6 GLRLM (Matriz de longitud de ejecución de niveles de gris): estas matrices se especializan en la cuantificación de secuencias de píxeles consecutivos que tienen igual nivel de gris dentro de la imagen. Podemos destacar las siguientes características: o No uniformidad de nivel de gris. o No uniformidad de nivel de gris normalizada. o Varianza de nivel de gris. o Énfasis a largo plazo. o Énfasis en la ejecución de niveles de grises bajos. o Énfasis en la ejecución de niveles de grises altos. NGTDM (Matriz de diferencia de niveles de gris vecinos): describen las diferencias entre los tonos de nivel de grises vecinos. Dentro de las características que permiten obtener, podemos destacar: o Ocupación. o Contraste. o Aspereza. o Fuerza. GLCM (Matriz de coocurrencia de niveles de gris): mide la frecuencia en la ocurrencia de los niveles de gris dentro de la imagen. Permiten obtener las siguientes características, entre otras: o Autocorrelación. o Diferencia de entropía. o Contraste. o Correlación. o Diferencia de varianza. GLSZM (Matriz de zonas de tamaño de niveles de gris): cuantifican las zonas de un mismo nivel de gris dentro de la imagen. Podemos destacar las siguientes características que nos proporcionan: o Énfasis en área pequeña. o Zona de entropía. o Zona de varianza. o Tamaño de zona no uniforme. o Énfasis en área grande. GLDM (Matriz de dependencia de niveles de gris): miden las dependencias existentes entre un píxel y sus vecinos, permitiendo obtener estas características, entre muchas otras: o Dependencia en entropía. o Dependencia en varianza. o Dependencia en no uniformidad. o Énfasis de baja dependencia. o Énfasis de alta dependencia. Basada en el aprendizaje profundo: se basa en el uso de redes neuronales para generar en salida aquellas características más representativas según los datos introducidos a la red. El uso de estas redes, obvia la necesidad de segmentación previa a la extracción.
7 Un problema que podemos encontrar en este grupo dentro de la radiómica es el sobreajuste del sistema, aplicándose, frente a ello, funciones de regularización y abandono. A pesar de ser una tecnología muy prometedora en el campo de la investigación, aún necesita del apoyo humano, ya que es una herramienta complementaria para el diagnóstico de las imágenes. Sin embargo, ofrece una gran ayuda en la mayoría de los casos a todo aquel profesional que se dedique al campo del diagnóstico sanitario [24]. Además, su uso conjunto con herramientas clasificadoras como SVM es de gran aplicación en el campo de la detección oncológica. Se ha comprobado en la mayoría de los casos que la radiómica basada en aprendizaje profundo ofrece una mayor reproducibilidad frente a aquella basada en el cálculo matemático de características, ya que esta última depende en mayor parte de la técnica de captación de la imagen. No obstante, aquella basada en las redes neuronales ofrece mayor generalización debido al uso de este tipo de redes. Ilustración 1. Flujo de trabajo de la radiómica [25] En el caso concreto del cáncer de mama se obtienen biomarcadores procedentes de la imagen como las microcalcificaciones, la densidad mamaria o la genómica del tumor [26]. Entre las librerías más usadas en radiómica se encuentran PyRadiomics [23], LifeX [27], QIFE [28] o MaZda [29].
14 4 EVALUACIÓN DEL ALGORITMO ras extraer, seleccionar y clasificar las características procedentes de las imágenes mamográficas, se realiza el análisis de aquellos parámetros que evalúan la eficacia del algoritmo diseñado. Esta evaluación parte del cálculo de una serie de parámetros: TP (True Positive, en español verdadero positivo): referido a cuando la predicción y los valores reales son positivos. FP (False Positive, en español falso positivo): referido a cuando la predicción toma un valor positivo, mientras que el valor real no lo es. TN (True Negative, en español verdadero negativo): referido a cuando la predicción y los valores reales son negativos. FN (False Negative, en español falso positivo): referido a cuando la predicción toma un valor negativo, mientras que el valor real no lo es. Estos cuatros parámetros son los que forman la conocida matriz de confusión, la cual es la herramienta que se usa para evaluar la eficacia de los algoritmos basados en aprendizaje supervisado [51]. Esta herramienta trata de evaluar las prestaciones del sistema, comparando los valores reales detectados por profesionales en la materia, los cuales forman la conocida ―Ground-Trouth‖, y los valores predichos por la IA. Ilustración 10. Matriz de confusión Con estos cuatro parámetros ya es posible la evaluación del algoritmo de clasificación con la ayuda de las siguientes fórmulas: Sensitivity, en español sensibilidad: porcentaje de pacientes con la enfermedad que han recibido un resultado positivo en cuanto a detección de la enfermedad. Sen= TP TP+FN T
15 Specificity, en español especificidad: porcentaje de pacientes sin la enfermedad que ha recibido un resultado negativo en cuanto a detección de la enfermedad. Spec= TN TN+FP PPV (Positive Predictive Value, en español valor predictivo positivo): muestra la probabilidad de que el paciente tenga la enfermedad si el algoritmo dice que es positiva la detección. PPV= TP TP+FP NPV (Negative Predictive Value, en español valor predictivo negativo): muestra la probabilidad de que el paciente no tenga la enfermedad si el algoritmo dice que es negativa la detección. PPN= TN TN+FN
16 5 RESULTADOS ara finalizar con este proyecto, tras las fases de extracción, selección y posterior clasificación, se muestran los resultados obtenidos, separando estos resultados en dos grandes conjuntos: resultados de las fases de extracción y selección, y resultados de la fase de clasificación. 5.1. Resultados de las fases de extracción y selección Tras las fases de extracción, hemos extraído un total de 102 características entre los 7 grupos radiómicos existentes. Sin embargo, todas estas características extraídas no son de utilidad para este estudio, por lo que se ha aplicado el criterio del P-Value a todas estas características, obteniendo un total de 7 características que satisfacen el criterio del umbral del 0.1, 4 características que satisfacen el umbral del 0.05; y, por último, ninguna característica que satisfaga el umbral del 0.01, el cual es el más restrictivo de los que hemos aplicado. Todas las características aplicadas pertenecen al grupo de las características de primer orden, las cuales definen parámetros estadísticos obtenidos a partir de la distribución en los niveles de grises a través de los píxeles, dentro de la imagen. Las 7 características extraídas y seleccionadas bajo el umbral del 0.1 del P-Value son: Percentil 90: mide el estadístico ―Percentil 90‖ [52] a partir del conjunto de datos. Energía: mide la magnitud de los valores de los píxeles en una imagen; si se obtiene un valor alto, quiere decir que la suma de los cuadrados de estos valores es alta [23]. Energía = ∑(𝑋(𝑖))2 𝑁𝑝 𝑖=1 Siendo ―X(i)‖ el conjunto de muestras de las intensidades. Energía total: a diferencia de la característica de energía convencional, esta está destinada al análisis de imágenes en 3D, por lo que para nuestro estudio no parece demasiado significativa. Máximo: mide el máximo en el conjunto de datos [23]. Máximo = max(X) Desviación absoluta media (MAD, Mean Absolute Deviation en inglés): refleja la distancia media de los valores de intensidad respecto al valor medio de la imagen [23]. MAD= 1 𝑁𝑝∑|𝑋(𝑖)− 𝑋 | 𝑁𝑝 𝑖=1 Mediana: mide la intensidad de nivel de gris situado en la mitad del rango dinámico de los valores de los píxeles de la ROI. P
17 Media de la raíz cuadrada (RMS, Root Mean Squared en inglés): refleja la raíz cuadrada media de todos los niveles de intensidad al cuadrado. RMS=√1 𝑁𝑝∑(𝑋(𝑖))2 𝑁𝑝 𝑖=1 Estas son las características que satisfacen el umbral de 0.1 para el P-Value. Las características que satisfacen el umbral del 0.05 son el percentil 90, el máximo, la desviación absoluta media y el error cuadrático medio y, por último, para el umbral del 0.01, ninguna característica lo satisface. Toda esta información que nos aportan las características seleccionadas está contenida en el ámbito de la distribución de niveles de intensidad dentro de la imagen la cual nos da información sobre la textura y la distribución de los valores. En cuanto a las características que aportan información sobre la malignidad en masas tumorales mamarias, como ya se ha mencionado anteriormente, las distorsiones en la morfología mamaria o los aumentos en la densidad del tejido, pueden ser determinantes a la hora de analizar y dictaminar un análisis preciso sobre estos cuerpos. Para ello, en este trabajo se ha realizado el cálculo de características de forma, a partir de la librería de Radiomics y mediante el módulo ―Measure‖ de la librería Skimage, además de características de textura también con Radiomics. Las características de primer orden extraídas y posteriormente seleccionadas, muestran unos histogramas, entre muestras benignas y malignas, con la siguiente forma: Ilustración 11. Histograma ―Percentil 90‖
18 Ilustración 12. Histograma ―Mediana‖ Ilustración 13. Histograma ―RMS‖
19 Para analizar estos histogramas, hemos usado el parámetro de medición de la distancia de Bhattacharyya [54], el cual dentro del campo del procesamiento digital de imágenes, mide la similitud entre distribuciones, a partir de sus histogramas; lo que nos daría información sobre si son realmente significativas esas características o no. Las características de primer orden seleccionadas muestran un amplio rango de distancias: Percentil 90: 0.2085. Energía y energía total: 0.2863. Máximo: 0.5020. MAD: 0.0642. Mediana: 0.2451. RMS: 0.1792. Vemos en general cómo estas características presentan mayoritariamente distancias en el rango de 0.1 a 0.3, donde observamos 5 características dentro de este rango, una por debajo de este y otra que supera el rango. Por lo regular, aquellas características que están seleccionadas como altamente significativas, deberían presentar un valor alto para esta distancia, debido a la gran diferencia que debería existir entre sus histogramas. Sin embargo, las características de forma, tanto de radiomics como de measure, y las de textura, muestran histogramas con el siguiente patrón: Ilustración 14. Histograma ―Ratio Perímetro Superficie‖
20 Ilustración 15. Histograma ―Esfericidad‖ Estos dos últimos histogramas muestran características bidimensionales de forma que, a priori, se esperaba que hubieran sido significativas, ya que nos da información morfológica sobre las masas. Sin embargo, estas características de radiomics muestran que de las 9 características que existen para este grupo, 8 siguen manteniendo la tendencia a quedarse dentro del rango de distancias de 0.1 a 0.3 y una se queda por debajo del rango; esto refleja una tendencia parecida con respecto a las características seleccionadas, mostrando como la mayoría de las características caen en el rango de 0.1 a 0.3, de igual forma para las características de primer orden seleccionadas. A continuación, se muestran histogramas de características bidimensionales de forma obtenidos a partir de ―measure‖ y, por último, histogramas que reflejan aquellas características matriciales de textura. Ilustración 16. Histograma ―Excentricidad‖
21 Ilustración 17. Histograma ―Compacidad‖ Ilustración 18. Histograma ―GLDM No dependencia en uniformidad‖
22 Ilustración 19. Histograma ―NGTDM Contraste‖ En general, el hecho de que aquellas características seleccionadas deban presentar una distancia alta respecto a aquellas no seleccionadas, no se cumple; la mayoría de las características mantienen una misma tendencia en cuanto a los valores de las distancias, conservando todas ellas la mayoría de sus características dentro del rango de distancias de 0.1 a 0.3. Características de textura GLCM: 24 características en total. 16 características dentro del rango de 0.1 a 0.3, 7 por debajo del rango y 1 lo supera. Características de textura GLRLM: 16 características en total. 9 características dentro del rango de 0.1 a 0.3, 5 por debajo del rango y 2 lo superan. Características de textura GLSZM: 16 características en total. 7 características dentro del rango de 0.1 a 0.3, 7 por debajo del rango y 2 lo superan. Características de textura NGTDM: 5 características en total. 5 características dentro del rango de 0.1 a 0.3. Sin embargo, existen dos grupos de características donde esta tendencia de tener la mayoría de sus características en el rango de distancias de 0.1 a 0.3 no lo cumplen: Características de textura GLDM: 14 características en total. 6 características dentro del rango de 0.1 a 0.3, 7 por debajo del umbral y 1 lo supera. Características de forma (modulo ―measure‖): 12 características en total. 1 característica dentro del rango de 0.1 a 0.3 y 11 por debajo del rango. Por lo tanto, estos dos últimos grupos de características, en concreto las características de forma extraídas con el módulo ―measure‖ de Skimage, obtienen distancias acorde a lo que se esperaba, debido a que presenta una gran población de características dentro del rango de las distancias de Bhattacharyya relativamente bajas.
23 5.2. Resultados de la fase de clasificación Por último, tras realizarse la extracción de todas las características a partir del conjunto de 40 imágenes iniciales, continuando con la selección de aquellas que parecen ser significativas, bajo el criterio del P-Value, se aplica la clasificación mediante una máquina SVM, y se obtienen unos resultados, un tanto esperados, ya que aquellas características que, a priori, suenan como más significativas para el análisis de un cuerpo tumoroso, no han sido seleccionadas, por lo que no se esperan unos resultados de clasificación con mucha precisión. Para esta clasificación, se usa un número de folds, relativamente alto, ya que se conoce que el sistema de clasificación SVM parte de un conjunto de características relativamente escaso, por lo que se pretende dotar al sistema de robustez y precisión, aumentando este número de pliegues, forzando al sistema a usar la gran mayoría del conjunto de datos para las fases de entrenamiento y de prueba. Sin embargo, este modelo no muestra unos resultados tan negativos como se podría esperar de antemano, ya que se obtiene un alto valor en la especificidad, lo que asegura una baja tasa de falsos positivos, indicando con alta probabilidad, el diagnóstico acertado para pacientes que no padezcan tumores malignos. Además, presentan un valor predictivo positivo con un valor, relativamente, alto; lo que indica que en caso de predecir a un paciente la presencia de un cuerpo tumoral maligno en su organismo, existen altas probabilidades de no errar en este diagnóstico. Por otra parte, el modelo carece de precisión en otros aspectos, ya que se muestra una baja sensibilidad, por lo que es altamente probable identificar un cuerpo tumoral y no acertar con su malignidad. Asimismo, este modelo también muestra una gran debilidad con su valor predictivo negativo; en caso de detectar un tumor benigno, es posible que no esté en lo cierto, lo que puede conllevar a la futura detección de cuerpos malignos en el tumor previamente diagnosticado como benigno, lo que no es deseable en una aplicación clínica. Estas son las fortalezas y debilidades que muestra nuestro sistema, sin embargo, es bastante mejor de lo que se podría esperar, viendo la escasez y rareza en las características de las que partimos para construir el sistema de clasificación. En general, como se puede observar, este sistema tiende a clasificar las masas tumorales en benignas. Este hecho comúnmente se puede deber al desbalance de datos, el cual se da en conjuntos donde los datos benignos son mayores inicialmente que los datos malignos a analizar. Este es un hecho característico porque en nuestro conjunto de datos no sufrimos ese desbalance, sin embargo, los clasificadores suelen tener un umbral ajustable, el cual determina el punto sobre el que se apoyan para clasificar entre las clases existentes. Ajustar este umbral podría haber sido una posible mejora a la hora de obtener mejores resultados en cuanto a la clasificación del sistema. A continuación, se muestra una tabla resumen con todos aquellos parámetros útiles para la clasificación. Verdaderos Positivos 7 Verdaderos Negativos 18 Falsos Positivos 2 Falsos Negativos 13 Sensibilidad 0.35 Especificidad 0.9 Valor Predictivo Positivo (PPV) 0.78 Valor Predictivo Negativo (NPV) 0.58 Tabla 1. Parámetros de clasificación
30 shape_features[i,7]=moments[2,2] shape_features[i,8]=moments[3,3] shape_features[i,9]=moments[1,3] i=i+1 for sub in subdirectories_malignas: image_path = os.path.join(sub, 'original.dcm') mask_path = os.path.join(sub, 'mask.dcm') image = dicom.dcmread(image_path) mask = dicom.dcmread(mask_path) I = np.array(image.pixel_array) I_mask = np.array(mask.pixel_array) I_mask = label(I_mask) regions = regionprops(I_mask, intensity_image=I) for prop in regions: a=prop.area p=prop.perimeter_crofton d=a/p**2 shape_features[i,0]=d shape_features[i,1]=prop.orientation shape_features[i,2]=prop.mean_intensity shape_features[i,3]=prop.eccentricity shape_features[i,4]=prop.solidity moments=prop.weighted_moments_central shape_features[i,5]=moments[0,0] shape_features[i,6]=moments[1,1] shape_features[i,7]=moments[2,2] shape_features[i,8]=moments[3,3] shape_features[i,9]=moments[1,3] i=i+1 features_n = np.zeros((long_benignas+long_malignas,10)) for j in range(10): max=np.max(shape_features[:,j]) min=np.min(shape_features[:,j]) features_n[:,j] = (shape_features[:,j]-min)/(max-min) features_benignas = features_n[:long_benignas, :] features_malignas = features_n[long_benignas:, :] features_benignas_T = features_benignas.T features_malignas_T = features_malignas.T savemat('features_benignas.mat', {'features_benignas': shape_features[0:20,:]}) savemat('features_malignas.mat', {'features_malignas': shape_features[20:40,:]})
31 Código selección con P-Value. % Aquí se deben ir cargando los distintos archivos donde están agrupadas las % matrices con los datos radiómicos extraídos data_shapeBenignas = load('features_benignas.mat'); data_shapeMalignas = load('features_malignas.mat'); A = data_shapeBenignas.features_benignas; B = data_shapeMalignas.features_malignas; [num_filas, num_muestras_A] = size(A); for i = 1:num_filas [h, p_value] = ttest2(A(i, :), B(i, :)); fprintf('P-value entre fila %d de matrix1 y fila %d de matrix2: %.4f\n', i, i, p_value); end
32 Código clasificación con SVM. import numpy as np import os from scipy.io import loadmat data=loadmat('C:/MATRIZ_RESULTADO_SELECCION_TRASPUESTA_cerocomauno.mat') matrix=data['matriz_resultante_traspuesta'] X=matrix[:,0:7] Y=matrix[:,7].astype(int) y_true_all = [] y_pred_all = [] from sklearn import svm from sklearn.model_selection import KFold from sklearn.metrics import confusion_matrix clf = svm.SVC() kf = KFold(n_splits=20) for i, (train_index, test_index) in enumerate(kf.split(X)): print(f"Fold {i}:") print(f" Train: index={train_index}") print(f" Test: index={test_index}") Xtrain=X[train_index,:] Ytrain=Y[train_index] Xtest=X[test_index,:] Ytest=Y[test_index] clf.fit(Xtrain,Ytrain) y_pred=clf.predict(Xtest) y_true_all.extend(Ytest) y_pred_all.extend(y_pred) print(y_pred) print(Ytest) y_true_all = np.array(y_true_all) y_pred_all = np.array(y_pred_all) cm = confusion_matrix(y_true_all, y_pred_all, labels=[1, 2]) TP = cm[1, 1] TN = cm[0, 0] FP = cm[0, 1] FN = cm[1, 0] sensitividad = TP / (TP + FN) especificidad = TN / (TN + FP) valor_predictivo_positivo = TP / (TP + FP) valor_predictivo_negativo = TN / (TN + FN) print(f"Verdaderos Positivos (TP): {TP}") print(f"Verdaderos Negativos (TN): {TN}") print(f"Falsos Positivos (FP): {FP}") print(f"Falsos Negativos (FN): {FN}")
33 print(f"Sensibilidad: {sensitividad}") print(f"Especificidad: {especificidad}") print(f"Valor Predictivo Positivo (PPV): {valor_predictivo_positivo}") print(f"Valor Predictivo Negativo (NPV): {valor_predictivo_negativo}")