J'essaie de trouver une approche pour détecter les publicités frauduleuses sur mon site Web. Je pense que le problème a beaucoup en commun avec la détection des e-mails de spam (pour lesquels un classificateur bayésien naïf est une solution courante) car de nombreux signaux indiquant une arnaque seront trouvés dans le texte de l'annonce.
Cependant, il existe certaines autres informations qui peuvent être de bons indicateurs d'arnaque, mais je ne sais pas si / comment un classificateur Bayes pourrait les utiliser, car elles impliquent des valeurs numériques (avec des valeurs aux extrêmes de la plage suspectes) plutôt que de simples valeurs binaires correspondant à la présence ou à l’absence d’un mot dans le texte.
Par exemple, pour de nombreuses publicités frauduleuses, le prix de l'article est très bas (pour attirer beaucoup de vues), donc j'aimerais qu'un prix inférieur à la normale soit un indicateur fort que l'annonce peut être une arnaque.
Est-ce que Bayes répond toujours bien à mes exigences, sinon pourriez-vous recommander une approche différente?
la source
Les Bayes naïfs peuvent certainement travailler avec des attributs numériques aussi bien qu'avec des attributs discrets (préoccupations modulo quant à la pertinence de la distribution supposée comme mentionné dans d'autres réponses). Cependant, vous devez vous demander si vous voulez vraiment utiliser Naive Bayes, car la méthodologie non discriminante se décomposera de plus en plus lorsque vous combinerez des données de diverses sources, avec des corrélations potentiellement fortes.
Si vous souhaitez conserver une interprétation probabiliste, considérez la régression logistique, qui est un analogue exact de Naive Bayes avec un objectif discriminatoire plutôt que génératif (voir cet article par exemple: Régression logistique contre Naive Bayes . Vous pouvez en trouver diverses implémentations: I comme Mallet , si vous pouvez utiliser java (accessible comme un outil de ligne de commande ou une API).
Si une interprétation probabiliste stricte n'est pas nécessaire, vous pouvez utiliser un SVM. Il existe de nombreuses implémentations de cela, mais le standard de facto (avec une variante disponible dans la plupart des langues) est LibSVM .
la source
Vous pouvez utiliser des valeurs numériques assez facilement. Dans le terme P (Feature | scam = Yes), vous pouvez mettre une distribution gaussienne ou toute autre distribution empirique à partir des données d'apprentissage (par exemple, trier les données, créer une fonction qui renvoie le centile de la valeur numérique d'entrée donnée). Voici un article décrivant que
la source