1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ

95 73 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Hiện nay, thế giới đang ở trong thời đại của cuộc Cách mạng công nghiệp lần thứ tư. Xuất phát từ nền tảng công nghệ số hóa và khai thác dữ liệu, lan tỏa sang những ngành nghề khác như nông nghiệp, y tế, giáo dục, tài chính - ngân hàng, vận tải, xây dựng, bất động sản, năng lượng tái tạo,… cuộc CMCN lần thứ tư ảnh hưởng đến mọi mặt của nền kinh tế và đang từng bước thay đổi cuộc sống của con người. Đem lại rất nhiều tiện ích, tuy nhiên cuộc CMCN lần thứ tư cũng mang tới cho cho nhân loại một thách thức mới, đó là “tội phạm mạng”. Tội phạm mạng là những kẻ lợi dụng không gian mạng để thực hiện hành vi phạm tội, hướng đến nạn nhân là các cá nhân tổ chức có sử dụng mạng Internet. Không gian hoạt động của tội phạm mạng rất đa dạng, từ mạng xã hội, các trang thông tin điện tử đến các giao dịch điện tử,…Hiện nay các quốc gia đang gặp khó khăn khi đối phó với loại tội phạm này. Đại dịch Covid-19 bùng phát cướp đi việc làm của hàng trăm triệu người lao động trên thế giới. Áp lực kinh tế khiến cho nhiều người lao động phải tìm kiếm công việc mới trên các trang tuyển dụng trực tuyến và đó là cơ hội để tội phạm mạng hoạt động. Những kẻ lừa đảo thực hiện đăng tin tuyển dụng giả nhằm lôi kéo người lao động nộp hồ sơ, thông qua đó chiếm dụng thông tin cá nhân hoặc chiếm đoạt tài sản. Nhiều báo cáo về thiệt hại của các cá nhân về việc bị chiếm đoạt tài khoản ngân hàng hoặc lừa đảo phí môi giới việc làm. Tình trạng này nếu không được quản lý sẽ gây ảnh hưởng đến người dân và gây méo mó thị trường lao động. Do đó, cần có những giải pháp ngăn chặn tình trạng lừa đảo thông qua tin tuyển dụng. Học máy là một trong những đột phá của cuộc CMCN lần thứ tư với ứng dụng chủ yếu để nhận dạng các thực thể thay cho con người, ví dụ như nhận dạng khuôn mặt, thư rác hay tin giả…Việc vận dụng Học máy để nhận dạng các tin tuyển dụng giả là có cơ sở và rất hữu ích trong thời điểm này, có thể giúp cho người lao động giảm bớt rủi ro và thiệt hại từ tin giả. Với những lý do trên và thực tế trong quá trình nghiên cứu, tác giả lựa chọn đề tài “Áp dụng một số thuật toán Học máy trong nhận dạng tin tuyển dụng giả” cho luận văn thạc sĩ của mình.

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN  BÙI TIẾN ANH ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ LUẬN VĂN THẠC SĨ KINH TẾ HỌC HÀ NỘI, năm 2020 TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN  BÙI TIẾN ANH ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ Chuyên ngành: Toán Kinh tế Mã ngành: 8310101 LUẬN VĂN THẠC SĨ KINH TẾ HỌC Người hướng dẫn khoa học: TS NGUYỄN MẠNH THẾ HÀ NỘI, năm 2020 LỜI CAM ĐOAN Tôi đọc hiểu hành vi vi phạm trung thực học thuật Tôi cam kết danh dự cá nhân Luận văn thực không vi phạm yêu cầu dự trung thực học thuật Người thực MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT DANH SÁCH HÌNH ẢNH VIẾT TẮT TÊN ĐẦY ĐỦ Ý NGHĨA CMCN Cách mạng Công nghiệp ML Machine Learning Học máy DL Deep Learning Học Sâu CV Cross Validation Kiếm chứng chéo Logistic Logistic Regression Mơ hình hồi quy Logistic KNN K-Nearnest Neighbor Mơ hình K Láng giềng gần SVM Support Vector Machines Mơ hình Máy véc-tơ hỗ trợ MLP Multi-layer Perceptron Mơ hình Perceptron nhiều lớp BoW Bag of Words Túi đựng từ NN Neural Network Mạng nơ-ron TP True Positive Dương tính thật TN True Negative Âm tính thật FP False Positive Dương tính giả FN False Negative Âm tính giả TPR True Positive Rate Tỷ lệ dương tính thật FPR False Positive Rate Tỷ lệ dương tính giả Hình 2.1: Tóm tắt mơ hình Học máy .32 Hình 2.2: Đồ thị hàm sigmoid 37 Hình 2.3: Sơ đồ thuật toán định .39 Hình 2.4: Mơ hình thuật toán Rừng ngẫu nhiên .40 Hình 2.5: Phân tích tốn SVM 44 Hình 2.6: Mặt phân cách SVM 45 Hình 2.7: Mơ hình Mạng Nơ-ron tự nhiên .49 Hình 2.8: Mơ hình MLP 50 Hình 2.9: Kỹ thuật tính tốn lớp layers MLP 51 Hình 2.10: Đồ thị hàm đồng 52 Hình 2.11: Đồ thị hàm Tanh 52 Hình 2.12: Đồ thị hàm ReLU 53 Bảng 2.1: Ma trận nhầm lẫn 53 Hình 2.13: Điểm số ROC-AUC .55 Biểu đồ 3.1: Các Quốc gia có nhu cầu tuyển dụng cao 61 Biểu đồ 3.2: Các lĩnh vực có nhu cầu tuyển dụng cao 62 Biểu đồ 3.3: Các vị trí làm việc có nhu cầu tuyển dụng cao 63 Biểu đồ 3.4: Yêu cầu cấp tuyển dụng .65 Biểu đồ 3.5: Yêu cầu kinh nghiệm làm việc .65 Biểu đồ 3.6: Các hình thức làm việc 66 Biểu đồ 3.7: Phân bố độ dài đoạn tiêu đề công việc 68 Biểu đồ 3.8: Độ dài tiêu đề chất lượng tin 68 Biểu đồ 3.9: Phân bố độ dài đoạn mô tả công việc 69 Biểu đồ 3.10: Độ dài đoạn mô tả công việc tin thật tin giả 70 Biểu đồ 3.11: Ma trận tương quan biến nhị phân .71 DANH SÁCH BẢNG Bảng 1.1: Kết nghiên cứu Phân tích nhận dạng tin tức giả 21 Bảng 1.2: Kết nghiên cứu “Phát tin giả mạng xã hội” 24 Bảng 3.1: Các biến liệu 57 Bảng 3.2: Công cụ thực hành 57 Bảng 3.3: Các Quốc gia có nhu cầu tuyển dụng cao 61 Bảng 3.4: Các lĩnh vực có nhu cầu tuyển dụng cao Error: Reference source not found Bảng 3.5: Các vị trí có nhu cầu tuyển dụng cao .62 Bảng 3.6: Yêu cầu cấp tuyển dụng 63 Bảng 3.7: Yêu cầu kinh nghiệm làm việc 65 Bảng 3.8: Hình thức cơng việc 66 Bảng 3.9: Độ dài đoạn tiêu đề công việc .66 Bảng 3.10: Độ dài đoạn mô tả công việc .69 Bảng 3.11: Những từ xuất nhiều đoạn mô tả công việc 72 Bảng 3.12: Thống kê tin giả 73 Bảng 3.13: Tổng hợp kết phân tích 78 TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN  BÙI TIẾN ANH ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ Chuyên ngành: Tốn Kinh tế Mã ngành: 8310101 TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI, năm 2020 10 TÓM TẮT KẾT QUẢ NGHIÊN CỨU LUẬN VĂN 1.1 Tóm tắt lý mục tiêu nghiên cứu đề tài Lý nghiên cứu Hiện nay, giới thời đại Cách mạng công nghiệp lần thứ tư Xuất phát từ tảng cơng nghệ số hóa khai thác liệu, lan tỏa sang ngành nghề khác nông nghiệp, y tế, giáo dục, tài - ngân hàng, vận tải, xây dựng, bất động sản, lượng tái tạo,… CMCN lần thứ tư ảnh hưởng đến mặt kinh tế bước thay đổi sống người Đem lại nhiều tiện ích, nhiên CMCN lần thứ tư mang tới cho cho nhân loại thách thức mới, “tội phạm mạng” Tội phạm mạng kẻ lợi dụng không gian mạng để thực hành vi phạm tội, hướng đến nạn nhân cá nhân tổ chức có sử dụng mạng Internet Không gian hoạt động tội phạm mạng đa dạng, từ mạng xã hội, trang thông tin điện tử đến giao dịch điện tử,…Hiện quốc gia gặp khó khăn đối phó với loại tội phạm Đại dịch Covid-19 bùng phát cướp việc làm hàng trăm triệu người lao động giới Áp lực kinh tế khiến cho nhiều người lao động phải tìm kiếm cơng việc trang tuyển dụng trực tuyến hội để tội phạm mạng hoạt động Những kẻ lừa đảo thực đăng tin tuyển dụng giả nhằm lôi kéo người lao động nộp hồ sơ, thông qua chiếm dụng thơng tin cá nhân chiếm đoạt tài sản Nhiều báo cáo thiệt hại cá nhân việc bị chiếm đoạt tài khoản ngân hàng lừa đảo phí mơi giới việc làm Tình trạng không quản lý gây ảnh hưởng đến người dân gây méo mó thị trường lao động Do đó, cần có giải pháp ngăn chặn tình trạng lừa đảo thơng qua tin tuyển dụng Học máy đột phá CMCN lần thứ tư với ứng dụng chủ yếu để nhận dạng thực thể thay cho người, ví dụ nhận dạng khuôn mặt, thư rác hay tin giả…Việc vận dụng Học máy để nhận dạng tin tuyển dụng giả có sở hữu ích thời điểm này, giúp cho người lao Information and Engineering Systems, September 3-5, 2018, Belgrade, Serbia [7] VasuAgarwal, H.ParveenSultana, SrijanMalhotra, AmitrajitSarkar (2019), “Analysis in Identity of Fake News”, The International Conference on Recent Trends in Advanced computing, November 11-12, 2019 in Chennai, India [8] Monther Aldwairi, Ali Alwahed (2018), “Detecting Fake News In Social Media networks”, The 9th International Conference on Emerging Ubiquitous Systems and Pervasive Networks, November 5-8, 2018, Leuven, Belgium [9] Andrew Ng (2018), “Setting up your ML application course” [10]Internet: https://medium.com/@kennymiyasato/ [11]Internet: https://www.cims.nyu.edu/~munoz/files/ml_optimization.pdf [12]Internet: https://www.kaggle.com/ [13]Internet:https://towardsdatascience.com/workflow-of-a-machine learning-project-ec1dba419b94 PHỤ LỤC Các chương trình mã hóa: Tiền xử lý liệu #Nhập thư viện import pandas as pd import numpy as np pd.set_option('display.max_columns', None) #Nhập liệu df = pd.read_csv('C:/Users/Admin/Downloads/dataset - master/fake jobs/fake_job_postings.csv') df2=df.copy() #Loại bỏ biến không cần thiết df2.drop(['salary_range', 'job_id', 'department', 'benefits'], axis = 1, inplace = True) df2 = df2.sort_values('title').reset_index(drop = True) #Xử lý missing values df2['employment_type'] = df2['employment_type'].bfill(axis=0) df2['required_experience'] = df2['required_experience'].bfill(axis=0) df2['required_education'] = df2['required_education'].bfill(axis = 0) df2['industry'] = df2['industry'].bfill(axis=0) df2['function'] = df2['function'].bfill(axis=0) df2 = df2.dropna(axis = 0, how = 'any') df2.shape df3 = df2.copy() df3.columns #Xóa duplicate values df4 = df3.drop_duplicates(keep = 'first') df4.columns #Gộp biến "Mô tả","Yêu cầu công việc", "Thông tin công ty" thành biến "mô tả công việc" df4['description'] = df4['description'] + ' ' + df4['requirements'] + ' ' + df4['company_profile'] df4.drop(['company_profile', 'requirements'], axis = 1, inplace = True) #Tách biến "location" thành "country_code" "city" df4['country_code'] = df4['location'].str.split(',', expand=True)[0] df4['city'] = df4['location'].str.split(',', expand = True)[2] #Thêm biến "quốc gia" từ biến "country_code" import pycountry list_alpha_2 = [i.alpha_2 for i in list(pycountry.countries)] def country(df): if df['country_code'] in list_alpha_2: return pycountry.countries.get(alpha_2 = df['country_code']).name df4['country_name'] = df4.apply(country, axis = 1) #Xóa biến "location" "country_code" df4.drop(['location', 'country_code'], axis = 1, inplace = True) #Reset index df_clean = df4.copy().reset_index(drop=True) #Xóa missing values df_clean.dropna(inplace = True) df_clean.shape df_clean.columns #Sắp xếp lại biến df_clean=df_clean[['country_name','city', 'title', 'description', 'telecommuting', 'has_company_logo', 'has_questions', 'employment_type', 'required_experience', 'required_education', 'industry', 'function', 'fraudulent']] #Xuất file df_clean.to_csv('job-postings_clean.csv') Thống kê mô tả #Nhập thư viện import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import numpy as np %matplotlib inline #Nhập Data df = pd.read_csv('C:/Users/Admin/Downloads/dataset - master/fake jobs/jobpostings_clean.csv') df=df.drop('Unnamed: 0',axis=1) df #Top 10 quốc gia có nhu cầu tuyển dụng cao top10country=pd.DataFrame(df['country_name'].value_counts().head(10)) top10country.reset_index(level=0, inplace=True) top10country.columns=['Country','Counts'] top10country plt.figure(figsize=(10,8)) plt.xlabel('Counts',fontsize=20) plt.ylabel('Country',fontsize=20) sns.barplot(x='Counts',y='Country',data=top10country,palette="BuGn_r") plt.show() #Top 10 lĩnh vực có nhu cầu tuyển dụng cao industry=pd.DataFrame(df['industry'].value_counts().head(10)) industry.reset_index(level=0, inplace=True) industry.columns=['Industry','Counts'] industry plt.figure(figsize=(10,8)) plt.xlabel('Counts',fontsize=20) plt.ylabel('Industry',fontsize=20) sns.barplot(x='Counts',y='Industry',data=industry,palette="OrRd_r") plt.show() #Top 10 vị trí có nhu cầu làm việc cao function=pd.DataFrame(df['function'].value_counts().head(10)) function.reset_index(level=0, inplace=True) function.columns=['Function','Counts'] function plt.figure(figsize=(10,8)) plt.xlabel('Counts',fontsize=20) plt.ylabel('Function',fontsize=20) sns.barplot(x='Counts',y='Function',data=function,palette="Purples_r") plt.show() #Top 10 loại học vấn yêu cầu nhiều hocvan=pd.DataFrame(df['required_education'].value_counts().head(10)) hocvan.reset_index(level=0, inplace=True) hocvan.columns=['Required_education','Counts'] hocvan plt.figure(figsize=(12,10)) plt.xlabel('Counts',fontsize=20) plt.ylabel('Required_education',fontsize=20) sns.barplot(x='Counts',y='Required_education',data=hocvan,palette='hot') plt.show() #Các loại hình kinh nghiệm yêu cầu kinhnghiem=pd.DataFrame(df['required_experience'].value_counts().head(10)) kinhnghiem.reset_index(level=0, inplace=True) kinhnghiem.columns=['Required_experience','Counts'] kinhnghiem plt.figure(figsize=(12,10)) plt.xlabel('Số lượng',fontsize=20) plt.ylabel('Yêu cầu kinh nghiệm',fontsize=20) sns.barplot(x='Counts',y='Required_experience',data=kinhnghiem,palette='bone') plt.show() #Các loại hình cơng việc u cầu loaicongviec=pd.DataFrame(df['employment_type'].value_counts().head(10)) loaicongviec.reset_index(level=0, inplace=True) loaicongviec.columns=['employment_type','Counts'] loaicongviec plt.figure(figsize=(12,10)) plt.xlabel('Counts',fontsize=20) plt.ylabel('Employment_type',fontsize=20) sns.barplot(x='Counts',y='employment_type',data=loaicongviec,palette='Oranges_r') plt.show() #Mô tả độ dài đoạn tiêu đề mô tả công việc df['des_len']=df.description.str.len() df['des_title']=df.title.str.len() #Thống kê mô tả độ dài đoạn mô tả công việc df['des_len'].describe() pd.DataFrame(df['des_len']).kurtosis() pd.DataFrame(df['des_len']).skew(axis=0) plt.figure(figsize=(16,8)) plt.xlabel('Độ dài',fontsize=20) plt.ylabel('Mật độ',fontsize=20) sns.distplot(df['des_len'],hist=True,rug=True) plt.show() df[df.fraudulent==0]['des_len'].describe() df[df.fraudulent==0]['des_len'].kurtosis() df[df.fraudulent==0]['des_len'].skew(axis=0) df[df.fraudulent==1]['des_len'].describe() df[df.fraudulent==1]['des_len'].kurtosis() df[df.fraudulent==1]['des_len'].skew(axis=0) plt.figure(figsize=(16,3)) plt.xlabel('Độ dài',fontsize=20) plt.ylabel('Mật độ',fontsize=20) sns.scatterplot(x='des_len',y='fraudulent',data=df) plt.show() df['des_title'].describe() pd.DataFrame(df['des_title']).kurtosis() pd.DataFrame(df['des_title']).skew(axis=0) plt.figure(figsize=(16,8)) plt.xlabel('Độ dài',fontsize=20) plt.ylabel('Mật độ',fontsize=20) sns.distplot(df['des_title'],hist=True,rug=True) plt.show() df[df.fraudulent==0]['des_title'].describe() df[df.fraudulent==0]['des_title'].kurtosis() df[df.fraudulent==0]['des_title'].skew(axis=0) df[df.fraudulent==1]['des_title'].describe() df[df.fraudulent==1]['des_title'].kurtosis() df[df.fraudulent==1]['des_title'].skew(axis=0) plt.figure(figsize=(16,3)) plt.xlabel('Độ dài',fontsize=20) plt.ylabel('Mật độ',fontsize=20) sns.scatterplot(x='des_title',y='fraudulent',data=df) plt.show() #Ma trận hệ số tương quan biến nhị phân cacbiennhiphan=['telecommuting','has_company_logo', 'has_questions','fraudulent'] corr=df[cacbiennhiphan].corr() plt.figure(figsize=(12,12)) sns.heatmap(corr,linewidth=3,annot=True) plt.show() #Lấy tập hợp tin tuyển dụng thật df_that=df[df['fraudulent']==0] #Lấy tập hợp tin tuyển dụng giả df_gia=df[df['fraudulent']==1] #Phân phối độ dài tin tuyển dụng giả plt.figure(figsize=(16,8)) plt.xlabel('des_len',fontsize=20) plt.ylabel('Mật độ',fontsize=20) sns.distplot(df_gia['des_len'],hist=True,rug=True) plt.show() #Đếm số tin thật sotinthat=df_that['fraudulent'].value_counts() #Đếm số tin giả sotingia=df_gia['fraudulent'].value_counts() Xử lý văn #Nhập thư viện import spacy import en_core_web_sm nlp = en_core_web_sm.load() from spacy.lang.en import English parser = English() import base64 import string import re import nltk nltk.download('stopwords') from collections import Counter from nltk.corpus import stopwords stopwords = stopwords.words('english') punctuations = string.punctuation def cleanup_text(docs, logging = False): texts = [] for doc in docs: doc = nlp(doc, disable = ['parser', 'ner']) tokens = [tok.lemma_.lower().strip() for tok in doc if tok.lemma_ != '-PRON-'] tokens = [tok for tok in tokens if tok not in stopwords and tok not in punctuations] tokens = ' '.join(tokens) texts.append(tokens) return pd.Series(texts) #Xuất danh sách 20 từ xuất nhiều tin giả Fraud_1 = [text for text in df_gia['description']] Fraud_1_clean = cleanup_text(Fraud_1) Fraud_1_clean = ' '.join(Fraud_1_clean).split() Fraud_1_counts = Counter(Fraud_1_clean) Fraud_1_common_words = [word[0] for word in [word[1] for word in Fraud_1_counts.most_common(20)] Fraud_1_common_counts = Fraud_1_counts.most_common(20)] #Liệt kê bảng 20 từ xuất nhiều tin giả dem_so_tu_tingia=pd.DataFrame({'Từ':Fraud_1_common_words,'Số Fraud_1_common_counts}) dem_so_tu_tingia #Xuất danh sách 20 từ xuất nhiều tin thật Fraud_0 = [text for text in df_that['description']] Fraud_0_clean = cleanup_text(Fraud_0) lượng': Fraud_0_clean = ' '.join(Fraud_0_clean).split() Fraud_0_counts = Counter(Fraud_0_clean) Fraud_0_common_words = [word[0] for word in [word[1] for word in Fraud_0_counts.most_common(20)] Fraud_0_common_counts = Fraud_0_counts.most_common(20)] #Liệt kê bảng 20 từ xuất nhiều tin thật dem_so_tu_tinthat=pd.DataFrame({'Từ':Fraud_0_common_words,'Số lượng': Fraud_0_common_counts}) dem_so_tu_tinthat #Nhập thư viện from sklearn.feature_extraction.text import CountVectorizer from sklearn.base import TransformerMixin from sklearn.pipeline import Pipeline from sklearn.svm import LinearSVC from sklearn.feature_extraction.stop_words import ENGLISH_STOP_WORDS from sklearn.metrics import accuracy_score, roc_auc_score, classification_report, confusion_matrix from nltk.corpus import stopwords import string import re from sklearn.model_selection import train_test_split from sklearn.compose import ColumnTransformer from sklearn import preprocessing from sklearn.preprocessing import OneHotEncoder from nltk.tokenize import sent_tokenize, word_tokenize #Liệt kê stopword symbols STOPLIST = set(stopwords.words('english') + list(ENGLISH_STOP_WORDS)) SYMBOLS = " ".join(string.punctuation).split(" ") #Sử dụng kỹ thuật tokenize def tokenizetext(sample): text = sample.strip().replace("\n", " ").replace("\r", " ") text = text.lower() tokens = parser(text) lemmas = [] for tok in tokens: lemmas.append(tok.lemma_.lower().strip() if tok.lemma_ != "-PRON-" else tok.lower_) tokens = lemmas tokens = [tok for tok in tokens if tok not in STOPLIST] tokens = [tok for tok in tokens if tok not in SYMBOLS] return tokens vectorizer = CountVectorizer(tokenizer = tokenizetext, ngram_range = (1,3), min_df = 0.06) vectorizer_features = vectorizer.fit_transform(df['description']) vectorizer_features.shape vectorized_df = pd.DataFrame(vectorizer_features.todense(), columns = vectorizer.get_feature_names()) #Nhập véc-tơ vào liệu ban đầu thành bảng liệu df_vectorized = pd.concat([df, vectorized_df], axis = 1) #Xóa biến miêu tả cơng việc df_vectorized.drop('description', axis = 1, inplace = True) df_vectorized.dropna(inplace=True) #Áp dụng One-hot-Encoding cho biến phân loại là: Loại hình cơng việc, u cầu kinh nghiệm, Yêu cầu học vấn, Lĩnh vực hoạt động vị trí làm việc columns_to_1_hot = ['employment_type', 'required_education', 'industry', 'function'] for column in columns_to_1_hot: 'required_experience', encoded = pd.get_dummies(df_vectorized[column]) df_vectorized = pd.concat([df_vectorized, encoded], axis = 1) #Xóa biến cũ khơng có ý nghĩa sử dụng ML Loại hình công việc, Yêu cầu kinh nghiệm, Yêu cầu học vấn, Lĩnh vực hoạt động vị trí làm việc, tiêu đề công việc, quốc gia, thành phố columns_to_1_hot += ['title', 'city', 'country_name'] df_vectorized.drop(columns_to_1_hot, axis = 1, inplace = True) #Dán nhãn cho biến phụ thuộc là: Fraudulent target = df_vectorized['fraudulent'] #Tạo biến phân tích features = df_vectorized.drop('fraudulent', axis = 1) #Phân chia liệu thành Train Data Test Data tỉ lệ 8:2 X_train, X_test, y_train, y_test = train_test_split(features, target, test_size = 0.2, stratify = target, random_state=42) Phân tích mơ hình Học máy #Nhập thư viện from sklearn.model_selection import GridSearchCV from sklearn.linear_model import LogisticRegression from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.ensemble import RandomForestClassifier from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, roc_auc_score 4.1 Thuật toán Hồi quy Logistic #Thiết lập Hồi quy Logistic log_reg = LogisticRegression() c_values = [0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000] penalty_options = ['l1', 'l2'] param_grid = dict(C = c_values, penalty = penalty_options) grid_log = GridSearchCV(log_reg, param_grid = param_grid, cv = 4, scoring = 'roc_auc', n_jobs = -1, verbose=1) grid_log.fit(X_train, y_train) grid_log.best_score_ grid_log.best_params_ log_reg_pred = grid_log.predict(X_test) roc_auc_score(y_test, log_reg_pred) #Bảng chấm điểm test print(classification_report(y_test, log_reg_pred)) #Ma trận nhầm lẫn print(confusion_matrix(y_test, log_reg_pred)) 4.2 Thuật toán KNN #Thiết lập KNN knn = KNeighborsClassifier() k_range = list(np.arange(2, 23, 2)) param_grid_knn = dict(n_neighbors = k_range) print (param_grid_knn) grid_knn = GridSearchCV(knn, param_grid_knn, cv = 4, scoring = 'roc_auc', n_jobs = -1, verbose = 1) grid_knn.fit(X_train, y_train) #Điểm số tốt cho mơ hình huấn luyện grid_knn.best_score_ #Lựa chọn tham số tốt grid_knn.best_params_ #Dự đoán test data knn_pred = grid_knn.predict(X_test) #Bảng chấm điểm test data print (roc_auc_score(y_test, knn_pred)) print (classification_report(y_test, knn_pred)) #Ma trận nhầm lẫn print(confusion_matrix(y_test, knn_pred)) 4.3 Thuật toán SVM #Áp dụng SVM GridsearchCV kernel = ['linear', 'rbf'] param_grid_svc = dict(kernel = kernel) grid_svc = GridSearchCV(SVC(), param_grid_svc, cv = 4, scoring = 'roc_auc', n_jobs = -1, verbose = 2) grid_svc.fit(X_train, y_train) #Điểm số tốt cho mơ hình huấn luyện grid_svc.best_score_ #Lựa chọn tham số tốt grid_svc.best_params_ #Dự đoán test data svc_pred = grid_svc.predict(X_test) #Bảng chấm điểm test data print (roc_auc_score(y_test, svc_pred)) print (classification_report(y_test, svc_pred)) #Ma trận nhầm lẫn print(confusion_matrix(y_test, svc_pred)) 4.4 Thuật toán Rừng ngẫu nhiên #Thiết lập thuật toán Rừng ngẫu nhiên rf = RandomForestClassifier() n_estimators_range = [1, 2, 4, 8, 16, 32, 64, 100, 200] param_grid_rf = dict(n_estimators = n_estimators_range) grid_rf = GridSearchCV(rf, param_grid_rf, cv = 4, scoring = 'roc_auc', n_jobs = -1, verbose = 1) grid_rf.fit(X_train, y_train) #Điểm số tốt cho mô hình huấn luyện print (grid_rf.best_score_) #Lựa chọn tham số tốt print (grid_rf.best_params_) #Dự đoán test data rf_pred = grid_rf.predict(X_test) #Bảng chấm điểm test data print (roc_auc_score(y_test, rf_pred)) print (classification_report(y_test, rf_pred)) #Ma trận nhầm lẫn print(confusion_matrix(y_test, rf_pred)) 4.5 Thuật toán MLP #Thiết lập thuật toán MLP mlp = MLPClassifier(solver = 'adam', activation = 'relu', hidden_layer_sizes = (500, 300, 100), max_iter = 1000) mlp.fit(X_train, y_train) #Điểm số cho mơ hình huấn luyện mlp.score(X_train, y_train) #Dự đoán test data mlp_pred = mlp.predict(X_test) #Bảng chấm điểm test data print (roc_auc_score(y_test, mlp_pred)) print (classification_report(y_test, mlp_pred)) #Ma trận nhầm lẫn print(confusion_matrix(y_test, mlp_pred)) ... BÙI TIẾN ANH ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ Chuyên ngành: Toán Kinh tế Mã ngành: 8310101 LUẬN VĂN THẠC SĨ KINH TẾ HỌC Người hướng dẫn khoa học: TS NGUYỄN... CÁC THUẬT TOÁN HỌC MÁY VÀ VẤN ĐỀ NHẬN DẠNG TIN GIẢ 2.1 Tin giả phát 2.1.1.Khái niệm tin giả tin giả Tin giả (fake news), gọi tin rác tin tức giả mạo, loại hình báo chí tin tức bao gồm thơng tin. .. BÙI TIẾN ANH ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ Chuyên ngành: Toán Kinh tế Mã ngành: 8310101 LUẬN VĂN THẠC SĨ KINH TẾ HỌC Người hướng dẫn khoa học: TS NGUYỄN

Ngày đăng: 26/03/2022, 04:12

Xem thêm:

HÌNH ẢNH LIÊN QUAN

• Điểm số của các mơ hình cịn thấp nên chưa thể áp dụng cho bài tốn thực tế. Do đĩ, cần mở rộng dữ liệu huấn luyện, tăng số quan sát để tăng độ chính xác cho mơ hình. - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
i ểm số của các mơ hình cịn thấp nên chưa thể áp dụng cho bài tốn thực tế. Do đĩ, cần mở rộng dữ liệu huấn luyện, tăng số quan sát để tăng độ chính xác cho mơ hình (Trang 22)
Bảng 1.2: Kết quả nghiên cứu “Phát hiện tin giả trên mạng xã hội” - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 1.2 Kết quả nghiên cứu “Phát hiện tin giả trên mạng xã hội” (Trang 24)
2.2.3.Tĩm tắt mơ hình Học máy - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
2.2.3. Tĩm tắt mơ hình Học máy (Trang 32)
vào mơ hình. - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
v ào mơ hình (Trang 37)
Hình 2.3: Sơ đồ thuật tốn cây quyết định - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.3 Sơ đồ thuật tốn cây quyết định (Trang 39)
Hình 2.4: Mơ hình thuật tốn Rừng ngẫu nhiên - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.4 Mơ hình thuật tốn Rừng ngẫu nhiên (Trang 40)
Hình 2.5: Phân tích bài tốn SVM - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.5 Phân tích bài tốn SVM (Trang 44)
Với những điểm nằm gần mặt phân chia nhất như hình dưới đây: - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
i những điểm nằm gần mặt phân chia nhất như hình dưới đây: (Trang 45)
Hình 2.7: Mơ hình Mạng Nơ-ron tự nhiên - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.7 Mơ hình Mạng Nơ-ron tự nhiên (Trang 49)
Hình 2.8: Mơ hình MLP - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.8 Mơ hình MLP (Trang 50)
Hình 2.9: Kỹ thuật tính tốn trong các lớp layers MLP - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.9 Kỹ thuật tính tốn trong các lớp layers MLP (Trang 51)
Đồ thị của hàm đồng nhất được minh họa trong hình: - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
th ị của hàm đồng nhất được minh họa trong hình: (Trang 52)
Hình 2.12: Đồ thị của hàm ReLU - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Hình 2.12 Đồ thị của hàm ReLU (Trang 53)
Bảng 3.4: Các biến của bộ dữ liệu ST - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.4 Các biến của bộ dữ liệu ST (Trang 57)
Quan sát bảng, ta thấy Hoa Kỳ là nước cĩ nhu cầu tuyển dụng cao nhất với 7.183 vị trí, chiếm 58,72% tổng nhu cầu tuyển dụng trong bộ số liệu - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
uan sát bảng, ta thấy Hoa Kỳ là nước cĩ nhu cầu tuyển dụng cao nhất với 7.183 vị trí, chiếm 58,72% tổng nhu cầu tuyển dụng trong bộ số liệu (Trang 61)
Bảng 3.6: Các Quốc gia cĩ nhu cầu tuyển dụng cao nhất STTQuốc GiaSố lượng - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.6 Các Quốc gia cĩ nhu cầu tuyển dụng cao nhất STTQuốc GiaSố lượng (Trang 61)
Bảng 3.8: Các vị trí cĩ nhu cầu tuyển dụng cao nhất STTVị trí Số lượng - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.8 Các vị trí cĩ nhu cầu tuyển dụng cao nhất STTVị trí Số lượng (Trang 62)
Bảng 3.9: Yêu cầu về bằng cấp tuyển dụng - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.9 Yêu cầu về bằng cấp tuyển dụng (Trang 63)
f. Hình thức cơng việc - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
f. Hình thức cơng việc (Trang 65)
STT Loại hình làm việc Số lượng - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
o ại hình làm việc Số lượng (Trang 66)
Bảng 3.11: Hình thức cơng việc - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.11 Hình thức cơng việc (Trang 66)
Quan sát hình dưới ta thấy rõ hơn về phân bố độ dài các đoạn mơ tả. - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
uan sát hình dưới ta thấy rõ hơn về phân bố độ dài các đoạn mơ tả (Trang 69)
Bảng 3.13: Độ dài đoạn mơ tả cơng việc - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.13 Độ dài đoạn mơ tả cơng việc (Trang 69)
Bảng 3.14: Những từ xuất hiện nhiều nhất trong đoạn mơ tả cơng việc - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.14 Những từ xuất hiện nhiều nhất trong đoạn mơ tả cơng việc (Trang 72)
3.4.2.Kết quả áp dụng KNN - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
3.4.2. Kết quả áp dụng KNN (Trang 74)
Tham số tối ưu của mơ hình: Ma trận nhầm lẫn: - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
ham số tối ưu của mơ hình: Ma trận nhầm lẫn: (Trang 75)
Tham số tối ưu của mơ hình: Ma trận nhầm lẫn: - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
ham số tối ưu của mơ hình: Ma trận nhầm lẫn: (Trang 76)
Tham số tối ưu của mơ hình: Ma trận nhầm lẫn: - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
ham số tối ưu của mơ hình: Ma trận nhầm lẫn: (Trang 76)
Bảng 3.16: Tổng hợp kết quả phân tích - Luận văn thạc sỹ: ÁP DỤNG MỘT SỐ THUẬT TOÁN HỌC MÁY TRONG NHẬN DẠNG TIN TUYỂN DỤNG GIẢ
Bảng 3.16 Tổng hợp kết quả phân tích (Trang 78)

TỪ KHÓA LIÊN QUAN

Mục lục

    Bảng 3.7: Các lĩnh vực có nhu cầu tuyển dụng cao nhất

    DANH MỤC CÁC CHỮ VIẾT TẮT

    DANH SÁCH HÌNH ẢNH

    TÓM TẮT KẾT QUẢ NGHIÊN CỨU LUẬN VĂN

    CHƯƠNG 1: TỔNG QUAN CÁC VẤN ĐỀ CÓ LIÊN QUAN ĐẾN ĐỀ TÀI

    1.1. Thực trạng lừa đảo và tin giả trên mạng Internet

    1.1.1. Tình trạng tin giả trên mạng Internet

    1.1.2. Tình trạng lừa đảo qua mạng

    1.1.3. Tình trạng đăng tin tuyển dụng giả

    1.2. Một số nghiên cứu có liên quan đến đề tài

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w