¿Es un clasificador bayesiano un buen enfoque para texto con metadatos numéricos?

8

Estoy tratando de encontrar un enfoque para detectar anuncios fraudulentos en mi sitio web. Creo que el problema tiene mucho en común con la detección de correo electrónico no deseado (para el cual un clasificador bayesiano ingenuo es una solución común) ya que muchas de las señales que indican una estafa se encontrarán en el texto del anuncio.

Sin embargo, hay ciertas otras informaciones que pueden ser buenos indicadores de estafa, pero no estoy seguro de si un clasificador de Bayes podría usarlas, porque involucran valores numéricos (con valores sospechosos en los extremos del rango) que simples valores binarios correspondientes a la presencia o ausencia de una palabra en el texto.

Por ejemplo, muchos anuncios de estafa tienen el precio del artículo muy bajo (para atraer muchas vistas), por lo que me gustaría que un precio más bajo de lo normal sea un fuerte indicador de que el anuncio puede ser una estafa.

¿Bayes sigue siendo una buena opción para mis necesidades? Si no, ¿podría recomendarme un enfoque diferente?

caja de códigos
fuente

Respuestas:

9

Claro que puedes usar Naive Bayes. Solo tiene que especificar qué forma tendrá la distribución condicional.

Se me ocurren algunas opciones:

  1. Distribución binaria: binarice sus datos utilizando un umbral y volverá al problema que ya estaba resolviendo.
  2. Distribución paramétrica: si hay alguna distribución paramétrica razonable, por ejemplo, gaussiana, puede usarla.
  3. Distribución no paramétrica: decida los contenedores para los datos numéricos y utilícelos para construir una distribución empírica no paramétrica.
Bitwise
fuente
7

Los clasificadores ingenuos de Bayes pueden acomodar variables numéricas y discretas sin demasiado problema. Esencialmente, existen tres enfoques: (i) discretizar los valores numéricos (ii) usar un modelo paramétrico de cada atributo numérico (por ejemplo, gaussiano) o (iii) usar un estimador de densidad no paramétrico (por ejemplo, Parzen) para cada atributo numérico.

ver, por ejemplo, "Clasificadores Bayes ingenuos que funcionan bien con variables continuas" por Remco Bouckaert

Dikran Marsupial
fuente
1
@LOL misma respuesta que la mía con el mismo orden de opciones y los mismos ejemplos ... ¿cuáles son las probabilidades? Creo que todos pensamos igual
Bitwise
1
Claramente no debería haber pasado cinco minutos buscando la referencia; o)
Dikran Marsupial
3

Los ingenuos Bayes ciertamente pueden trabajar con atributos numéricos así como con atributos discretos (las preocupaciones del módulo sobre la adecuación de la distribución asumida como se menciona en otras respuestas). Sin embargo, debe considerar si realmente desea usar Naive Bayes, ya que la metodología no discriminatoria se descompondrá cada vez más a medida que combine datos de varias fuentes, con correlaciones potencialmente fuertes.

Si desea conservar una interpretación probabilística, considere la regresión logística, que es un análogo exacto de Naive Bayes con un objetivo discriminatorio en lugar de generativo (vea este documento, por ejemplo: Regresión logística contra Naive Bayes . Puede encontrar varias implementaciones de la misma: I como Mallet , si puede usar java (accesible como una herramienta de línea de comandos o una API).

Si no es necesaria una interpretación probabilística estricta, puede usar un SVM. Hay muchas implementaciones de esto, pero el estándar de facto (con una variante disponible en la mayoría de los idiomas) es LibSVM .

Ben Allison
fuente
1

Puede usar valores numéricos con bastante facilidad. En el término P (Característica | estafa = Sí), podría poner una distribución gaussiana o cualquier otra distribución empírica a partir de los datos de entrenamiento (por ejemplo, ordenar los datos, crear una función que devuelva el percentil del valor numérico de entrada dado). Aquí hay un escrito que describe que

brócoli
fuente