Predicción de trabajo fraudulenta

Dec 05 2022
Un clasificador que predice si un trabajo es real o falso Introducción A lo largo de los años, ha habido un aumento en las ofertas de trabajo falsas debido a la rápida afluencia de usuarios en el mundo digital. Factores como el COVID 19 y la inminente recesión mundial han perturbado por completo el mercado laboral y han provocado despidos masivos.

Un clasificador que predice si un trabajo es real o falso

Introducción

Ha habido un aumento en las ofertas de trabajo falsas a lo largo de los años debido a la rápida afluencia de usuarios en el mundo digital. Factores como el COVID 19 y la inminente recesión mundial han perturbado por completo el mercado laboral y han provocado despidos masivos. Se denunciaron más de 20 700 estafas de oportunidades comerciales y laborales en el primer trimestre de 2022, y aproximadamente un tercio de ellas causaron pérdidas financieras a las víctimas. Las recientes congelaciones de contratación y los despidos a gran escala por parte de gigantes tecnológicos como Google, Facebook y Apple son una prueba más de que el mercado laboral mundial va cuesta abajo.

Este aumento en el desempleo ha preparado el escenario para que los estafadores se aprovechen de las personas que apenas cuelgan de un hilo con respecto a su posición financiera. Estos estafadores publican promesas fraudulentas de un trabajo para atraer a los solicitantes de empleo a postularse. La mayoría de las veces, estas ofertas de trabajo contienen oportunidades profesionales extremadamente lucrativas que ocasionalmente exigen una inversión por parte del solicitante. Incluso si no es necesaria una inversión, estas ofertas de trabajo fraudulentas permiten a los estafadores obtener información personal, como información de cuentas bancarias, número de seguro social, direcciones, etc. Esta información puede usarse más tarde para el robo de identidad o el fraude financiero.

Nuestro enfoque es predecir, con la precisión adecuada, si una publicación de trabajo en particular es real o falsa según la información proporcionada en la publicación.

conjunto de datos

Este proyecto utiliza un conjunto de datos proporcionado en Kaggle . Dado que este conjunto de datos contiene 18 000 entradas, se puede clasificar como una muestra porque solo se recopilan datos para una subparte de la población. Hemos seleccionado este conjunto de datos en particular porque tiene un amplio conjunto de características que incluyen tanto descripciones de trabajo textuales como metainformación sobre los trabajos. Aquí hay un fragmento que muestra todas las columnas presentes en los datos:

Hay 17 columnas en el conjunto de datos que hemos seleccionado, de las cuales las primeras 16 son columnas de características y la última es la columna de salida. Las columnas de características son una combinación de tipos de datos enteros, binarios y textuales, mientras que la columna de salida es booleana. Un valor de 0 en la columna 'fraudulento' indica que el trabajo publicado era real, mientras que un valor de 1 indica que el trabajo era falso.

Creemos que el conjunto de datos es muy valioso ya que contiene todas las características clave que podrían permitirnos crear un modelo de clasificación que pueda identificar descripciones de trabajo falsas.

Metas

Con base en el análisis exploratorio de datos (EDA) a continuación, seleccionamos las siguientes dos preguntas de investigación para nuestro proyecto:

RQ1: ¿ Cuáles son algunos marcadores que los buscadores de empleo pueden usar para detectar ofertas de trabajo falsas?

RQ2: ¿Podemos entrenar un modelo clasificador que pueda identificar adecuadamente si una oferta de trabajo es real o falsa?

Análisis exploratorio de datos

Comenzamos nuestro análisis visualizando la cantidad de valores de NaN presentes en cada columna de nuestro conjunto de datos mediante el uso de un gráfico de barras.

La visualización muestra que las columnas "departamento" y "salary_range" tienen una gran cantidad de valores NaN. Como resultado, estas dos columnas se eliminan.

Aproximadamente el 95 % de las descripciones de puestos son reales, mientras que solo el 5 % de los puestos son falsos. Dado que las proporciones de clase están muy sesgadas, estamos tratando con datos desequilibrados en los que los trabajos fraudulentos forman la clase minoritaria. A continuación, visualizamos los recuentos de trabajos reales y falsos.

Ahora que terminamos con la limpieza inicial de nuestros datos y visualizamos los recuentos de clases individuales, podemos proceder a identificar las diferentes tendencias presentes en el conjunto de datos. El primer paso es analizar la relación entre los datos numéricos. El siguiente mapa de calor de correlación indica la ausencia de una fuerte correlación positiva o negativa entre los datos numéricos.

Al hojear el conjunto de datos, es evidente que contiene entradas de todo el mundo. Para juzgar con precisión la demografía presente, trazamos el número de trabajos en cada país.

Como se ve en la gráfica, una abrumadora mayoría (más de 10k trabajos) de los trabajos provienen únicamente de los Estados Unidos (EE. UU.) y están en inglés. Por lo tanto, filtramos las ofertas de trabajo de los EE. UU. solo para evitar problemas de idioma. Esta decisión se tomó teniendo en cuenta nuestro plan de utilizar incrustaciones de palabras y otras técnicas de procesamiento del lenguaje natural para entrenar un modelo contextual sobre descripciones de puestos y otras características textuales para la predicción de puestos falsos.

Para facilitar el procesamiento, dividimos la columna de ubicación en país, estado y ciudad. La columna original "ubicación" se elimina. Además, eliminamos las filas donde el estado y la ciudad están vacíos o NaN para evitar problemas en el procesamiento de datos.

Dado que nuestro conjunto de datos ahora solo contiene valores de los EE. UU., podemos ver una comparación entre la cantidad de trabajos fraudulentos y reales en cada estado. El siguiente gráfico muestra que Nueva York, California y Texas tienen la mayor cantidad de ofertas de trabajo reales y, en consecuencia, también la mayor cantidad de ofertas de trabajo falsas. Como se ve, Texas y California tienen una mayor cantidad de anuncios de trabajo falsos que Nueva York.

Sin embargo, dicho análisis visual no representa con precisión la cantidad de ofertas de trabajo falsas en comparación con las ofertas de trabajo reales. Por lo tanto, los estados y las ciudades están condicionados a datos fraudulentos y se calcula la proporción entre trabajos falsos y reales. Por ejemplo,

Solo las ciudades con una proporción > 1, es decir, más trabajos falsos que trabajos reales, se muestran en el gráfico de barras para evitar el desorden.

Para investigar la distribución de trabajos falsos para diferentes clases en las columnas: tipo de empleo, experiencia requerida, educación requerida, has_company_logo y función; sus datos se trazaron como se muestra a continuación.

Para resumir estos gráficos, los trabajos falsos suelen ser puestos de tiempo completo, de nivel de entrada, de ingeniería y administrativos, generalmente con una educación requerida equivalente a un diploma de escuela secundaria. Las empresas sin logotipo tienen más posibilidades de publicar trabajos falsos que de otra manera.

Por último, para el análisis general de las columnas de texto, todas se combinan en una columna donde se traza un histograma para observar la diferencia en el recuento de caracteres entre trabajos fraudulentos y no fraudulentos. Como se ve, los trabajos fraudulentos tienen considerablemente menos palabras en comparación con los trabajos no fraudulentos.

Clasificación

Conjunto de características

Recopilamos todas las columnas de texto en una sola columna para facilitar el procesamiento. Las columnas de texto individuales se eliminan. Agregamos el recuento total de caracteres del texto intercalado como otra columna.

División de prueba de tren

Luego dividimos los datos en conjuntos de entrenamiento y validación. Hacemos un entrenamiento del 70 %, división de prueba del 30 %. Nuestros datos de trenes tienen 6.923 trabajos de los cuales 442 (6,4 %) son falsos. Nuestros datos de prueba tienen 2.968 trabajos de los cuales 187 (6,3 %) son falsos.

Métricas de evaluación

Usamos las siguientes cuatro métricas para evaluar un modelo de clasificación:

  1. Precisión

3. Recordar

4. Puntuación F1

Capacitación

Primero intentamos predecir si un trabajo es real o falso utilizando características numéricas en los datos.

Entrenamos y evaluamos los siguientes modelos clasificadores:

1. Regresión logística

2. Clasificador de máquina de vectores de soporte (SVM), es decir, SVC

3. Clasificador de bosque aleatorio

Los resultados de estos tres enfoques se resumen en la siguiente tabla:

Resultados de la clasificación usando solo características numéricas

Aunque el clasificador de bosque aleatorio es capaz de realizar clasificaciones considerablemente precisas, los tres modelos de clasificador entrenados utilizando solo características numéricas tienen puntuaciones de precisión, recuperación y F1 muy bajas.

Matriz de confusión para el clasificador de bosque aleatorio entrenado solo con datos numéricos: si bien el modelo puede lograr una precisión considerablemente alta, solo predice trabajos falsos con una precisión de aproximadamente el 37 %. La alta precisión del modelo se debe al hecho de que predice trabajos reales correctamente con una precisión casi perfecta del 94,4 %. Dado que el 95% de los trabajos en nuestros datos son reales, esto logra una alta precisión general.

Dado que ninguno de los modelos entrenados en características numéricas puede clasificar con precisión los trabajos falsos, debemos usar las características textuales a través de técnicas de procesamiento de lenguaje natural para hacer mejores predicciones.

Procesamiento natural del lenguaje

Implementamos un pipeline con los siguientes pasos:

  1. CountVectorizer : el preprocesamiento de texto, la tokenización y el filtrado de palabras vacías están incluidos en CountVectorizer, que crea un diccionario de características y transforma documentos en vectores de características.
  2. TfidfTransformer : los documentos más largos tendrán un mayor número de palabras en promedio que los documentos más cortos. Para superar este problema, el transformador Tfidf divide el número de ocurrencias de cada palabra en un documento por el número total de palabras en el documento para obtener frecuencias de término (tf). Además, reduce el peso de las palabras que aparecen en un gran número de muestras. Esto se debe a que estas palabras serán menos útiles en la clasificación.
  3. Clasificador : Modelo clasificador que realiza la tarea de clasificación de predecir la categoría (fraudulenta o no) de un puesto de trabajo.
  1. Clasificador SGD
    Utilizamos la pérdida de bisagra que proporciona un SVM lineal que se considera uno de los mejores modelos de clasificador para tareas de clasificación de texto. Además, usamos class_weight=”balanced”, ya que hay un gran desequilibrio de clases en nuestros datos. Al usar esta función, a la clasificación desequilibrada se le asigna automáticamente un peso más alto.
  2. Clasificador de bosques aleatorios
    Realizamos validación cruzada en bosques aleatorios para obtener valores óptimos para la profundidad máxima de los hiperparámetros y el número de estimadores. Usamos el error cuadrático medio (MSE) como función de pérdida. A continuación se muestra un gráfico en 3D de la función de error cuadrático medio frente a un rango de valores para la profundidad máxima y el número de estimadores. Se encuentra que los parámetros óptimos son el número de estimadores = 50 y la profundidad máxima = 16. Luego evaluamos el modelo clasificador de bosque aleatorio para estos valores. Además, también utilizamos pesos de clase automáticos mediante el uso del parámetro class_weight proporcionado por sklearn para superar el desequilibrio de clase en el conjunto de datos.
Resultados de clasificación basada en datos textuales usando Procesamiento de Lenguaje Natural

Tras la comparación, es evidente que el SGD funciona mucho mejor que el clasificador de bosque aleatorio en nuestros datos. Al usar el clasificador SGD en la canalización, podemos predecir si un trabajo es real o falso con la precisión y el recuerdo adecuados.

Resultados

La siguiente tabla resume estas métricas para nuestro mejor modelo:

La siguiente es la matriz de confusión para las clasificaciones realizadas por el modelo. Clasificó erróneamente solo 14 de los 2781 reales 27 de los 187 trabajos falsos.

Hubo un total de 2781 trabajos reales y 187 falsos en el conjunto de validación.

Nuestro modelo clasificó correctamente 2767 de 2781 trabajos reales como reales (precisión = 99,50 %) y 160 de 187 trabajos falsos como falsos (precisión = 85,56 %).

Trabajo futuro

Nuestro modelo predice correctamente los trabajos reales con una precisión casi perfecta, pero se podría mejorar la precisión de la predicción de los trabajos falsos. Esto se debe a que la proporción de trabajos falsos en el conjunto de datos es realmente pequeña (~ 6 %). El trabajo de seguimiento podría centrarse en la recopilación de un nuevo conjunto de datos equilibrado con más trabajos falsos. Se podrían utilizar técnicas como la técnica de sobremuestreo de minorías sintéticas (SMOTE) para abordar el problema del desequilibrio de clases. Otra mejora potencial sería usar un método de conjunto para la predicción utilizando características tanto textuales como numéricas dentro de los datos.

Referencias

  1. https://www.kaggle.com/datasets/shivamb/real-or-fake-fake-jobposting-prediction
  2. https://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
  3. https:///@corymaklin/synthetic-minority-over-sampling-technique-smote-7d419696b88c