Logotipo de Zephyrnet

Tutorial de aprendizaje automático: el clasificador de texto Max Entropy

Fecha:

clasificador max-entropíaEn este tutorial discutiremos sobre el clasificador de texto Maximum Entropy, también conocido como clasificador MaxEnt. El clasificador Max Entropy es un clasificador discriminativo que se usa comúnmente en los problemas de procesamiento de lenguaje natural, habla y recuperación de información. La implementación de Max Entropy en un lenguaje de programación estándar como JAVA, C ++ o PHP no es trivial debido principalmente al problema de optimización numérica que uno debe resolver para estimar los pesos del modelo.

Actualización: el marco de aprendizaje automático de Datumbox ahora es de código abierto y gratuito para descargar. Consulte el paquete com.datumbox.framework.machinelearning.classification para ver la implementación de Max Entropy Classifier en Java.

Tenga en cuenta que el clasificador Max Entropy funciona muy bien para varios problemas de clasificación de texto, como Análisis de los sentimientos y es uno de los clasificadores que se usa comúnmente para encender nuestro API de aprendizaje automático.

¿Qué es el clasificador de entropía máxima?

El clasificador Max Entropy es un clasificador probabilístico que pertenece a la clase de modelos exponenciales. A diferencia del Bayes ingenuos clasificador que discutimos en el artículo anterior, Max Entropy no supone que las características sean condicionalmente independientes entre sí. MaxEnt se basa en el Principio de máxima entropía y de todos los modelos que se ajustan a nuestros datos de entrenamiento, selecciona el que tiene la mayor entropía. El clasificador Max Entropy se puede utilizar para resolver una gran variedad de problemas de clasificación de texto, como detección de idioma, clasificación de temas, análisis de sentimientos y más.

¿Cuándo usar el clasificador de texto MaxEnt?

Debido a los supuestos mínimos que hace el clasificador de Entropía Máxima, lo usamos regularmente cuando no sabemos nada sobre las distribuciones anteriores y cuando no es seguro hacer tales supuestos. Además, el clasificador de máxima entropía se utiliza cuando no podemos asumir la independencia condicional de las características. Esto es particularmente cierto en los problemas de Clasificación de texto donde nuestras características son generalmente palabras que obviamente no son independientes. La entropía máxima requiere más tiempo para entrenar en comparación con Bayes ingenuos, principalmente debido al problema de optimización que debe resolverse para estimar los parámetros del modelo. Sin embargo, después de calcular estos parámetros, el método proporciona resultados sólidos y es competitivo en términos de consumo de CPU y memoria.

Antecedentes teóricos de la máxima entropía

Nuestro objetivo es utilizar la información contextual del documento (unigramas, bigramas, otras características dentro del texto) para clasificarlo en una clase determinada (positivo / neutral / negativo, objetivo / subjetivo, etc.). Siguiendo el marco estándar de bolsa de palabras que se usa comúnmente en el procesamiento del lenguaje natural y la recuperación de información, dejemos {w1,…, Wm} ser las m palabras que pueden aparecer en un documento. Luego, cada documento está representado por una matriz dispersa con 1 y 0 que indican si una palabra en particular wi existe o no en el contexto del documento. Este enfoque fue propuesto por Bo Pang y Lillian Lee (2002).

Nuestro objetivo es construir un modelo estocástico, como lo describe Adán Berger (1996), que representa con precisión el comportamiento del proceso aleatorio: tome como entrada la información contextual x de un documento y produzca el valor de salida y. Como en el caso de Bayes ingenuos, el primer paso para construir este modelo es recolectar una gran cantidad de datos de entrenamiento que consisten en muestras representadas en el siguiente formato: (xi,yi) donde la xi incluye la información contextual del documento (la matriz dispersa) y yi su clase El segundo paso es resumir la muestra de entrenamiento en términos de su distribución de probabilidad empírica:

[ 1 ]

Donde N es el tamaño del conjunto de datos de entrenamiento.

Utilizaremos la distribución de probabilidad empírica anterior para construir el modelo estadístico del proceso aleatorio que asigna textos a una clase particular teniendo en cuenta su información contextual. Los componentes básicos de nuestro modelo serán el conjunto de estadísticas que provienen de nuestro conjunto de datos de entrenamiento, es decir, la distribución de probabilidad empírica.

Presentamos la siguiente función de indicador:

[ 2 ]

Llamamos a la función del indicador anterior como "característica". Esta función de indicador de valor binario devuelve 1 solo cuando la clase de un documento en particular es ci y el documento contiene la palabra wk.

Expresamos cualquier estadística del conjunto de datos de entrenamiento como el valor esperado de la función indicadora de valor binario apropiada fj. Por lo tanto, el valor esperado de la característica fj con respecto a la distribución empírica  es igual a:

[ 3 ]

Si cada muestra de entrenamiento (x, y) ocurre una vez en el conjunto de datos de entrenamiento, entonces  es igual a 1 / N.

Cuando una estadística particular es útil para nuestra clasificación, requerimos que nuestro modelo esté de acuerdo con ella. Para hacerlo, restringimos el valor esperado que el modelo asigna al valor esperado de la función de función fj. El valor esperado de la característica fj con respecto al modelo  es igual a:

[ 4 ]

Cuando la  es la distribución empírica de x en el conjunto de datos de entrenamiento y generalmente se establece igual a 1 / N.

Al restringir el valor esperado para que sea igual al valor empírico y de las ecuaciones [3], [4] tenemos que:

[ 5 ]

La ecuación [5] se llama restricción y tenemos tantas restricciones como el número de funciones de función j.

Las restricciones anteriores pueden satisfacerse con un número infinito de modelos. Entonces, para construir nuestro modelo, debemos seleccionar al mejor candidato según un criterio específico. De acuerdo con el principio de máxima entropía, debemos seleccionar el modelo que esté lo más cerca posible del uniforme. En palabras de orden, debemos seleccionar el modelo p * con la máxima entropía:

[ 6 ]

Dado que:

  1. [ 7 ]
  2. [ 8 ]
  3. [ 9 ]

Para resolver el problema de optimización anterior, presentamos los multiplicadores lagrangianos, nos centramos en el problema dual sin restricciones y estimamos las variables libres de lamda {λ1, ..., λn} con el método de Estimación de máxima verosimilitud.

Se puede demostrar que si encontramos el {λ1, ..., λn} parámetros que maximizan el problema dual, la probabilidad de que un documento x se clasifique como y es igual a:

[ 10 ]

Por lo tanto, dado que hemos encontrado los parámetros lamda de nuestro modelo, todo lo que necesitamos hacer para clasificar un nuevo documento es usar la regla de decisión "máximo a posteriori" y seleccionar la categoría con la mayor probabilidad.

La estimación de los parámetros de lamda requiere el uso de un algoritmo de escalado iterativo como el SIG (Escalado iterativo generalizado) o el IIS (Escalado iterativo mejorado).

El proyecto  es el número total de características que están activas para un par particular (x, y). Si este número es constante para todos los documentos, entonces el  se puede calcular en forma cerrada:

[ 11 ]

La suposición de que  Es constante, rara vez es realista en la práctica. Para resolver esto, algunas versiones de IIS proponen la inclusión de una función de indicador de "holgura" que ayuda a mantener constante el número de características activas. Desafortunadamente, la introducción de tal característica aumenta en gran medida el tiempo de entrenamiento. Afortunadamente, como Buen hombre (2002) y Ratnaparkhi (1997) probar, solo es necesario que la suma de las funciones del indicador esté limitada por y no necesariamente igual a él. Por lo tanto, podemos seleccionar como C el número máximo de características activas para todos los pares (x, y) dentro de nuestro conjunto de datos de entrenamiento:

 [ 16 ]

Hacer las adaptaciones anteriores en las versiones estándar de IIS puede ayudarnos a encontrar el {λ1, ..., λn} parámetros y construimos nuestro modelo relativamente rápido.

Como discutimos en el artículo anterior "La importancia de la clase neutral en el análisis de sentimientos", El clasificador Max Entropy tiene pocas propiedades muy agradables cuando lo usamos en el Análisis de sentimientos y cuando incluimos la Clase neutral. Si desea ver algunas aplicaciones de Max Entropy en acción, consulte nuestra API de análisis de sentimientos o análisis de subjetividad. Para usar nuestra API solo Date de alta en para obtener una cuenta gratuita y obtener su clave API de su área de perfil.

¿Te gustó el artículo? Tómese un minuto para compartirlo en Twitter. 🙂

Nuestra Empresa Vasilis Vryniotis

Mi nombre es Vasilis Vryniotis. Soy un científico de datos, un ingeniero de software, autor de Datumbox Machine Learning Framework y un orgulloso geek. Más información

Fuente: http://blog.datumbox.com/machine-learning-tutorial-the-max-entropy-text-classifier/

punto_img

Información más reciente

punto_img