Fałszywa prognoza pracy
Klasyfikator, który przewiduje, czy praca jest prawdziwa, czy fałszywa
Wstęp
Na przestrzeni lat nastąpił wzrost fałszywych ogłoszeń o pracę ze względu na szybki napływ użytkowników w cyfrowym świecie. Czynniki takie jak COVID 19 i zbliżająca się globalna recesja całkowicie zakłóciły rynek pracy i doprowadziły do masowych zwolnień. W pierwszym kwartale 2022 roku zgłoszono ponad 20 700 oszustw związanych z biznesem i zatrudnieniem, z których około jedna trzecia spowodowała straty finansowe dla ofiar. Niedawne zamrożenie zatrudnienia i zwolnienia na dużą skalę dokonywane przez gigantów technologicznych, takich jak Google, Facebook i Apple, są kolejnym dowodem na to, że globalny rynek pracy spada.
Ten wzrost bezrobocia przygotował scenę dla oszustów, którzy żerują na ludziach, którzy ledwo trzymają się na włosku, jeśli chodzi o ich sytuację finansową. Ci oszuści publikują oszukańcze obietnice pracy, aby zachęcić osoby poszukujące pracy do złożenia podania. Najczęściej te oferty pracy zawierają niezwykle lukratywne możliwości kariery, które od czasu do czasu wymagają inwestycji od wnioskodawcy. Nawet jeśli żadna inwestycja nie jest konieczna, te oszukańcze oferty pracy pozwalają oszustom uzyskać dane osobowe, takie jak informacje o koncie bankowym, numer ubezpieczenia społecznego, adresy itp. Informacje te mogą później zostać wykorzystane do kradzieży tożsamości lub oszustwa finansowego.
Skupiamy się na przewidywaniu z odpowiednią precyzją, czy dana oferta pracy jest prawdziwa, czy fałszywa na podstawie informacji zawartych w poście.
Zbiór danych
Ten projekt korzysta ze zbioru danych udostępnionego w serwisie Kaggle . Ponieważ ten zbiór danych zawiera 18 000 wpisów, można go sklasyfikować jako próbkę, ponieważ dane są gromadzone tylko dla części populacji. Wybraliśmy ten konkretny zestaw danych, ponieważ zawiera bogaty zestaw funkcji, w tym zarówno tekstowe opisy stanowisk, jak i metainformacje o stanowiskach. Oto fragment pokazujący wszystkie kolumny obecne w danych:
W wybranym zbiorze danych znajduje się 17 kolumn, z których pierwsze 16 to kolumny funkcji, a ostatnia to kolumna wyjściowa. Kolumny funkcji są mieszanką danych całkowitych, binarnych i tekstowych, podczas gdy kolumna wyjściowa jest wartością logiczną. Wartość 0 w kolumnie „fałszywa” wskazuje, że wysłana oferta pracy była prawdziwa, a wartość 1 wskazuje, że oferta była fałszywa.
Uważamy, że zbiór danych jest bardzo cenny, ponieważ zawiera wszystkie kluczowe cechy, które pozwolą nam stworzyć model klasyfikacyjny, który może zidentyfikować fałszywe opisy stanowisk.
Cele
W oparciu o poniższą eksploracyjną analizę danych (EDA), opracowujemy krótką listę następujących dwóch pytań badawczych do naszego projektu:
Pytanie 1: Jakich znaczników mogą użyć osoby poszukujące pracy, aby wykryć fałszywe oferty pracy?
Pytanie 2: Czy możemy wyszkolić model klasyfikatora, który może odpowiednio określić, czy ogłoszenie o pracę jest prawdziwe, czy fałszywe?
Analiza danych rozpoznawczych
Rozpoczynamy naszą analizę od wizualizacji liczby wartości NaN obecnych w każdej kolumnie naszego zbioru danych za pomocą wykresu słupkowego.
Wizualizacja pokazuje, że kolumny „department” i „salary_range” mają dużą liczbę wartości NaN. W rezultacie te dwie kolumny są usuwane.
Około 95% opisów stanowisk jest prawdziwych, a tylko 5% ofert pracy jest fałszywych. Ponieważ proporcje klasowe są bardzo wypaczone, mamy do czynienia z niezrównoważonymi danymi, w których oszukańcze prace tworzą klasę mniejszościową. Poniżej przedstawiamy wizualizację liczby prawdziwych i fałszywych ofert pracy.
Teraz, gdy zakończyliśmy wstępne czyszczenie naszych danych i zwizualizowaliśmy liczbę poszczególnych klas, możemy przystąpić do identyfikowania różnych trendów obecnych w zbiorze danych. Pierwszym krokiem jest analiza relacji między danymi liczbowymi. Poniższa mapa cieplna korelacji wskazuje na brak jakiejkolwiek silnej dodatniej lub ujemnej korelacji między danymi liczbowymi.
Przeglądając zestaw danych, widać, że zawiera on wpisy z całego świata. Aby dokładnie ocenić obecne dane demograficzne, wykreślamy liczbę miejsc pracy w każdym kraju.
Jak widać na wykresie, przytłaczająca większość (ponad 10 tys. miejsc pracy) ofert pracy pochodzi wyłącznie ze Stanów Zjednoczonych (US) i jest w języku angielskim. W związku z tym filtrujemy oferty pracy tylko z USA, aby uniknąć problemów językowych. Ta decyzja została podjęta z myślą o naszym planie wykorzystania osadzania słów i innych technik przetwarzania języka naturalnego do trenowania kontekstowego modelu opisów stanowisk i innych funkcji tekstowych w celu fałszywego przewidywania stanowisk.
Aby ułatwić przetwarzanie, podzieliliśmy kolumnę lokalizacji na kraj, województwo i miasto. Oryginalna kolumna „lokalizacja” została usunięta. Ponadto usunęliśmy wiersze, w których stan i miasto są puste lub NaN, aby uniknąć problemów z przetwarzaniem danych.
Ponieważ nasz zbiór danych zawiera obecnie tylko wartości ze Stanów Zjednoczonych, możemy zobaczyć porównanie liczby fałszywych i prawdziwych miejsc pracy w każdym stanie. Poniższy wykres pokazuje, że Nowy Jork, Kalifornia i Teksas mają największą liczbę prawdziwych ofert pracy i odpowiednio największą liczbę fałszywych ofert pracy. Jak widać, Teksas i Kalifornia mają większą liczbę fałszywych ofert pracy niż Nowy Jork.
Jednak taka analiza wizualna nie przedstawia dokładnie liczby fałszywych ofert pracy w porównaniu z rzeczywistymi ofertami pracy. Dlatego stany i miasta są uzależniane od fałszywych danych i obliczany jest stosunek między fałszywymi a prawdziwymi miejscami pracy. Na przykład,
Tylko miasta ze wskaźnikiem > 1, tj. więcej fałszywych ofert pracy niż prawdziwych, są wyświetlane na wykresie słupkowym, aby uniknąć bałaganu.
Zbadanie rozkładu fałszywych ofert pracy dla różnych klas w kolumnach: rodzaj zatrudnienia, wymagane doświadczenie, wymagane wykształcenie, ma_logo_firmy i stanowisko; ich dane zostały wykreślone, jak pokazano poniżej.
Podsumowując te wykresy, fałszywe oferty pracy to zazwyczaj pełnoetatowe, podstawowe stanowiska, inżynierskie i administracyjne, zwykle z wymaganym wykształceniem równoważnym dyplomowi ukończenia szkoły średniej. Firmy bez logo mają większe szanse na publikowanie fałszywych ofert pracy niż inne.
Wreszcie, w celu nadrzędnej analizy kolumn tekstowych, wszystkie są łączone w jednej kolumnie, w której wykreślany jest histogram, aby obserwować różnicę w liczbie znaków między oszukańczymi i nieoszukańczymi zadaniami. Jak widać, oszukańcze prace mają znacznie mniej słów w porównaniu z pracami nieoszukańczymi.
Klasyfikacja
Zestaw funkcji
Łączymy wszystkie kolumny tekstowe w jedną kolumnę, aby ułatwić przetwarzanie. Poszczególne kolumny tekstowe są usuwane. Dodajemy całkowitą liczbę znaków zestawionego tekstu jako kolejną kolumnę.
Podział testu pociągu
Następnie podzieliliśmy dane na zestawy treningowe i walidacyjne. Robimy podział 70% pociągu — 30% testu . Nasze dane dotyczące pociągów zawierają 6 923 ofert pracy, z których 442 (6,4%) jest fałszywych. Nasze dane testowe obejmują 2968 ofert pracy, z których 187 (6,3%) jest fałszywych.
Metryki oceny
Do oceny modelu klasyfikacji używamy następujących czterech metryk:
- Precyzja
3. Przypomnij sobie
4. Wynik F1
Trening
Najpierw próbujemy przewidzieć, czy praca jest prawdziwa, czy fałszywa, używając cech numerycznych w danych.
Szkolimy i oceniamy następujące modele klasyfikatorów:
1. Regresja logistyczna
2. Klasyfikator maszyn wektorów nośnych (SVM), tj. SVC
3. Losowy klasyfikator lasu
Wyniki dla tych trzech podejść podsumowano w poniższej tabeli:
Chociaż Random Forest Classifier jest w stanie dokonać dość dokładnych klasyfikacji, wszystkie trzy modele klasyfikatorów wyszkolone przy użyciu wyłącznie cech numerycznych mają bardzo niską precyzję, pamięć i wyniki F1.
Ponieważ żaden z modeli wytrenowanych na funkcjach numerycznych nie jest w stanie dokładnie sklasyfikować fałszywych ofert pracy, musimy użyć funkcji tekstowych za pomocą technik przetwarzania języka naturalnego, aby uzyskać lepsze prognozy.
Przetwarzanie języka naturalnego
Wdrażamy potok z następującymi krokami:
- CountVectorizer : Wstępne przetwarzanie tekstu, tokenizacja i filtrowanie słów pomijanych są zawarte w programie
CountVectorizer, który tworzy słownik funkcji i przekształca dokumenty w wektory cech - TfidfTransformer : Dłuższe dokumenty będą miały średnio większą liczbę słów niż krótsze dokumenty. Aby przezwyciężyć ten problem, transformator Tfidf dzieli liczbę wystąpień każdego słowa w dokumencie przez całkowitą liczbę słów w dokumencie, aby uzyskać częstotliwości terminów (tf). Ponadto zmniejsza wagę słów, które występują w dużej liczbie próbek. To dlatego, że te słowa będą mniej przydatne w klasyfikacji.
- Klasyfikator : Model klasyfikatora, który wykonuje zadanie klasyfikacji polegające na przewidywaniu kategorii (oszukańczej lub nie) ogłoszenia o pracę.
- Klasyfikator SGD
Używamy utraty zawiasów, która daje liniową SVM, która jest uważana za jeden z najlepszych modeli klasyfikatorów do zadań klasyfikacji tekstu. Ponadto używamy class_weight=”balanced”, ponieważ w naszych danych występuje duża nierównowaga klas. Podczas korzystania z tej funkcji niezbalansowanemu sklasyfikowanemu automatycznie przypisywana jest wyższa waga. - Losowy klasyfikator lasu
Przeprowadzamy walidację krzyżową na losowym lesie, aby uzyskać optymalne wartości dla hiperparametrów maksymalnej głębokości i liczby estymatorów. Używamy średniego błędu kwadratowego (MSE) jako funkcji straty. Poniżej znajduje się trójwymiarowy wykres funkcji błędu średniokwadratowego w funkcji zakresu wartości dla maksymalnej głębokości i liczby estymatorów. Stwierdzono, że optymalne parametry to liczba estymatorów = 50 i maksymalna głębokość = 16. Następnie oceniamy model losowego klasyfikatora lasu dla tych wartości. Ponadto używamy również automatycznych wag klas, używając parametru class_weight dostarczonego przez sklearn, aby przezwyciężyć nierównowagę klas w zbiorze danych.
Po porównaniu oczywiste jest, że SGD działa znacznie lepiej niż losowy klasyfikator lasów na naszych danych. Korzystając z klasyfikatora SGD w potoku, jesteśmy w stanie przewidzieć, czy praca jest prawdziwa, czy fałszywa z odpowiednią precyzją i przypominaniem.
Wyniki
Poniższa tabela podsumowuje te wskaźniki dla naszego najlepszego modelu:
Poniżej znajduje się macierz nieporozumień dla klasyfikacji dokonanych przez model. Błędnie sklasyfikowano tylko 14 z 2781 prawdziwych 27 ze 187 fałszywych ofert pracy.
W zbiorze walidacyjnym znajdowało się łącznie 2781 prawdziwych i 187 fałszywych ofert pracy.
Nasz model poprawnie sklasyfikował 2767 z 2781 prawdziwych ofert pracy jako prawdziwe (dokładność = 99,50%), a 160 ze 187 fałszywych ofert pracy jako fałszywe (dokładność = 85,56%).
Przyszła praca
Nasz model poprawnie przewiduje prawdziwe oferty pracy z niemal idealną dokładnością, ale dokładność przewidywania fałszywych ofert pracy mogłaby zostać poprawiona. Dzieje się tak dlatego, że odsetek fałszywych ofert pracy w zbiorze danych jest naprawdę niewielki (~ 6%). Dalsze prace mogą koncentrować się na gromadzeniu nowego zrównoważonego zestawu danych z większą liczbą fałszywych ofert pracy. Techniki takie jak syntetyczna technika nadpróbkowania mniejszości (SMOTE) mogą być wykorzystane do rozwiązania problemu nierównowagi klasowej. Innym potencjalnym ulepszeniem byłoby zastosowanie metody zespołowej do przewidywania z wykorzystaniem zarówno cech tekstowych, jak i numerycznych w danych.
Bibliografia
- https://www.kaggle.com/datasets/shivamb/real-or-fake-fake-jobposting-prediction
- https://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
- https:///@corymaklin/synthetic-minority-over-sampling-technique-smote-7d419696b88c

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































