We use cookies

We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.


🔥 Quer saber como aplicar o Isolation Forest para detecção de fraudes?

Aprenda a intuição do algoritmo por meio de uma aplicação para detecção de fraudes em 5 passos


1. Aprenda a intuição por trás do algoritmo: Isolation Forest

  • 🕵️ Anomalias são mais fáceis de isolar do que observações normais
  • 🌳 O modelo cria árvores de decisão que dividem os dados aleatoriamente com base nos valores das features
  • 🟣 Anomalias requerem menos divisões (ramos da árvore) para serem isoladas (chegar ao nó folha)
  • ⚪ Valores normais requerem mais divisões para serem isolados


1. Aprenda a intuição por trás do algoritmo: Isolation Forest

  • ➗ Quanto menor o número de divisões necessárias para isolar um ponto, maior será seu score de anomalia.
  • 🤖 No sklearn esse score varia de -1 (anomalia) a 1 (normal).
  • ⏸️ É semelhante ao random-forest, mas se trata de um algoritmo não supervisionado
  • ⚖️ Aplicado em problemas bem desbalanceados (ex: 0.1% de desbalanceamento)
  • ✖️ Ou quando não existem exemplos rotulados (não supervisionado)

2. Descubra como o isolation forest pode ser aplicado para detectar fraudes em cartões

  • Problema: como identificar transações fraudulentas de cartões de crédito ?
  • ❌ Queremos decidir se uma transação deve ser bloqueada,
  • ⚠️ Se deve ser gerado apenas um aviso de suspeita de fraude
  • ✅ Ou, se a transação deve ser liberada
  • 🌳 Fraudes são difíceis de rotular, pode não haver exemplos de fraudes
  • ⚙️ Por isso a importância de um modelo não supervisionado
  • 📋 Ao lado a descrição do dataset de exemplo (link do dataset)
Field name Type
transaction_amount number
installments integer
login_attempts_last_12h integer
total_of_last_1h_transactions number
merchant_id string
time_of_day string
location string

3. Treinando o isolation forest

Agora vamos treinar o isolation forest usando os dados de transações, primeiros vamos importar as libs e carregar o nosso dataset:

from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Load the synthetic credit card transactions dataset
# Dataset link: https://www.kaggle.com/datasets/marcusos/synthetic-fraud-detection
df = pd.read_csv('data/transactions.csv')

# numerical variables
numerical_cols = ['transaction_amount', 'installments', 'login_attempts_last_12h', 'total_of_last_1h_transactions']

# One-hot encode the categorical variables
categorical_cols = ["merchant_id", "location", "time_of_day"]

features = numerical_cols + categorical_cols
df[features].head()
transaction_amount installments login_attempts_last_12h total_of_last_1h_transactions merchant_id location time_of_day
0 149.906 1 1 0 B USA afternoon
1 562.798 1 0 2 A USA morning
2 86.064 1 1 1 B Canada afternoon
3 571.313 1 2 0 C USA afternoon
4 1146.57 1 2 2 A Canada morning

3. Treinando o isolation forest

Agora vamos pre-processar o dataset (tratando as categóricas) e por fim fitar o IsolationForest

# Enconding categorical variables using OneHotEncoder
onehot_encoder = OneHotEncoder(sparse_output=False)
onehot_encoded = onehot_encoder.fit_transform(df[categorical_cols])
df_encoded = pd.concat([df[numerical_cols], pd.DataFrame(onehot_encoded)], axis=1)

# Train the isolation forest model
clf = IsolationForest(random_state=42)
clf.fit(df_encoded.values)

# Make predictions on the data
preds = clf.decision_function(df_encoded.values)

3. Treinando o isolation forest: verificando o resultado

  • 📈 Ao lado temos o plot do score de anomalia versus o valor da transação.
  • ➗ É possível observar que o modelo consegue separar razoavelmente as anomalias (fraudes).
  • ➗ Entre -0.10 e -0.15, o modelo já encontra algumas fraudes, mas ainda pode errar bastante (falsos positivos)
  • ➗ Porém, abaixo do score -0.15, o modelo consegue identificar bem os casos anômalos

4. Um sistema antifraude usando o isolation forest

  • ⚠️ Podemos usar o range de -0.10 até -0.15 para gerar alertas de fraude.
  • ❌ Podemos usar o range de -0.15 até -1 para bloquear transações.
  • 🔢 Usando -0.15 como ponto de corte para bloqueio, o modelo teria 45% de recall
  • 🤌 Ou seja, ele conseguiria bloquear 45% das transações fraudulentas
  • 🌲 Ao utilizar o isolation forest é possível criar um sistema antifraude robusto e eficaz.

4. Um sistema antifraude usando o isolation forest

  • Segue um diagram ilustrando a apliação do modelo treinado em um sistema antifraude

5. Vantagens e Desvatagens do isolation forest

👍 Vantagens

  • Consegue lidar com alta dimensionalidade (alto número de features)
  • Não exige conhecimento prévio da distribuição dos dados.
  • Reduz o overfitting por usar multiplas árvores de decisão
  • Escalável, algoritmo rápido, com complexidade linear
  • Não precisa de um label

👎 Desvatagens

  • Pode ter problemas com dados muito esparsos ou discrepantes
  • Dificuldade em lidar com categóricos de alta cardinalidade (muitas categorias)
  • Interpretabilidade limitada: Isolation Forest é um algoritmo de black-box
  • Necessidade de especificar alguns hiperparâmetros

Achou esse conteúdo útil?

Me ajude dando o seu like, comentando ou compartilhando essa publicação. Sua opinião é importante para mim! ❤️👍


www.fintechscientist.com

1 / 11
🔥 Quer saber como aplicar o Isolation Forest para detecção de fraudes? Aprenda a intuição do algoritmo por meio de uma aplicação para detecção de fraudes em 5 passos

  1. Slides

  2. Tools

  3. Close
  • 🔥 Quer saber como aplicar o Isolation Forest para detecção de fraudes?
  • 1. Aprenda a intuição...
  • 1. Aprenda a intuição...
  • 2. Descubra como...
  • 3. Treinando o isolation...
  • 3. Treinando o isolation...
  • 3. Treinando o isolation...
  • 4. Um sistema antifraude...
  • 4. Um sistema antifraude...
  • 5. Vantagens e Desvatagens...
  • Achou esse conteúdo...
  • f Fullscreen
  • s Speaker View
  • o Slide Overview
  • e PDF Export Mode
  • b Toggle Chalkboard
  • c Toggle Notes Canvas
  • d Download Drawings
  • ? Keyboard Help