# Clasificador (matemáticas)

El término clasificador se utiliza en referencia al algoritmo utilizado para asignar un elemento entrante no etiquetado en una categoría concreta conocida. Dicho algoritmo, permite pues, ordenar o disponer por clases elementos entrantes, a partir de cierta información característica de estos.
Una manera de implementar un clasificador es seleccionar un conjunto de ejemplos etiquetados y tratar de definir una regla que permita asignar una etiqueta a cualquier otro dato de entrada.
En ocasiones, el término clasificador también es utilizado para referirse a la función matemática que implementa el algoritmo de clasificación.

## Selección de características

Para la implementación de un clasificador es necesario tener en cuenta una serie de características concretas. La selección de éstas, sin embargo, no es una tarea sencilla.
La adición de muchos parámetros irrelevantes hace más difícil la clasificación para todos los métodos. Además, a medida que vamos añadiendo más información se van incrementando las dimensiones del espacio, hecho que supone que la optimización sea cada vez más difícil.

## Entrenamiento

La finalidad de esta fase es construir un conjunto/grupo para que los objetos que se han clasificado como ciertos, sean conocidos/identificados. Los parámetros característicos que describen a los objetos deben ser discriminatorios para la clasificación.

### Conjunto de entrenamiento

El conjunto de entrenamiento debe contener una lista de objetos con tipos conocidos. Idealmente este conjunto de entrenamiento debería contener muchos ejemplos, de este modo, se incluirían objetos comunes y no comunes.
Para crear el conjunto de entrenamiento se requiere una fuente de objetos clasificados de forma cierta.

## Precisión del clasificador

Una vez construido el clasificador se debe medir la precisión. Este paso es necesario tanto en la aplicación del clasificador como también para poder compararlo con otros clasificadores diferentes.
La precisión se puede determinar aplicando al clasificador un entrenamiento independiente de un conjunto de objetos de los que se conoce la clasificación. Se hace uso de conjuntos conocidos ya que a veces no se tienen las fuentes necesarias para construir un nuevo modelo que se utilice puramente para su testeo. Se debe evitar el entrenamiento y el testeo con el mismo conjunto.

## Tipos de aprendizaje
### Aprendizaje supervisado

El aprendizaje supervisado es una técnica de aprendizaje artificial que elabora una función matemática (hipótesis) a partir de datos de entrenamiento previamente etiquetados. Donde el usuario con unos datos de entrenamiento en una máquina puede deducir entre un conjunto de datos de entrada a que clase pertenecen los datos de salida.

### Aprendizaje no supervisado

Los algoritmos en aprendizaje no supervisado no disponen de un conjunto de entrenamiento que permita conocer las etiquetas de los datos, así pues, se hace necesario el uso de técnicas de agrupamiento que intentan construir estas etiquetas.
Este sistema de agrupamiento (o clustering) tiene como finalidad catalogar los objetos en conjuntos tales que los que estén en el mismo sean muy semejantes entre sí, mientras que el grado de semejanza entre grupos diferentes sea bajo.
Aun así, uno de los problemas que presenta este método es la toma de decisiones a la hora de escoger un patrón entre todos los proporcionados.

### Aprendizaje semi-supervisado

El aprendizaje semi-supervisado surge como consecuencia de la dificultad que se tiene para obtener los datos etiquetados requeridos por los métodos no supervisados, ya que estos deben ser etiquetados por un experto de forma manual convirtiéndose en un trabajo pesado.
Este aprendizaje es una combinación del aprendizaje supervisado y no supervisado. Puesto que asignar etiquetas o clases de datos puede ser muy costoso, el aprendizaje semi-supervisado recurre a la opción de usar a la vez una colección limitada de datos etiquetados y un conjunto más extenso de datos no etiquetados, mejorando así la construcción de los modelos.
En este método, se ha de tener en cuenta que no siempre los datos no etiquetados son de ayuda al proceso de aprendizaje. Por lo general se asume que los datos no etiquetados siguen la misma distribución que los etiquetados para que el uso de datos sin etiquetar sea útil.

### Aprendizaje por refuerzo

El aprendizaje por refuerzo no trata de aprender a partir de un conjunto de ejemplos sino a través de la experiencia.
En este tipo de aprendizaje, el agente dispone de un conjunto de opciones disponibles para llegar a resolver una determinada tarea. Para ello, debe escoger en primer lugar, la opción que considere más oportuna para lograr su objetivo. Una vez hecho, el agente en cuestión recibe información de retroalimentación del entorno sobre su desempeño. Posteriormente, dicha información pueda ser utilizada para modificar su comportamiento. El aprendizaje por refuerzo conlleva pues, una fuerte carga de ensayo y error.

## Tipos de clasificadores
### Clasificador Bayesiano

Es un clasificador basado en el aprendizaje que calcula la probabilidad de cada hipótesis de los datos y realiza predicciones sobre estas. Estimar la probabilidad es complejo, pero se simplifica si se considera que los atributos son independientes dada la hipótesis: P(E1, E2, ...EN | H) = P(E1 | H) P(E2 | H) ... P(EN | H)
Por lo que la probabilidad de la hipótesis dada la evidencia puede estimarse como: P(H | E1, E2, ...EN) = [P(H) P(E1 | H) P(E2 | H) ... P(EN | H)]/ P(E)

### Clasificador Parzen

Se trata de un clasificador basado en la estimación no paramétrica, que a diferencia de la paramétrica, donde se obtiene la función de densidad de probabilidad estimando los parámetros desconocidos de un modelo conocido, no se conoce el modelo. Esta técnica consiste básicamente en variaciones de la aproximación del histograma de una función de densidad de probabilidad desconocida. Este algoritmo se utiliza en la clasificación de imágenes o para clasificar y aprender simultáneamente. El problema de este clasificador es que tiene un tiempo de ejecución elevado.

### Clasificador Backpropagation

En algunos problemas el uso de modelos simples de densidad paramétrica o el uso de modelos de histogramas no dan los resultados deseados. En estos casos se buscan modelos de densidad más sofisticados. Las redes neuronales son una técnica de aproximación paramétrica útil para construir modelos de densidad. El modelo de red neuronal habitual que utiliza este algoritmo consiste en una red con una capa de entrada con tantos nodos como entradas tengan, una capa oculta con un número de nodos variable que dependerá de las características del problema, y una capa de salida con tantos nodos como posibles salidas tenga.

### Clasificador con PCA

El clasificador en cuestión utiliza el análisis de componentes principales (también conocido como ACP o PCA) con el objetivo de tratar de reducir la dimensión de un grupo de datos y hallar las causas de su variabilidad para poder ordenarlas según su importancia.

### Máquinas de vectores de soporte "Support vector machine"

Una máquina de vectores de soporte utiliza una técnica que aprende de dos clases distintas de entrada. Como un clasificador de una sola clase, la descripción dada por los datos de los vectores de soporte elabora una frontera de decisión alrededor de los datos de aprendizaje. Los datos son mapeados donde se busca la máxima separación entre clases.
La función de frontera tiene la misión de separar los datos en clases distintas, cada una formando un agrupamiento.

## Aplicaciones

Las aplicaciones de los clasificadores son muy amplias. Su uso se extiende en medicina (análisis de prueba de drogas, análisis de datos de resonancia magnética), teléfonos móviles decodificación de la señal, corrección de errores), la visión por computador (reconocimiento facial, seguimiento de objetivos, reconocimiento de voz, minería de datos (análisis de compras en supermercados, análisis de clientes al por menor), robótica, juegos de ordenador, secuenciación de procesos de fabricación o secuenciación temporal, entre otros.

## Herramientas de software

Existen muchas herramientas de software para clasificación o reconocimiento de patrones tanto libres como comerciales, por ejemplo:
| Orange KNIME Neural Designer OpenNN | RapidMiner R SPSS Clementine SAS Enterprise Miner | STATISTICA Data Miner Weka |