Modélisation de sujets sur la fraude

Détection de fraude en Python

Charlotte Werger

Data Scientist

Modélisation de sujets : découvrir des motifs cachés dans le texte

  1. Découvrir des sujets dans des textes
  2. « De quoi parle le texte »
  3. Conceptuellement semblable au regroupement (clustering)
  4. Comparer les sujets des cas de fraude et non-fraude et les utiliser comme variable ou signal
  5. Ou… y a‑t‑il un sujet qui semble indiquer une fraude ?
Détection de fraude en Python

Latent Dirichlet Allocation (LDA)

Avec LDA, vous obtenez :

  1. un modèle « sujets par élément de texte » (des probabilités)
  2. un modèle « mots par sujet »

Créer votre propre modèle de sujets :

  1. Nettoyer vos données
  2. Créer un sac de mots avec dictionnaire et corpus
  3. Alimenter le modèle LDA avec le dictionnaire et le corpus
Détection de fraude en Python

Latent Dirichlet Allocation (LDA)

Détection de fraude en Python

Sac de mots : dictionnaire et corpus

from gensim import corpora
# Créer un dictionnaire du nombre d'occurrences par mot
dictionary = corpora.Dictionary(cleaned_emails)
# Filtrer les mots (peu) fréquents 
dictionary.filter_extremes(no_below=5, keep_n=50000)
# Créer le corpus
corpus = [dictionary.doc2bow(text) for text in cleaned_emails]
Détection de fraude en Python

Latent Dirichlet Allocation (LDA) avec gensim

import gensim
# Définir le modèle LDA
ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics = 3, 
id2word=dictionary, passes=15)
# Afficher trois sujets du modèle avec leurs mots principaux
topics = ldamodel.print_topics(num_words=4)
for topic in topics:
    print(topic)
(0, 0.029*"email" + 0.016*"send" + 0.016*"results" + 0.016*"invoice")
(1, 0.026*"price" + 0.026*"work" + 0.026*"management" + 0.026*"sell")
(2, 0.029*"distribute" + 0.029*"contact" + 0.016*"supply" + 0.016*"fast")
Détection de fraude en Python

Passons à la pratique !

Détection de fraude en Python

Preparing Video For Download...