Detección de fraude en el aprendizaje automático: lo que necesita saber [2022]
Publicado: 2021-01-02Alimentos, ropa, accesorios o muebles. Todo lo que solías comprar en las tiendas de las calles concurridas ahora se puede comprar en línea. El comercio electrónico es una industria multimillonaria y está aumentando cada vez más. No hace falta decir que esto también está al alcance del mundo criminal. Los delincuentes en línea están presentes en todos los sectores en línea que pueda nombrar.
La detección de fraude con aprendizaje automático es posible gracias a la capacidad de los modelos para aprender de los datos de fraude anteriores para reconocer patrones y predecir la legitimidad de transacciones futuras. En la mayoría de los casos, es más efectivo que los humanos debido a la velocidad y eficiencia del procesamiento de la información.
Algunos tipos de fraudes en Internet son:
- Falsificación de identidad. Hoy en día , las identificaciones se fabrican tan bien que es casi imposible para los humanos verificar su legitimidad y evitar cualquier fraude de identidad.
Mediante el uso de IA, se pueden analizar varias características de la apariencia de la tarjeta de identificación para dar un resultado sobre la autenticidad del documento. Esto permite a las empresas establecer sus propios criterios de seguridad cuando se realizan solicitudes que requieren determinados documentos de identidad.
- Estafas de préstamos bancarios. Esto puede ocurrir si una persona se pone en contacto con usted y le ofrece un plan de préstamo con condiciones sospechosamente favorables. Aquí, la persona que se comunique con usted le pedirá sus datos bancarios o el pago por adelantado, sin tener ninguna información adecuada de la empresa o incluso utilizando un número de contacto internacional. Estos fraudes pueden ser manejados fácilmente por AI utilizando registros de solicitudes de préstamos anteriores para filtrar a los morosos.
- Suplantación de identidad por correo electrónico. Este es un tipo de delito cibernético en el que se anuncian sitios y mensajes falsos a los usuarios, pidiéndoles que compartan datos personales. Si una persona no es demasiado cuidadosa, puede ingresar datos confidenciales que pueden hacerlos vulnerables a las amenazas. La mejor manera de evitar este fraude es que el usuario tenga cuidado, sin embargo, la IA puede hacer el trabajo de descubrir correos electrónicos fraudulentos filtrándolos utilizando algoritmos básicos de aprendizaje automático como la regresión.
- Fraudes con tarjetas de crédito. Este es el tipo más común de fraude de pago. Esto se debe a que todos los detalles se almacenan en línea, lo que facilita el acceso a los delincuentes y piratas informáticos. Las tarjetas enviadas por correo también se pueden interceptar fácilmente. A continuación se analiza una forma de filtrar este tipo de transacciones fraudulentas mediante el aprendizaje automático.
- El robo de identidad. El aprendizaje automático para detectar el robo de identidad ayuda a verificar documentos de identidad valiosos, como pasaportes, tarjetas PAN o licencias de conducir en tiempo real. Además, a veces se puede requerir información biométrica para mejorar aún más la seguridad. Estos métodos de seguridad necesitan autenticación en persona, lo que reduce en gran medida la posibilidad de fraudes.
Lea también sobre: Salario de ingeniero de aprendizaje automático en India
Modelo para predecir el fraude utilizando datos de tarjetas de crédito
Aquí se utiliza un conjunto de datos de Kaggle muy famoso para demostrar cómo funciona la detección de fraude utilizando un modelo de red neuronal simple.

Importaciones:
importar pandas como pd
importar numpy como np
importar tensorflow como tf
importar kera
de sklearn.preprocessing importar StandardScaler
de keras.models import Secuencial
de keras.layers import Dense
de sklearn.model_selection import train_test_split
de sklearn.metrics importar clasificación_informe
Echa un vistazo al conjunto de datos aquí . La columna Cantidad se normaliza como todas las demás funciones y la columna Tiempo se elimina porque es irrelevante.
data= pd.read_csv ( 'creditcard.csv' )
datos [ 'Amount_norm' ] = StandardScaler () .fit_transform ( datos [ 'Amount' ] .values.reshape ( -1 , 1 ))
data= data.drop ([ 'Cantidad' ], eje= 1 )

data= data.drop ([ 'Tiempo' ], eje= 1 )
datos= datos [: -1 ]
datos.info()
Ahora, después de una limpieza de datos, nuestro conjunto de datos contiene un total de 28 características y un objetivo, todos con valores flotantes que no están vacíos.
Nuestro objetivo es la columna Clase que determina si la transacción de tarjeta de crédito en particular es un fraude o no. Entonces, el conjunto de datos se divide en consecuencia en entrenamiento y prueba, manteniendo la relación de división habitual de 80:20. ( random_state se corrige para ayudarlo a reproducir sus datos divididos)
X = datos.iloc [:, datos.columnas != 'Clase' ]
y = datos.iloc [:, datos.columnas == 'Clase' ]
X_tren , X_prueba , y_tren , y_prueba = tren_prueba_división ( X , y , tamaño_prueba = 0.2 , estado_aleatorio= 0 )
Usamos el modelo secuencial de la biblioteca keras para construir una red neuronal con 3 capas densas. La capa de salida contiene solo una sola neurona que usará la función sigmoidea para dar como resultado una clase positiva o una clase negativa.
Luego, el modelo se compila con Adam Optimizer, aunque se recomienda enfáticamente que pruebe diferentes valores de hiperparámetros por sí mismo, como el número de unidades en cada capa, activación, optimizador, etc. para ver qué funciona mejor para un determinado conjunto de datos
modelo= Secuencial ()
model.add ( Denso ( unidades= 16 , activación = 'relu' , input_dim = 29 ))
model.add ( Denso ( unidades = 16 , activación = 'relu' ))
model.add ( Denso ( unidades = 1 , activación = 'sigmoide' ))
modelo. compilar ( optimizador = 'adam' , pérdida = 'binary_crossentropy' , métricas = [ 'precisión' ])
model.fit ( X_tren , y_tren , lote_tamaño = 32 , épocas = 15 )
Este es el resultado después de ejecutar el modelo durante algunas épocas.
Vemos que el modelo da un 99,97% de precisión muy rápido. A continuación, y_pred contiene las predicciones realizadas por nuestro modelo sobre los datos de prueba, y se muestra un resumen ordenado de su rendimiento.
y_pred = modelo.predecir ( X_test )

y_pred = ( y_pred > 0.5 )
imprimir ( clasificación_informe ( y_test , y_pred ))
Leer: Ideas de proyectos de aprendizaje automático para principiantes
Conclusión
Entonces, de esta manera, pudimos construir con éxito un modelo altamente preciso para determinar transacciones fraudulentas. Estos son muy útiles para fines de gestión de riesgos.
Si está interesado en obtener más información sobre el aprendizaje automático, consulte el Diploma PG en aprendizaje automático e IA de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT- B Estado de exalumno, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.