Codigo desarrollado para el Trabajo de Fin de Grado de Jose Haldón centrado en la deteccion de anomalias en mediciones de temperatura y humedad obtenidas mediante sensores IoT de bajo coste.
El proyecto compara dos enfoques:
- K-Nearest Neighbours no supervisado.
- Entropia de Shannon como metodo estadistico.
Datos/ CSV de entrada y resultados numericos
Graficas/ Graficas descriptivas de los datos
Graficas_KNN/ Graficas generadas por el metodo KNN
Graficas_Entropia/ Graficas generadas por entropia de Shannon
config.py Configuracion comun y carga opcional de base de datos
graficas.py Generacion de graficas descriptivas
datasetSintetico.py Generacion del conjunto sintetico de evaluacion
KNN.py Deteccion de anomalias mediante KNN
entropia.py Deteccion de anomalias mediante entropia de Shannon
requirements.txt Dependencias de Python
La carpeta Datos contiene los CSV necesarios para ejecutar el proyecto sin depender de una base de datos local:
ft.csv: mediciones originales exportadas.ft_agregada_dias.csv: mediciones agregadas por dias.ft_agregada_horas.csv: mediciones agregadas por horas.datasetSintetico.csv: conjunto de evaluacion generado a partir de los datos reales.resultados_knn.csv: resultados finales del metodo KNN.resultados_entropia.csv: resultados finales del metodo de entropia.
Se recomienda Python 3.11.
Ejecutar los scripts desde la carpeta raiz del repositorio:
python graficas.py
python datasetSintetico.py
python KNN.py
python entropia.pyOrden recomendado:
graficas.py: genera las graficas descriptivas de temperatura y humedad.datasetSintetico.py: generaDatos/datasetSintetico.csv.KNN.py: ejecuta el metodo KNN y actualizaDatos/resultados_knn.csv.entropia.py: ejecuta el metodo de entropia de Shannon y actualizaDatos/resultados_entropia.csv.
Graficas/: visualizacion descriptiva de los datos.Graficas_KNN/: resultados visuales del algoritmo KNN.Graficas_Entropia/: resultados visuales del metodo de entropia.Datos/resultados_knn.csv: metricas finales de KNN.Datos/resultados_entropia.csv: metricas finales de entropia.
Los scripts usan primero los CSV incluidos en Datos. Si esos archivos no existen, algunos scripts pueden leer datos desde PostgreSQL mediante variables de entorno:
TFG_DB_HOST
TFG_DB_PORT
TFG_DB_NAME
TFG_DB_USER
TFG_DB_PASSWORD
Tambien se puede crear un archivo local .env con esas variables.
- Las graficas y CSV de resultados incluidos corresponden a la ejecucion final usada en la memoria del TFG.