“Modelo Tuco” – Algoritmo para diagnóstico de melanomas aplicando un modelo híbrido entre una red neuronal convolucional y random forest - Calderon Ortiz, Jose Dario (2023)
El propósito de esta investigación es crear un modelo combinado que integre una CNN con Random Forest con el fin de clasificar adecuadamente lunares como benignos o malignos. Dicha combinación de metodologías se desarrolla con el fin de aumentar la eficiencia si se compara el trabajo de los algoritmos por separado. Esta metodología de desarrollo se llevó a cabo con el lenguaje de programación Python, escrito en el entorno de ejecución de Google Colaboratory. Se empezó importando las librerías que se van a utilizar para la escritura y ejecución del código de programación, una vez hecho eso, se desarrollaron funciones con el fin de ahorrar escrituras de líneas de código más adelante, y minimizar el uso de los recursos computacionales. Estas funciones son: Función de entrenamiento, Función de varianza y Función de matriz de confusión. Finalizado esto, se empezó con el procesamiento y tratamiento de las imágenes. Se cargaron las imágenes separándolas en dos variables: Benigno y Maligno (las imágenes de lunares benignos son 2,645 y las imágenes de lunares malignos son 733, teniendo un desequilibro en la data). A todas estas variables se les implementó la técnica de data augmentation con el objetivo de evitar el sobreajuste durante la fase de entrenamiento y potenciar la eficacia del modelo. Culminando esto se procedió con la creación del modelo híbrido. La creación del modelo híbrido se empezó cargando la red neuronal convolucional pre-entrenada ResNet50, pero sin su última capa de clasificación, después se cargó una capa llamada GlobalAveragePooling2D añadiéndola a la CNN previamente cargada, esta capa ayuda a que las características que se extraerán de las imágenes se conviertan en un vector de una dimensión, facilitando su entrada para la clasificación con Random Forest. Teniendo el modelo compilado se procedió a la extracción de características de las imágenes con dicho modelo, para después concatenarlas en una variable llamada “X” y, creando etiquetas (benignas = 0 y malignas = 1) y concatenarlas en una variable llamada “y”. Con estas variables se realizó un equilibrio de datos con la metodología de RandomOverSampler debido al desbalance existente en la data. Y para finalizar con la creación del modelo híbrido se procedió con la estandarización y PCA (Principal Component Analysis) de los datos, obteniendo como resultado que con 700 componentes o características se puede tener el 99.9% de la varianza explicada acumulada (este procedimiento se desarrolló con la función de varianza anteriormente definida), esto es necesario para trabajar únicamente con las características de mayor peso y relevancia minimizando el uso de los recursos computacionales. Finalmente se procedió con el entrenamiento aplicando la metodología de Random Forest que se encuentra en la función de entrenamiento previamente definida. Con este entrenamiento se crearon modelos de acuerdo con la cantidad y variación de sus hiperparámetros. Con la ayuda de la función de matriz de confusión se realizó el análisis de las métricas de todos los modelos obteniendo uno con las mejores métricas el cual se denominó Modelo Tuco.