基于LightGBM和BP神經(jīng)網(wǎng)絡(luò)的互聯(lián)網(wǎng)招聘需求分析與預(yù)測(cè)
整體求解過(guò)程概述(摘要)
??就業(yè)是民生之本,是發(fā)展之基,也是安國(guó)之策。2020 年新冠肺炎疫情的爆發(fā),穩(wěn)就業(yè)成為應(yīng)對(duì)疫情、穩(wěn)定社會(huì)的重要保障之一。隨著數(shù)據(jù)新動(dòng)能的發(fā)展,互聯(lián)網(wǎng)招聘為招聘者和應(yīng)聘者提供不限于時(shí)空的全局視角,因此本文從該角度出發(fā)對(duì)招聘者和應(yīng)聘者需求進(jìn)行統(tǒng)計(jì)分析預(yù)測(cè),以期緩解就業(yè)難、招聘難的困境。
??本文基于近年來(lái)各在線招聘網(wǎng)站所發(fā)布的招聘數(shù)據(jù)并結(jié)合數(shù)據(jù)新動(dòng)能下轉(zhuǎn)型升級(jí)的三個(gè)金融行業(yè)、互聯(lián)網(wǎng)行業(yè)、生產(chǎn)制造行業(yè),采用 Pearson 相關(guān)系數(shù)檢驗(yàn)初步篩選后運(yùn)用灰色關(guān)聯(lián)分析進(jìn)一步進(jìn)行指標(biāo)篩選,最后對(duì)企業(yè)招聘中招聘者關(guān)注的瀏覽量運(yùn)用 LightGBM 模型進(jìn)行瀏覽量特征重要性分析,對(duì)就業(yè)形勢(shì)中應(yīng)聘者關(guān)注的薪資運(yùn)用 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)于薪資進(jìn)行預(yù)測(cè),并進(jìn)行模型精度對(duì)比,得出數(shù)據(jù)新動(dòng)能下三個(gè)行業(yè)的薪資統(tǒng)計(jì)分析預(yù)測(cè)。
??經(jīng)研究得出關(guān)于企業(yè)招聘瀏覽量,金融行業(yè)薪資水平,互聯(lián)網(wǎng)行業(yè)薪資水平,生產(chǎn)制造行業(yè)薪資水平的影響因素及重要程度?;谝陨戏治鼋Y(jié)論,本文在互聯(lián)網(wǎng)招聘市場(chǎng)中對(duì)招聘者與應(yīng)聘者需求提出以下對(duì)策建議:第一,對(duì)于企業(yè),招聘者應(yīng)根據(jù)崗位瀏覽量合理設(shè)置招聘要求;第二,對(duì)于金融行業(yè),應(yīng)聘者應(yīng)根據(jù)學(xué)歷因素合理考慮就業(yè)地域;第三,對(duì)于互聯(lián)網(wǎng)行業(yè),應(yīng)聘者應(yīng)根據(jù)學(xué)歷因素合理考慮公司性質(zhì);第四,對(duì)于生產(chǎn)制造行業(yè),應(yīng)聘者應(yīng)根據(jù)公司所在地合理考慮公司性質(zhì)。
問(wèn)題分析
??基于當(dāng)代數(shù)字經(jīng)濟(jì)大環(huán)境背景,面對(duì)當(dāng)前互聯(lián)網(wǎng)市場(chǎng)應(yīng)聘者和招聘者需求不對(duì)稱(chēng)的現(xiàn)狀,本文運(yùn)用近年來(lái)各在線招聘網(wǎng)站所發(fā)布的招聘數(shù)據(jù)并結(jié)合數(shù)據(jù)新動(dòng)能下轉(zhuǎn)型升級(jí)的三個(gè)金融行業(yè)、互聯(lián)網(wǎng)行業(yè)、生產(chǎn)制造行業(yè),采用 Pearson 相關(guān)系數(shù)分析初步篩選后運(yùn)用灰色關(guān)聯(lián)分析進(jìn)一步進(jìn)行維度篩選,最后對(duì)企業(yè)招聘中招聘者關(guān)注的瀏覽量運(yùn)用 LightGBM 模型進(jìn)行特征重要性分析,對(duì)就業(yè)形勢(shì)中應(yīng)聘者關(guān)注的薪資運(yùn)用 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)于薪資進(jìn)行預(yù)測(cè),并進(jìn)行模型檢驗(yàn)與修正,得出新動(dòng)能下三個(gè)行業(yè)的薪資和瀏覽量的分析與預(yù)測(cè)。
指標(biāo)的選取與數(shù)據(jù)的處理
??(一)數(shù)據(jù)來(lái)源
??本文數(shù)據(jù)通過(guò)對(duì)某數(shù)據(jù)平臺(tái)的數(shù)據(jù)進(jìn)行爬取,總共得到 1007894 條數(shù)據(jù)。數(shù)據(jù)預(yù)處理以 excel 為主,Python、R 為輔,完成原始數(shù)據(jù)去重區(qū)空以及數(shù)值轉(zhuǎn)換等數(shù)據(jù)預(yù)處理工作之后進(jìn)行分層隨機(jī)抽樣得到剩下 40000 條數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。對(duì)于異常值的處理,學(xué)歷、職位、行業(yè)等因素使用刪除異常值方法處理,經(jīng)驗(yàn)?zāi)陻?shù)、工資上下限因素使用計(jì)算平均值方法進(jìn)行處理。分層抽樣法,也叫類(lèi)型抽樣法。將總體單位按其屬性特征分成若干類(lèi)型或?qū)?,然后在?lèi)型或?qū)又须S機(jī)抽取樣本單位。分層抽樣法的特點(diǎn)是通過(guò)劃類(lèi)分層,增大了各類(lèi)分層抽樣中單位間的共同性,容易抽出具有代表性的調(diào)查樣本。該方法適用于總體情況復(fù)雜,各單位之間差異較大,單位較多的情況。分層隨機(jī)抽樣的程序是把總體各單位分成兩個(gè)或兩個(gè)以上的相互獨(dú)立且各具特點(diǎn)的完全的組,再?gòu)膬蓚€(gè)或兩個(gè)以上的組中分別進(jìn)行隨機(jī)抽樣。分組的標(biāo)志或特點(diǎn)與所關(guān)心的總體特征相關(guān)?!八鶎W(xué)非所用”不利于充分發(fā)揮人力資本的潛在價(jià)值(郭睿,2019),本文以學(xué)歷作為屬性特征進(jìn)行分層,將不同學(xué)歷分出不同層,按各學(xué)歷占總數(shù)據(jù)的比例在每一層中隨機(jī)抽樣,得出 40000 條數(shù)據(jù)。
??并通過(guò)劃分行業(yè)來(lái)分別選取每個(gè)行業(yè)中的指標(biāo)進(jìn)行分析預(yù)測(cè),金融行業(yè)的發(fā)展是一個(gè)國(guó)家經(jīng)濟(jì)發(fā)展的重要支撐(高景文,2019),互聯(lián)網(wǎng)行業(yè)則為數(shù)字化時(shí)代背景下一個(gè)重要的行業(yè)支撐(周蘊(yùn)慧,2021),生產(chǎn)制造行業(yè)的轉(zhuǎn)型升級(jí)也是當(dāng)今時(shí)代面臨的重大課題(江小涓,2020),這三個(gè)行業(yè)都對(duì)數(shù)據(jù)新動(dòng)能背景下招聘與就業(yè)需求不對(duì)稱(chēng)的統(tǒng)計(jì)分析研究具有一定意義,因此本文選取這三種行業(yè)進(jìn)行統(tǒng)計(jì)分析預(yù)測(cè)。
??而對(duì)于大多數(shù)互聯(lián)網(wǎng)應(yīng)聘者而言,薪資是眾多被考慮因素中的重中之重,是其勞動(dòng)回報(bào)的直接體現(xiàn)(Kristin L ,2018),對(duì)于企業(yè)而言,應(yīng)聘者的薪資與其經(jīng)營(yíng)的利潤(rùn)以及成本是直接相關(guān)的關(guān)系。因此選取三個(gè)行業(yè)薪資平均值與其他指標(biāo)進(jìn)行分析。
??(二)指標(biāo)選取
??1. Pearson 相關(guān)系數(shù)檢驗(yàn)
??Pearson 相關(guān)系數(shù)是用協(xié)方差除以?xún)蓚€(gè)變量的標(biāo)準(zhǔn)差得到的,雖然協(xié)方差能反映兩個(gè)隨機(jī)變量的相關(guān)程度(協(xié)方差大于 0 的時(shí)候表示兩者正相關(guān),小于 0 的時(shí)候表示兩者負(fù)相關(guān)),但是協(xié)方差值的大小并不能很好地度量?jī)蓚€(gè)隨機(jī)變量的關(guān)聯(lián)程度,對(duì)于標(biāo)準(zhǔn)化后的數(shù)據(jù)求歐氏距離平方并經(jīng)過(guò)簡(jiǎn)單的線性變化,也就是Pearson 系數(shù),我們一般用歐式距離來(lái)衡量向量的相似度,但歐式距離無(wú)法考慮不同變量間取值的差異。加之,Pearson 相關(guān)系數(shù)適用于高維度檢驗(yàn),而未經(jīng)升級(jí)的歐式距離以及 cosine 相似度,對(duì)變量的取值范圍是敏感的,在使用前需要進(jìn)行適當(dāng)?shù)奶幚怼R虼嗽趯?duì)變量間進(jìn)行相關(guān)性檢驗(yàn)時(shí),本文優(yōu)先采用 Pearson 相關(guān)系數(shù)檢驗(yàn)去研究經(jīng)驗(yàn),學(xué)歷,公司所在地,公司性質(zhì),職位分別和薪資平均值之間的相關(guān)關(guān)系,使用 Pearson 相關(guān)系數(shù)去表示相關(guān)關(guān)系的強(qiáng)弱情況。具體分析可知:
??①金融行業(yè):經(jīng)驗(yàn)、學(xué)歷、職位、公司所在地呈現(xiàn)顯著性
??②互聯(lián)網(wǎng)行業(yè):經(jīng)驗(yàn)、學(xué)歷、職位、公司所在地、公司性質(zhì)呈現(xiàn)顯著性
??③生產(chǎn)制造行業(yè):經(jīng)驗(yàn)、學(xué)歷、公司所在地、公司性質(zhì)呈現(xiàn)顯著性
??2. 灰色關(guān)聯(lián)分析
??基于 Pearson 相關(guān)系數(shù)檢驗(yàn)得出的結(jié)果,本文進(jìn)一步對(duì)具有顯著性的各個(gè)特征值進(jìn)行選取。運(yùn)用灰色關(guān)聯(lián)分析對(duì)于研究指標(biāo)進(jìn)行進(jìn)一步選取,研究各因素對(duì)薪資的影響大小關(guān)系,得出結(jié)果如下:
??①金融行業(yè):公司所在地、職位
??從上表可以看出:針對(duì)本次 4 個(gè)評(píng)價(jià)項(xiàng),公司所在地的綜合評(píng)價(jià)最高(關(guān)聯(lián)度為:0.989),其次是職位(關(guān)聯(lián)度為:0.670)。
??②互聯(lián)網(wǎng)行業(yè):學(xué)歷、公司性質(zhì)
??從上表可以看出:針對(duì)本次 5 個(gè)評(píng)價(jià)項(xiàng),學(xué)歷的綜合評(píng)價(jià)最高(關(guān)聯(lián)度為:0.928),其次是公司性質(zhì)(關(guān)聯(lián)度為:0.909)。
??③生產(chǎn)制造行業(yè):公司所在地、公司性質(zhì)
??從上表可以看出:針對(duì)本次 4 個(gè)評(píng)價(jià)項(xiàng),公司所在地的綜合評(píng)價(jià)最高(關(guān)聯(lián)度為:0.959),其次是公司性質(zhì)(關(guān)聯(lián)度為:0.953)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-842732.html
模型的建立與求解整體論文縮略圖
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-842732.html
全部論文請(qǐng)見(jiàn)下方“ 只會(huì)建模 QQ名片” 點(diǎn)擊QQ名片即可
程序代碼:(代碼和文檔not free)
%% 網(wǎng)絡(luò)測(cè)試
an=sim(net,inputn_test); %用訓(xùn)練好的模型進(jìn)行仿真
test_simu=mapminmax('reverse',an,outputps); % 預(yù)測(cè)結(jié)果反歸一化
error=test_simu-output_test; %預(yù)測(cè)值和真實(shí)值的誤差
%%真實(shí)值與預(yù)測(cè)值誤差比較
figure
plot(output_test,'bo-','linewidth',1.2)
hold on
plot(test_simu,'r*-','linewidth',1.2)
legend('期望值','預(yù)測(cè)值')
xlabel('測(cè)試樣本編號(hào)'),ylabel('指標(biāo)值')
title('BP 測(cè)試集預(yù)測(cè)值和期望值的對(duì)比')
set(gca,'fontsize',12)
igure
plot(error,'ro-','linewidth',1.2)
xlabel('測(cè)試樣本編號(hào)'),ylabel('預(yù)測(cè)偏差')
title('BP 神經(jīng)網(wǎng)絡(luò)測(cè)試集的預(yù)測(cè)誤差')
set(gca,'fontsize',12)
%計(jì)算誤差
[~,len]=size(output_test);
SSE1=sum(error.^2);
MAE1=sum(abs(error))/len;
MSE1=error*error'/len;
RMSE1=MSE1^(1/2);
MAPE1=mean(abs(error./output_test));
r=corrcoef(output_test,test_simu); %corrcoef 計(jì)算相關(guān)系數(shù)矩陣,包括自相關(guān)和
互相關(guān)系數(shù)
R1=r(1,2);
%% 初始化
clear
close all
clc
format short
%% 讀取讀取
data=xlsread('數(shù)據(jù)總.xlsx','Sheet1','A1:F18528'); %%使用 xlsread 函數(shù)讀取 EXCEL
中對(duì)應(yīng)范圍的數(shù)據(jù)即可
%輸入輸出數(shù)據(jù)
input=data(:,1:end-1); %data 的第一列-倒數(shù)第二列為特征指標(biāo)
output=data(:,end); %data 的最后面一列為輸出的指標(biāo)值
N=length(output); %全部樣本數(shù)目
testNum=50; %設(shè)定測(cè)試樣本數(shù)目
trainNum=N-testNum; %計(jì)算訓(xùn)練樣本數(shù)目
%% 劃分訓(xùn)練集、測(cè)試集
input_train = input(1:trainNum,:)';
output_train =output(1:trainNum)';
input_test =input(trainNum+1:trainNum+testNum,:)';
output_test =output(trainNum+1:trainNum+testNum)';
%% 數(shù)據(jù)歸一化
[inputn,inputps]=mapminmax(input_train,0,1);
[outputn,outputps]=mapminmax(output_train);
inputn_test=mapminmax('apply',input_test,inputps);
%% 獲取輸入層節(jié)點(diǎn)、輸出層節(jié)點(diǎn)個(gè)數(shù)
inputnum=size(input,2);
outputnum=size(output,2);
disp('/')
disp('神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)...')
disp(['輸入層的節(jié)點(diǎn)數(shù)為:',num2str(inputnum)])
disp(['輸出層的節(jié)點(diǎn)數(shù)為:',num2str(outputnum)])
disp(' ')
disp('隱含層節(jié)點(diǎn)的確定過(guò)程...')
%確定隱含層節(jié)點(diǎn)個(gè)數(shù)
%采用經(jīng)驗(yàn)公式 hiddennum=sqrt(m+n)+a,m 為輸入層節(jié)點(diǎn)個(gè)數(shù),n 為輸出層節(jié)點(diǎn)
個(gè)數(shù),a 一般取為 1-10 之間的整數(shù)
MSE=1e+5; %初始化最小誤差
transform_func={'tansig','purelin'}; %激活函數(shù)
train_func='trainlm'; %訓(xùn)練算法
for
hiddennum=fix(sqrt(inputnum+outputnum))+1:fix(sqrt(inputnum+outputnum))+10
%構(gòu)建網(wǎng)絡(luò)
net=newff(inputn,outputn,hiddennum,transform_func,train_func);
% 網(wǎng)絡(luò)參數(shù)
net.trainParam.epochs=1000; % 訓(xùn)練次數(shù)
net.trainParam.lr=0.01; % 學(xué)習(xí)速率
net.trainParam.goal=0.000001; % 訓(xùn)練目標(biāo)最小誤差
% 網(wǎng)絡(luò)訓(xùn)練
net=train(net,inputn,outputn);
an0=sim(net,inputn); %仿真結(jié)果
mse0=mse(outputn,an0); %仿真的均方誤差
disp([' 隱含層節(jié)點(diǎn)數(shù)為 ',num2str(hiddennum),' 時(shí),訓(xùn)練集的均方誤差為:
',num2str(mse0)])
%更新最佳的隱含層節(jié)點(diǎn)
if mse0<MSE
MSE=mse0;
hiddennum_best=hiddennum;
end
end
disp(['最佳的隱含層節(jié)點(diǎn)數(shù)為:',num2str(hiddennum_best),',相應(yīng)的均方誤差為:
',num2str(MSE)])
%% 構(gòu)建最佳隱含層節(jié)點(diǎn)的 BP 神經(jīng)網(wǎng)絡(luò)
net=newff(inputn,outputn,hiddennum_best,transform_func,train_func);
% 網(wǎng)絡(luò)參數(shù)
net.trainParam.epochs=1000; % 訓(xùn)練次數(shù)
net.trainParam.lr=0.01; % 學(xué)習(xí)速率
net.trainParam.goal=0.000001; % 訓(xùn)練目標(biāo)最小誤差
%% 網(wǎng)絡(luò)訓(xùn)練
net=train(net,inputn,outputn);
%% 網(wǎng)絡(luò)測(cè)試
an=sim(net,inputn_test); %用訓(xùn)練好的模型進(jìn)行仿真
test_simu=mapminmax('reverse',an,outputps); % 預(yù)測(cè)結(jié)果反歸一化
error=test_simu-output_test; %預(yù)測(cè)值和真實(shí)值的誤差
%%真實(shí)值與預(yù)測(cè)值誤差比較
figure
plot(output_test,'bo-','linewidth',1.2)
hold on
plot(test_simu,'r*-','linewidth',1.2)
legend('期望值','預(yù)測(cè)值')
xlabel('測(cè)試樣本編號(hào)'),ylabel('指標(biāo)值')
title('BP 測(cè)試集預(yù)測(cè)值和期望值的對(duì)比')
set(gca,'fontsize',12)
figure
plot(error,'ro-','linewidth',1.2)
xlabel('測(cè)試樣本編號(hào)'),ylabel('預(yù)測(cè)偏差')
title('BP 神經(jīng)網(wǎng)絡(luò)測(cè)試集的預(yù)測(cè)誤差')
set(gca,'fontsize',12)
%計(jì)算誤差
[~,len]=size(output_test);
SSE1=sum(error.^2);
MAE1=sum(abs(error))/len;
MSE1=error*error'/len;
RMSE1=MSE1^(1/2);
MAPE1=mean(abs(error./output_test));
r=corrcoef(output_test,test_simu); %corrcoef 計(jì)算相關(guān)系數(shù)矩陣,包括自相關(guān)和
互相關(guān)系數(shù)
R1=r(1,2);
disp(' ')
disp('/')
disp('預(yù)測(cè)誤差分析...')
disp(['誤差平方和 SSE 為: ',num2str(SSE1)])
disp(['平均絕對(duì)誤差 MAE 為: ',num2str(MAE1)])
disp(['均方誤差 MSE 為: ',num2str(MSE1)])
disp(['均方根誤差 RMSE 為: ',num2str(RMSE1)])
disp(['平均百分比誤差 MAPE 為: ',num2str(MAPE1*100),'%'])
disp(['相關(guān)系數(shù) R 為: ',num2str(R1)])
%打印結(jié)果
disp(' ')
disp('/')
disp('打印測(cè)試集預(yù)測(cè)結(jié)果...')
disp([' 編號(hào) 實(shí)際值 預(yù)測(cè)值 誤差'])
for i=1:len
disp([i,output_test(i),test_simu(i),error(i)])
end
全部論文請(qǐng)見(jiàn)下方“ 只會(huì)建模 QQ名片” 點(diǎn)擊QQ名片即可
到了這里,關(guān)于數(shù)學(xué)建模-基于LightGBM和BP神經(jīng)網(wǎng)絡(luò)的互聯(lián)網(wǎng)招聘需求分析與預(yù)測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!