Rilevamento delle frodi nell'apprendimento automatico: cosa devi sapere [2022]
Pubblicato: 2021-01-02Cibo, vestiti, accessori o mobili. Tutto ciò che si acquistava dai negozi lungo le strade trafficate ora può essere acquistato online. L'e-commerce è un'industria multimiliardaria e sta crescendo sempre di più. Inutile dire che anche questo è alla portata del mondo criminale. I criminali online sono presenti in tutti i settori online che puoi nominare.
Il rilevamento delle frodi con l'apprendimento automatico è possibile grazie alla capacità dei modelli di apprendere dai dati sulle frodi passate per riconoscere i modelli e prevedere la legittimità delle transazioni future. Nella maggior parte dei casi, è più efficace degli esseri umani grazie alla velocità e all'efficienza dell'elaborazione delle informazioni.
Alcuni tipi di frodi su Internet sono:
- Falsificazione di identità. Al giorno d'oggi gli ID sono fabbricati così bene che è quasi impossibile per gli esseri umani verificarne la legittimità e prevenire qualsiasi frode di identità.
Attraverso l'uso dell'IA, è possibile analizzare varie caratteristiche dell'aspetto della carta d'identità per dare un risultato sull'autenticità del documento. Ciò consente alle aziende di stabilire i propri criteri di sicurezza quando vengono presentate richieste che richiedono determinati documenti di identità.
- Truffe sui prestiti bancari. Questi possono accadere se una persona ti contatta e offre uno schema di prestito con condizioni sospettosamente favorevoli. Qui la persona che ti contatterà ti chiederà le tue coordinate bancarie o il pagamento anticipato, senza avere alcuna informazione aziendale adeguata e nemmeno utilizzando un numero di contatto internazionale. Tali frodi possono essere facilmente gestite dall'IA utilizzando i precedenti record di richieste di prestito per filtrare gli inadempienti del prestito.
- E-mail di phishing. Si tratta di una sorta di criminalità informatica in cui siti e messaggi falsi vengono pubblicizzati agli utenti, chiedendo loro di condividere dati personali. Se una persona non è troppo attenta, può inserire dati riservati che possono renderla vulnerabile alle minacce. Il modo migliore per evitare questa frode è che l'utente stia attento, tuttavia, l'IA può fare il lavoro di scoprire le e-mail fraudolente filtrandole utilizzando algoritmi di apprendimento automatico di base come la regressione.
- Frodi con carte di credito. Questo è il tipo più comune di frode nei pagamenti. Questo perché tutti i dettagli sono archiviati online, il che rende più facile l'accesso a criminali e hacker. Anche le carte inviate per posta possono essere facilmente intercettate. Un modo per filtrare tali transazioni fraudolente utilizzando l'apprendimento automatico è discusso di seguito.
- Furto d'identità. Il machine learning per rilevare il furto di identità aiuta a controllare in tempo reale documenti di identità importanti come passaporti, carte PAN o patenti di guida. Inoltre, a volte possono essere richieste informazioni biometriche per migliorare ulteriormente la sicurezza. Questi metodi di sicurezza richiedono l'autenticazione di persona che riduce notevolmente la possibilità di frodi.
Leggi anche: Stipendio per ingegnere di apprendimento automatico in India
Modello per prevedere le frodi utilizzando i dati della carta di credito
Qui viene utilizzato un set di dati Kaggle molto famoso per dimostrare come funziona il rilevamento delle frodi utilizzando un semplice modello di rete neurale.

Importazioni:
importa panda come pd
importa numpy come np
importa flusso tensoriale come tf
importare chera
da sklearn.preprocessing import StandardScaler
da keras.models import Sequential
da keras.layers import Dense
da sklearn.model_selection import train_test_split
da sklearn.metrics import classificazione_report
Dai un'occhiata al set di dati qui . La colonna Importo viene normalizzata come tutte le altre funzionalità e la colonna Tempo viene rimossa in quanto irrilevante.
data= pd.read_csv ( 'creditcard.csv' )
data [ 'Amount_norm' ] = StandardScaler () .fit_transform ( data [ 'Amount' ] .values.reshape ( -1 , 1 ))
data= data.drop ([ 'Importo' ], asse= 1 )

data= data.drop ([ 'Time' ], asse= 1 )
dati= dati [: -1 ]
dati.info()
Ora, dopo un po' di pulizia dei dati, il nostro set di dati contiene un totale di 28 funzionalità e un target, tutte con valori float che non sono vuoti.
Il nostro obiettivo è la colonna Classe che determina se la particolare transazione con carta di credito è una frode o meno. Quindi il set di dati è diviso di conseguenza in treno e test, mantenendo il consueto rapporto di divisione 80:20. ( random_state è stato corretto per aiutarti a riprodurre i tuoi dati divisi)
X = data.iloc [:, data.columns != 'Class' ]
y = data.iloc [:, data.columns == 'Classe' ]
X_train , X_test , y_train , y_test = train_test_split ( X , y , test_size = 0.2 , random_state= 0 )
Usiamo il modello sequenziale della libreria keras per costruire una rete neurale con 3 strati densi. Il livello di output contiene solo un singolo neurone che utilizzerà la funzione sigmoide per ottenere una classe positiva o una classe negativa.
Il modello viene quindi compilato con l'ottimizzatore adam , anche se si consiglia vivamente di provare da soli diversi valori di parametri iper, come il numero di unità in ogni livello, l'attivazione, l'ottimizzatore, ecc. per vedere cosa funziona meglio per un dato set di dati.
modello= Sequenziale ()
model.add ( Denso ( unità = 16 , attivazione = 'relu' , input_dim = 29 ))
model.add ( Denso ( unità = 16 , attivazione = 'relu' ))
model.add ( Denso ( unità= 1 , attivazione = 'sigmoide' ))
modello. compilare ( ottimizzatore = 'adam' , perdita = 'binary_crossentropy' , metriche = [ 'accuratezza' ])
model.fit ( X_train , y_train , batch_size = 32 , epochs = 15 )
Questo è il risultato dopo aver eseguito il modello per alcune epoche.
Vediamo che il modello offre una precisione del 99,97% molto velocemente. Di seguito, y_pred contiene le previsioni fatte dal nostro modello sui dati del test e viene mostrato un riassunto accurato delle sue prestazioni.
y_pred = modello.predict ( X_test )

y_pred = ( y_pred > 0,5 )
stampa ( report_classificazione ( y_test , y_pred ))
Leggi: Idee per progetti di apprendimento automatico per principianti
Conclusione
Quindi in questo modo siamo stati in grado di costruire con successo un modello altamente accurato per determinare le transazioni fraudolente. Questi sono molto utili per scopi di gestione del rischio.
Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT- B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.