Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción al problema.
El contexto de aplicación de este sistema se enfoca en entornos naturales específicos, como parques
naturales o zonas estrictamente protegidas, donde la observación directa de la fauna puede ser complicada o
limitada. Además, se destaca la utilidad de este sistema en situaciones desafiantes, como durante la noche,
en condiciones climáticas adversas o en áreas de difícil acceso.
El objetivo principal de este proyecto es desarrollar una herramienta de clasificación automática de cantos
de aves que permita identificar al menos 20 especies que son típicas del parque natural de Girona. Esto
implicaría la capacidad de analizar grabaciones de audio y reconocer patrones específicos que correspondan
a cada especie de ave.
1. Importación de bibliotecas:
Se importan todas las bibliotecas necesarias para el procesamiento de datos, extracción de características,
entrenamiento de modelos de aprendizaje automático y evaluación de resultados. Estas bibliotecas incluyen
herramientas para manipular datos (como pandas), procesamiento de señales de audio (como librosa),
algoritmos de aprendizaje automático (como RandomForestClassifier, SVC, etc.), y herramientas de
evaluación de modelos (como sklearn.metrics).
3. Procesamiento de datos:
Se define una función principal, `process_audio_folder`, que procesa todos los archivos de audio en una
carpeta dada, extrayendo las características de cada segmento de audio y almacenando los resultados en un
DataFrame de pandas.
4. Guardado de datos:
Se define una función para guardar el DataFrame de características en un archivo CSV para su posterior uso.
5. Visualización de datos:
Se incluye una función para visualizar el recuento de registros por especie de ave mediante un diagrama de
barras.
Minería de datos
Lucy Garay
Adriana Castillo
7. Preprocesamiento de datos:
Se realiza un preprocesamiento de los datos, que incluye la eliminación de columnas no deseadas y la
codificación de las etiquetas de las especies de aves.
8. Balanceo de clases:
Dado que es probable que el conjunto de datos contenga clases desbalanceadas, se aplica un método de
sobremuestreo (RandomOverSampler) para equilibrar la distribución de clases.
9. Entrenamiento de modelos:
Se entrenan varios modelos de aprendizaje automático, como Random Forest, Gradient Boosting, SVM,
KNN, y redes neuronales, utilizando los conjuntos de datos de entrenamiento.
5. Transformada de Fourier:
La transformada de Fourier se utiliza para descomponer una señal de audio en sus componentes de
frecuencia. En el código, se calculan tanto la parte real (`fourier_real`) como la parte imaginaria
Minería de datos
Lucy Garay
Adriana Castillo
(`fourier_imag`) de la transformada de Fourier. Estas características pueden proporcionar información sobre
la distribución de frecuencias presentes en la señal de audio.
6. Tono (Pitch):
El tono de una señal de audio se refiere a la frecuencia fundamental predominante en la señal. En el código,
se calcula el tono promedio (`pitch`) de la señal de audio. Esta característica puede ser útil para distinguir
entre diferentes tonos de voz o sonidos de diferentes frecuencias fundamentales.
9. Contraste Espectral:
El contraste espectral es una medida que cuantifica las diferencias en energía entre diferentes bandas de
frecuencia en una señal de audio. En el código, se calcula tanto la media como la desviación estándar del
contraste espectral (`sc_mean`, `sc_std`). Esta característica puede proporcionar información sobre la textura
o la "textura" de la señal de audio.
Estas características se seleccionan cuidadosamente para capturar diferentes aspectos de la señal de audio
que pueden ser relevantes para la clasificación de cantos de aves.
Carga de Dataset:
En esta sección se carga el conjunto de datos desde un archivo CSV utilizando pandas.
Preprocesamiento de Datos:
Se realizan las siguientes operaciones tanto para el conjunto de entrenamiento como para el de prueba:
Se eliminan las columnas 'specie', 'type' y 'audio_name' para obtener las características (`X_train` y
`X_test`).
Se asigna la columna 'specie' como etiquetas (`y_train` y `y_test`).
Se utiliza `LabelEncoder` para transformar las etiquetas de clase en números enteros, lo que es necesario
para que los algoritmos de machine learning puedan trabajar con ellas.
Minería de datos
Lucy Garay
Adriana Castillo
Balanceo de Clases mediante Sobremuestreo Aleatorio:
Se utiliza el método de sobremuestreo aleatorio para abordar el desequilibrio de clases en el conjunto de
datos de entrenamiento. Esto se hace para evitar que el modelo esté sesgado hacia las clases mayoritarias.
Evaluación de Predicciones:
Se compara las etiquetas predichas por cada modelo con las etiquetas reales en el conjunto de prueba.
Se imprime una muestra aleatoria de las predicciones junto con las etiquetas reales para una inspección
visual.
Predicciones:
Se utilizan los datos de prueba (X_test) para realizar predicciones utilizando el método predict del modelo
entrenado.
Evaluación de Predicciones:
Se obtienen las etiquetas reales del conjunto de prueba y las etiquetas predichas por el modelo Random
Forest.
Se seleccionan 10 índices aleatorios del conjunto de prueba para visualizar resultados.
Se imprimen las etiquetas reales y las etiquetas predichas correspondientes a esos índices aleatorios para una
inspección visual.
Minería de datos
Lucy Garay
Adriana Castillo
Predicciones:
Se utilizan los datos de prueba (X_test) para realizar predicciones utilizando el método predict del modelo
entrenado.
Curvas de Precisión-Recall:
Las curvas de precisión-recall muestran cómo varía la precisión del modelo en función del recall (tasa de
verdaderos positivos) para diferentes umbrales de clasificación.
Estas curvas son especialmente útiles cuando hay desequilibrio de clases en los datos. Muestran cómo
cambia la precisión del modelo cuando se modifica la tasa de verdaderos positivos, lo que puede ser más
informativo que la curva ROC en tales casos.
Para cada modelo, se calcula una curva de precisión-recall para cada clase individualmente.
Minería de datos
Lucy Garay
Adriana Castillo
Análisis del historial de entrenamiento:
Se recopilan las métricas de pérdida y precisión del historial de entrenamiento para graficar la pérdida y la
precisión en entrenamiento y validación a lo largo de las épocas.
Evaluación de predicciones:
Se realizan predicciones en el conjunto de prueba utilizando el modelo y se comparan con las etiquetas
reales.
Se muestra una muestra aleatoria de las etiquetas reales y predichas para análisis cualitativo.
Accuracy:
Modelo SVM: La precisión del modelo SVM es del 80.28%. Esto significa que el 80.28% de las
predicciones realizadas por el modelo coinciden con las etiquetas reales en el conjunto de prueba.
Modelo KNN: La precisión del modelo KNN es del 34.06%. Esto significa que el 34.06% de las
predicciones realizadas por el modelo KNN coinciden con las etiquetas reales en el conjunto de prueba.
F1-Score:
Modelo SVM: El F1-Score del modelo SVM es de 0.797. El F1-Score es una métrica que combina la
precisión y la exhaustividad de un modelo en una sola medida. Cuanto más cercano a 1 esté el F1-Score,
mejor será el rendimiento del modelo.
Modelo KNN: El F1-Score del modelo KNN es de 0.347. Este valor indica la precisión media del modelo,
teniendo en cuenta tanto los falsos positivos como los falsos negativos. Un valor alto indica un mejor
rendimiento del modelo.
Matriz de Confusión:
Se muestra la matriz de confusión para cada modelo. Esta matriz representa visualmente el rendimiento de
un algoritmo de clasificación. En la matriz de confusión, las filas representan las etiquetas reales y las
Minería de datos
Lucy Garay
Adriana Castillo
columnas representan las etiquetas predichas. Los elementos en la diagonal principal representan las
predicciones correctas, mientras que los elementos fuera de la diagonal principal representan errores de
clasificación.
Minería de datos
Lucy Garay
Adriana Castillo
Precisión (Accuracy): El modelo Gradient Boosting tiene una precisión del 79.00%. Esto indica que el
79.00% de las predicciones realizadas por el modelo coinciden con las etiquetas reales en el conjunto de
prueba.
F1-Score: El F1-Score del modelo Gradient Boosting es de 0.78. Este valor indica la precisión media del
modelo, teniendo en cuenta tanto los falsos positivos como los falsos negativos. Un valor alto indica un
mejor rendimiento del modelo.
Los resultados muestran que el modelo Gradient Boosting supera al modelo Random Forest en términos de
precisión y F1-Score, lo que indica que es más efectivo en la tarea de clasificación de datos de audio en este
conjunto de datos específico.
Matriz de Confusión: Al visualizar las matrices de confusión de ambos modelos, se puede observar cómo se
comparan sus aciertos y errores de clasificación en detalle.
Minería de datos
Lucy Garay
Adriana Castillo
Las curvas ROC y de precisión-recall proporcionan una evaluación detallada del rendimiento de los modelos
Random Forest y Gradient Boosting para cada clase de especie de aves.
Se pueden comparar las curvas para evaluar la capacidad de discriminación y la precisión de cada modelo en
la clasificación de cada clase.
Un AUC alto en las curvas ROC y una mayor área bajo las curvas de precisión-recall indican un mejor
rendimiento del modelo para esa clase específica.
Al visualizar estas curvas para cada modelo, se puede determinar cómo se desempeñan en términos de la
capacidad de discriminación y la precisión en la clasificación de las diferentes clases de especies de aves.
Minería de datos
Lucy Garay
Adriana Castillo
Minería de datos
Lucy Garay
Adriana Castillo
Minería de datos
Lucy Garay
Adriana Castillo
Modelo CNN 2D:
Reporte de clasificación: Este reporte proporciona precisiones, recalls y F1-scores para cada clase. Aquí se
muestra que el modelo tiene dificultades para predecir la mayoría de las clases, con puntuaciones cercanas a
cero para la mayoría de las clases.
Matriz de confusión: La matriz de confusión muestra cómo el modelo CNN 2D se confunde al predecir las
clases. La baja precisión y F1-score indican que el modelo no está aprendiendo efectivamente a distinguir
entre las diferentes clases.
Minería de datos
Lucy Garay
Adriana Castillo
Modelo CNN 1D:
Precisión en el conjunto de prueba (accuracy): 0.793
Pérdida en el conjunto de prueba (loss): No se proporciona
F1 Score: 0.788
Reporte de clasificación: En comparación con el modelo CNN 2D, el modelo CNN 1D muestra un
rendimiento significativamente mejor, con precisiones, recalls y F1-scores mucho más altos para la mayoría
de las clases.
Minería de datos
Lucy Garay
Adriana Castillo
Matriz de confusión: La matriz de confusión para el modelo CNN 1D debería mostrar una distribución más
equilibrada de predicciones correctas e incorrectas en comparación con el modelo CNN 2D.
Ambos modelos tienen un rendimiento notablemente diferente, con el modelo CNN 1D superando
significativamente al modelo CNN 2D en términos de precisión y F1-score. Esto sugiere que el modelo
CNN 1D es más efectivo para aprender características relevantes de los espectrogramas de audio y clasificar
las especies de aves con mayor precisión.
Las gráficas de distribución de clases predichas para ambos modelos pueden proporcionar una visualización
adicional del rendimiento de cada modelo al mostrar cómo se distribuyen las predicciones entre las
diferentes clases.
Minería de datos
Lucy Garay
Adriana Castillo
Conclusiones.
En conclusión, el modelo de red neuronal convolucional (CNN) 1D supera notablemente al modelo CNN 2D
en la tarea de clasificación de especies de aves a partir de espectrogramas de audio. El modelo CNN 1D
logra una precisión de alrededor del 79.3%, mientras que el modelo CNN 2D apenas alcanza una precisión
del 16.9%. Esto indica que el modelo CNN 1D es más efectivo para reconocer y distinguir entre las
diferentes especies de aves en comparación con el modelo 2D.
Además, al examinar métricas como el F1-score y el reporte de clasificación, se confirma la superioridad del
modelo CNN 1D, mostrando una capacidad más consistente y sólida de clasificación en todas las clases de
aves.
En resumen, el modelo CNN 1D demuestra ser la mejor opción para abordar esta tarea de clasificación de
especies de aves. Ofrece un rendimiento más confiable y preciso en la identificación de las aves a partir de
los espectrogramas de audio, lo que lo convierte en la opción preferida para este problema específico.
Minería de datos
Lucy Garay
Adriana Castillo