Machine Learning não supervisionado com detecção de anomalias

O que é Anomalia e Detecção de Anomalia?
Uma anomalia é uma observação ou ponto de dados que se desvia significativamente do comportamento ou padrão esperado de um determinado conjunto de dados. As anomalias também são conhecidas como outliers ou anomalias.
A detecção de anomalias no aprendizado de máquina é o processo de identificação de tais anomalias em um conjunto de dados. A detecção de anomalias é uma técnica importante em aprendizado de máquina e mineração de dados, pois pode ser usada para detectar comportamentos incomuns, identificar erros e descobrir novos insights em grandes conjuntos de dados.
A detecção de anomalias é amplamente utilizada em várias aplicações, como detecção de fraude, detecção de intrusão de rede, diagnóstico médico e manutenção preditiva. O objetivo é detectar anomalias que possam indicar possíveis problemas ou oportunidades de melhoria.
Tipo de Detecção de Anomalia
Aqui estão alguns dos mais comuns:
- Detecção supervisionada de anomalias: essa técnica usa dados rotulados para treinar um modelo que pode detectar anomalias. O modelo é treinado em um conjunto de dados que inclui instâncias normais e anômalas.
- Detecção de anomalia não supervisionada: nesta técnica, o modelo aprende a identificar anomalias sem conhecimento prévio do que constitui um comportamento normal. É útil quando não há conjuntos de dados rotulados disponíveis ou quando as anomalias são raras e difíceis de encontrar.
- Detecção de anomalias semi-supervisionada: essa abordagem usa uma combinação de dados rotulados e não rotulados para treinar o modelo. O modelo aprende a identificar anomalias nos dados não rotulados com base no que aprendeu com os dados rotulados.
- Detecção Estatística de Anomalias: Este método usa técnicas estatísticas para detectar anomalias com base na distribuição dos dados. Envolve a identificação de pontos de dados que estão fora de um intervalo predefinido de valores ou que possuem propriedades estatísticas incomuns.
- Detecção de anomalias de aprendizado de máquina: os algoritmos de aprendizado de máquina podem ser usados para identificar anomalias treinando um modelo em dados normais e, em seguida, detectando desvios do padrão aprendido.
- Detecção de anomalias de aprendizado profundo: Técnicas de aprendizado profundo, como autoencoders e autoencoders variacionais, podem ser usadas para identificar anomalias aprendendo a reconstruir os dados de entrada e identificando pontos de dados com altos erros de reconstrução.
Vantagens e Desvantagens da Detecção de Anomalias
Aqui estão algumas vantagens e desvantagens da detecção de anomalias:
Vantagens:
- Detecção precoce de anomalias: a detecção de anomalias pode ajudar a identificar possíveis problemas ou oportunidades de melhoria antes que se tornem críticos. Isso pode ajudar empresas e organizações a tomar medidas proativas para prevenir ou mitigar impactos negativos.
- Precisão aprimorada: ao identificar e remover valores discrepantes, análises estatísticas e modelos de aprendizado de máquina podem obter melhor precisão e confiabilidade.
- Segurança aprimorada: a detecção de anomalias pode ajudar a identificar possíveis ameaças à segurança, como invasões de rede, fraude ou ataques cibernéticos.
- Eficiência aprimorada: ao identificar e remover exceções, empresas e organizações podem otimizar suas operações, reduzir erros e melhorar a produtividade.
- Falsos positivos: a detecção de anomalias às vezes pode identificar pontos de dados normais como valores discrepantes, levando a falsos positivos. Isso pode resultar em alertas ou ações desnecessárias e desperdício de tempo e recursos.
- Pré-processamento de dados: a detecção de anomalias requer um pré-processamento de dados cuidadoso e seleção de recursos para garantir resultados precisos e confiáveis. Isso pode consumir muito tempo e usar muitos recursos.
- Seleção de modelo: Escolher o modelo certo para detecção de anomalias pode ser um desafio, pois modelos diferentes têm diferentes pontos fortes e fracos e podem ser mais adequados para determinados tipos de dados ou aplicativos.
- Dados desequilibrados: a detecção de anomalias pode ser desafiadora em conjuntos de dados com classes desequilibradas, onde as anomalias são raras e difíceis de encontrar. Isso pode levar a baixas taxas de detecção e altas taxas de falsos negativos.
Aqui está um exemplo de detecção de anomalias usando o algoritmo Isolation Forest em Python:
Etapa 1: Carregar e pré-processar os dados Usaremos o conjunto de dados de detecção de fraude de cartão de crédito do Kaggle, que contém recursos anônimos de transações com cartão de crédito, incluindo o valor da transação e a hora da transação. Pré-processaremos os dados padronizando os recursos usando o StandardScaler do scikit-learn.
import pandas as pd
from sklearn.preprocessing import StandardScaler
# Load the data
df = pd.read_csv('creditcard.csv')
# Standardize the features
scaler = StandardScaler()
df.iloc[:, 1:-1] = scaler.fit_transform(df.iloc[:, 1:-1])
from sklearn.ensemble import IsolationForest
# Train the model
model = IsolationForest(contamination=0.01, random_state=42)
model.fit(df.iloc[:, 1:-1])
import numpy as np
from sklearn.metrics import precision_score, recall_score, f1_score
# Make predictions
y_pred = model.predict(df.iloc[:, 1:-1])
y_true = np.where(df.iloc[:, -1] == 0, 1, -1)
# Evaluate the results
precision = precision_score(y_true, y_pred, pos_label=-1)
recall = recall_score(y_true, y_pred, pos_label=-1)
f1 = f1_score(y_true, y_pred, pos_label=-1)
print('Precision: {:.3f}'.format(precision))
print('Recall: {:.3f}'.format(recall))
print('F1 score: {:.3f}'.format(f1))
Aplicação de Detecção de Anomalias
A detecção de anomalias tem uma ampla gama de aplicações em vários setores, incluindo:
- Detecção de fraudes em transações financeiras e uso de cartão de crédito
- Detecção de intrusão de rede em segurança cibernética
- Previsão de falha de equipamento e programação de manutenção em ambientes de fabricação e industriais
- Monitoramento de saúde e detecção de surtos de doenças
- Controle de qualidade em processos produtivos
- Detecção de anomalias em dados de sensores para aplicações IoT
- Monitoramento de logs de servidor e aplicativo para falha do sistema e detecção de erro
- Análise de tráfego e detecção de anomalias em transporte e logística
- Vigilância por vídeo e detecção de anomalias em sistemas de segurança
- Identificar anomalias no comportamento do usuário para prevenção de fraudes e segurança.