Minería de datos

Introducción

Estas prácticas consisten en, dado un conjunto de datos (numéricos y/o nominales) referidos a un problema cualquiera, aplicar algoritmos de inteligencia artificial que realizan un aprendizaje automático para establecer patrones y modelos sobre esos datos y así extraer conclusiones sobre ellos.

Los objetivos son profundizar en las técnicas básicas de aprendizaje automático / minería de datos, aprender con más detalle algunos de los algoritmos de aprendizaje, aprender a evaluar el resultado de la aplicación de un algoritmo y aprender a evaluar la aplicación de varios algoritmos.

Para ello se utilizará:

  • La biblioteca de clases de aprendizaje en Java llamada Weka, muy sencilla de utilizar, desarrollada en la universidad de Waikato de Nueva Zelanda ([WF99] Ian H. Witten y Eibe Frank. Data Mining. Practical Machine Learning Tools and Techniques with Java Implementations, Morgan Kaufmann, 1999).
  • Conjuntos de datos reales sobre problemas variados, incluidos en Weka.

Los datos corresponden a una gran variedad de problemas diferentes. Hay dos tipos de conjuntos de datos: datos numéricos (en los que los valores de las variables son números) y datos nominales (con valores discretos nominales).

Ejemplos de conjuntos con datos nominales son:

  • SOCIALES: Aprobación de créditos (Credit-a.arff), Votaciones en el Congreso de EEUU (Vote.arff)
  • ENFERMEDADES: Predicción de enfermedades (Breast-cancer.arff, Diabetes.arff, Heart-*.arff)
  • CLASIFICACION: Clasificación de setas (Mushroom.arff), Clasificación de animales (Zoo.arff)
  • RECONOCIMIENTO: Reconocimiento de audio (Vowel.arff), Reconocimiento de imágenes (Letter.arff)
  • MERCADO: Predicción del precio de los automóviles (Autos.arff)

Ejemplos de datos numéricos:

  • SOCIALES: Modelado de puntos/minuto en basket (BasketBall.arff), Tasa de homicidios en Detroit (Detroit.arff), Predicción sobre huelgas (Strike.arff)
  • ENFERMEDADES: Ecocardiograma (EchoMonths.arff)
  • MERCADO: Predicciones sobre automóviles (Auto*.arff), Consumo de electricidad (Elusage.arff), Consumo de gasolina (Gascons.arff), Valor de la vivienda en barrios de Boston (Housing.arff)
  • GEOLOGÍA: Datos sobre polución (Pollution.arff), Predicción sobre terremotos (Quake.arff)

Hay que modelar al menos dos problemas, uno de tipo nominal y otro de tipo numérico, de cualquier categoría, utilizando los algoritmos que se estime oportuno.

En particular, con los datos nominales hay que emplear al menos dos de los siguientes algoritmos:

  • Árboles de decisión de un nivel (decision stump) weka.classifiers.DecisionStump
  • Clasificador 1R (OneR) weka.classifiers.OneR
  • Árboles de decisión de un nivel (decision stump) weka.classifiers.OneR
  • Tabla de decisión (decision table) weka.classifiers.DecisionTable-R
  • ID3 weka.classifiers.Id3
  • C4.5 weka.classifiers.j48.J48
  • PART weka.classifiers.j48.PART

Y con los datos numéricos hay que emplear al menos dos de los siguientes algoritmos:

  • Árboles de decisión de un nivel (decision stump) weka.classifiers.DecisionStump
  • Tabla de decisión (decision table) weka.classifiers.DecisionTable-R
  • Regresión lineal weka.classifiers.LinearRegression
  • M5' weka.classifiers.m5.M5Prime

Se pide:

  • Estudiar bien el funcionamiento de los algoritmos elegidos para luego incluir un breve resumen en una sección del trabajo. Es conveniente consultar referencias externas.
  • Utilizando los datos de los problemas, crear los modelos estudiando diferentes estrategias de entrenamiento utilizando los parámetros de cada algoritmo.
  • Análisis de resultados (textuales y gráficos) que da Weka, comentando la conclusión y las diferencias entre los algoritmos que se han empleado.