Java Data Mining
# Java Data Mining

El Data Mining (podría traducirse por "Mínería de Datos") es el proceso de encontrar patrones y relaciones en un conjunto de datos mediante el desarrollo de un modelo que permita representarlos.

Este modelo se desarrolla en función de muestras de datos y permitirá aplicar los patrones y relaciones sobre nuevos datos para predecir comportamientos individuales (clasificación y regresión) así como segmentar las muestras (clustering), determinar las relaciones e identificar características que pueden alterar una determinada predicción. Así, el término por el que también se refiere a estas técnicas es el de análisis predictivo.

Java Data Mining (JDM) es el estándar de Java para el desarrollo de aplicaciones de Data Mining basado en la especificación JSR 247. En este estándar se describe la API para las herramientas que permiten a los desarrolladores concluir satisfactoriamente el desarrollo de aplicaciones de Data Mining.

El objetivo de la especificación es proveer de una interfaz en Java que facilite el acceso al mundo de las aplicaciones de Data Mining, ya que las APIS existentes (hasta el momento de la publicación de la JSR) son privadas. El uso de JDM permitirá que las aplicaciones de Data Mining en Java sean comprensibles por todos los desarrolladores en este lenguaje.

## Componentes en la arquitectura de JDM

Consta de tres componentes lógicos:

Application Program Interface, API

Es el componente visible por el desarrollador. Básicamente se trata de la definición de los métodos y objetos que un desarrollador de una aplicación de Data Mining deberá conocer.

Data Mining Engine (DME)

Es el componente que provee los servicios solicitados por los clientes de la API. En la arquitectura cliente - servidor, se conocerá como el Data Mining Server, una instancia del sistema de información general.

Mining Object Repository (MOR)

Es el componente que permite hacer persistentes los objetos al DME, el meta - modelo. Típicamente ficheros o bases de datos relacionales.

## Términos y conceptos del Data Mining

Los conceptos descritos en la especificación son:

* Data Mining Functions: Las funciones de Data Mining se clasifican como supervisadas y no supervisadas. Las supervisadas son utilizadas típicamente para la predicción y necesitan de una respuesta conocida o un objetivo para cada caso en el proceso de generación del modelo. Las no supervisadas, no necesitan dicho objetivo y son usadas normalmente para la descripción de la estructura interna, relaciones o afinidades en el cuerpo de los datos. Otro punto de vista por lo tanto es la predicción o la descripción. JDM describe las siguientes Mining Functions
   * Clasificación
   * Regresión
   * Importancia de los atributos
   * Extracción de características
   * Detección de anomalías
   * Series temporales
   * Clustering
   * Asociación
* Data Mining Tasks: Las tareas principales en el desarrollo con JDM son
   * Construcción del modelo
   * Prueba del modelo
   * Aplicación del modelo a los datos
   * Cálculo de estadísticas
   * Exportación e importación de objetos de mining
* Data Mining Objects: JDM proporcióna la descripción de los principales objetos que intervienen en el código de una aplicación JDM que son clases relativas a:
   * Conexiones
   * URI
   * Tareas
   * Manejo de ejecución y estado
   * Objetos de datos físicos
   * Elementos de datos
   * Preferencias de construcción
   * Algoritmos
   * Preferencias de los Algoritmos
   * Modelos
   * Firmas de modelos
   * Detalles de modelos
   * Atributos lógicos
   * Datos lógicos
   * Conjuntos de datos estadísticos
   * Preferencias de aplicación (de modelos)
   * Matrices de confusión (para describir la fiabilidad de las predicciones de un modelo)
   * Restos
   * Matrices de costes
   * Mayores Probabilidades (facilitando la búsqueda de las características que intervienen en mayor medida sobre una predicción)
   * Agrupación de valores
   * Taxonomía de datos
   * Comparación de modelos
   * Reglas
   * Informes de verificación
* Interfaz de configuración genérica
* Transformaciones
* Comandos
* Representación física de datos
* Mapeo de atributos
* Creación de objetos de datos físicos
* Persistencia
* Referencias a objetos
* Reflexión e introspección
* Java Community Proccess (2006). «Java Specification Request 247». Consultado el 5 de abril de 2010.
* Datos: Q3163101
