• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于BP神經(jīng)網(wǎng)絡(luò)的電信用戶流失預(yù)測研究

      2021-12-01 14:52:22王小超
      綏化學(xué)院學(xué)報 2021年11期
      關(guān)鍵詞:準確率神經(jīng)網(wǎng)絡(luò)預(yù)測

      王小超 張 勇

      (巢湖學(xué)院信息工程學(xué)院 安徽合肥 238000)

      隨著移動通信技術(shù)的快速發(fā)展,電信運營商的用戶數(shù)量急劇增長,通信市場競爭日益激烈。通過利用電信應(yīng)用系統(tǒng)產(chǎn)生的數(shù)據(jù),建立預(yù)測模型,對可能出現(xiàn)流失的用戶做出較為準確的預(yù)測,對于減少用戶的流失,提高通信運營商的運營水平,有著較高的應(yīng)用價值[1]。

      本文以實際的電信應(yīng)用數(shù)據(jù)為研究對象,采用了BP神經(jīng)網(wǎng)絡(luò)算法,研究了電信用戶流失問題。通過訓(xùn)練數(shù)據(jù)建立了數(shù)據(jù)模型,通過對模型的優(yōu)化,最終得到了實際可用的數(shù)據(jù)模型,有效對電信用戶流失做出預(yù)測。

      一、算法選擇

      該問題實際屬于一個二值分類問題,即建立模型的目標是預(yù)測一個用戶的流失或未流失。解決二值分類問題的算法較多,常用的算法有支持向量機SVM、隨機森林RF算法、K近鄰算法等。

      通過初步的模型評估,隨機森林與支持向量機SVM效果相當,KNN算法分類效果較差,而神經(jīng)網(wǎng)絡(luò)的效果較好。因此,本文在算法選擇上,采用了BP神經(jīng)網(wǎng)絡(luò)算法,該算法具有應(yīng)用廣泛、泛化能力強、準確率高等特點。

      二、BP神經(jīng)網(wǎng)絡(luò)算法

      BP(back propagation)神經(jīng)網(wǎng)絡(luò)是應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò),是一種按照誤差反向傳播的方式訓(xùn)練數(shù)據(jù)的多層前饋神經(jīng)網(wǎng)絡(luò)。典型的BP神經(jīng)網(wǎng)絡(luò)模型如圖1所示。

      圖1 BP神經(jīng)網(wǎng)絡(luò)模型

      BP神經(jīng)網(wǎng)絡(luò)模型經(jīng)歷了正向傳播和反向傳播兩個過程。

      (一)正向傳播。以圖1兩層神經(jīng)網(wǎng)絡(luò)為例,在正向傳播時,神經(jīng)網(wǎng)絡(luò)按照一下方式計算各層輸出:

      H=?(XW1+b1)

      O=HW2+b2

      其中?表示激活函數(shù),常用的激活函數(shù)有sigmoid函數(shù)、ReLU函數(shù),tanh函數(shù)。求得輸出結(jié)果后計算誤差函數(shù)E。

      (二)反向傳播。首先考慮輸出層與中間層之間的權(quán)重w2jk的調(diào)整。若各層都使用激活函數(shù)sigmoid時,誤差E對連接權(quán)重w2jk求導(dǎo)結(jié)果是:

      接下來對輸入層與中間層之間的連接權(quán)重w1ij求導(dǎo),計算結(jié)果如公式所示:

      這樣就可以根據(jù)各層的梯度更新w2jk和w1ij,偏置項的更新過程類似。

      三、建立預(yù)測模型

      防止用戶流失、保留現(xiàn)有用戶對于電信運營商降低運營成本、提高收益具有現(xiàn)實意義。建立較為精準的預(yù)測模型,運營商可以對可能出現(xiàn)流失的用戶進行預(yù)測,通過增大政策引導(dǎo)來留住用戶。整個模型建立過程,需要經(jīng)歷5個階段:數(shù)據(jù)預(yù)處理,定義BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練集上訓(xùn)練模型,為提升模型效率進行調(diào)參,最后進行評估模型。

      (一)數(shù)據(jù)字段。該模型的數(shù)據(jù)采用中國移動真實的公開數(shù)據(jù)集,每條數(shù)據(jù)包含18個特征,但不是所有的特征都與用戶流失相關(guān),去除個人客戶ID字段后,用于建立模型的有17個特征,其中churn是標簽字段。具體特征值如表1所示。

      表1 用戶流失相關(guān)屬性

      curPlan avgplan posPlanChange negPlanChange nrProm prom call_10086 churn開始時套餐類型:1=200;2=300;3=350;4=500分鐘統(tǒng)計期間內(nèi)平均套餐類型統(tǒng)計期間是否提高套餐:1=是統(tǒng)計期間是否降低套餐:1=是電信公司營銷數(shù)量最近一個月是否被營銷過:是=1統(tǒng)計期間是否撥打10086是否流失:1=流失

      (二)數(shù)據(jù)預(yù)處理。

      1.數(shù)據(jù)清洗。數(shù)據(jù)的清理過程主要是清除噪聲和刪除不一致的數(shù)據(jù),而缺失值、噪聲和不一致性都會導(dǎo)致不正確的數(shù)據(jù),從而影響到數(shù)據(jù)的質(zhì)量。數(shù)據(jù)清理的目標要完成數(shù)據(jù)的缺失值處理、光滑噪聲數(shù)據(jù)并能夠識別離群點,糾正數(shù)據(jù)中出現(xiàn)的不一致[2]。本文中對缺失值采用均值中位數(shù)填充的方法進行填充。對于離群點,通過數(shù)據(jù)可視化方式進行聚類,為避免離群點對模型造成不利影響,需要將離群點做刪除處理。

      2.數(shù)據(jù)規(guī)范化。數(shù)據(jù)規(guī)范化在神經(jīng)網(wǎng)絡(luò)分類中的作用尤為重要,規(guī)范化就是賦予所有的屬性相同的權(quán)重,當不同特征的值域差異較大時,必須要完成數(shù)據(jù)規(guī)范化,這里采用的是最小-最大規(guī)范化方法,將每個特征的值域映射到[0,1]區(qū)間上。具體方法如下:

      3.數(shù)據(jù)平衡。數(shù)據(jù)不平衡時,可能會造成預(yù)測結(jié)果的偏向。在分類問題中,主要考慮樣本在不同分類上大致是均衡的。如本實驗的樣本數(shù)據(jù)流失用戶數(shù)比非流失用戶數(shù)要少得多,這樣會使得訓(xùn)練得到的模型在預(yù)測時會偏向于非流失[3]。為解決數(shù)據(jù)不平衡的問題,并盡可能多的保留樣本數(shù)據(jù),采用了上采樣的方式解決,即流失用戶的樣本集生成與非流失的樣本集相同數(shù)量的樣本。

      4.數(shù)據(jù)集劃分。在訓(xùn)練模型時,需要將整個的樣本數(shù)據(jù)集劃分成訓(xùn)練集和測試集,測試集用于最終的模型測試評估,而訓(xùn)練集用于模型的建立。在建立模型時,為測試模型訓(xùn)練時的效果,還應(yīng)從訓(xùn)練集中取出一定比例的樣本構(gòu)成驗證集,以便在訓(xùn)練過程中測試模型的效果。根據(jù)數(shù)據(jù)集大小,確定訓(xùn)練集和測試集比例,本文訓(xùn)練集與測試集按照7:3劃分,訓(xùn)練集中的驗證集按照交叉驗證的方式劃分。

      (三)建立BP神經(jīng)網(wǎng)絡(luò)模型。模型建立是該問題的核心部分,應(yīng)綜合考慮數(shù)據(jù)樣本集的情況和實際問題的目標,選擇合適的模型,使用訓(xùn)練集對模型進行訓(xùn)練,使得模型能夠反映數(shù)據(jù)之間的內(nèi)在關(guān)系[4]。建模的過程是一個反復(fù)迭代的過程,通過反復(fù)調(diào)整參數(shù)得到合適的數(shù)據(jù)模型。

      1.確定模型,構(gòu)建兩層模型。為了提高精度,可以通過增加網(wǎng)絡(luò)的隱藏層的層數(shù)或者增加隱藏層神經(jīng)元個數(shù)兩種方式實現(xiàn)??紤]到模型復(fù)雜度以及時間效率,本文采用了兩層的BP神經(jīng)網(wǎng)絡(luò)模型,包含了1個輸入層,1個隱藏層,1個輸出層,采用該兩層模型實現(xiàn)電信用戶流失預(yù)測模型。

      BP神經(jīng)網(wǎng)絡(luò)模型建立需要經(jīng)過反復(fù)迭代,先正向傳播計算各層輸出,再通過計算誤差E,反向傳播不斷更新各層的權(quán)重參數(shù)與偏置項。BP神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練流程如圖2所示。

      圖2 BPNN訓(xùn)練流程

      先通過初始化的權(quán)重參數(shù),偏置項以及學(xué)習(xí)率等超參數(shù)建立模型結(jié)構(gòu),執(zhí)行神經(jīng)網(wǎng)絡(luò)正向傳播過程,得到前向計算的輸出,通過計算期望輸入r和網(wǎng)絡(luò)實際輸出y計算最小二乘誤差函數(shù)E。以該誤差函數(shù)E為目標函數(shù),模型的訓(xùn)練目標就是讓實際的計算輸出與期望輸出接近,即E值趨近于0。因此,模型的訓(xùn)練過程就是不斷調(diào)整各層的權(quán)重參數(shù)W,使得最小二乘誤差函數(shù)E趨近于0。

      rn表示第n個樣本的期望輸出值,yn表示個樣本的網(wǎng)絡(luò)實際輸出值。

      2.參數(shù)設(shè)置。隱藏層結(jié)點個數(shù)nh:采用下面常用的經(jīng)驗值計算方法得到隱藏層結(jié)點個數(shù),ni表示輸入層節(jié)點數(shù)為16,n0表示輸出層節(jié)點數(shù)為2,在實驗階段將m從1調(diào)整到10,根據(jù)實際的測試結(jié)果調(diào)整隱藏層結(jié)點個數(shù)。初始值取m=1,計算得到隱藏層結(jié)點個數(shù)為5。

      學(xué)習(xí)率?:學(xué)習(xí)率?的設(shè)置比較關(guān)鍵,學(xué)習(xí)率過小,收斂過程較慢,消耗大量的模型訓(xùn)練時間,學(xué)習(xí)率過大,每次權(quán)值參數(shù)修正也增大,可能會造成收斂過程的跳躍,可能會收斂到一個非最小值點,甚至不收斂。為了選取合適的學(xué)習(xí)率,每次迭代時學(xué)習(xí)率不是固定的,學(xué)習(xí)率依賴于上一次的迭代的學(xué)習(xí)率,整體逐漸遞減。學(xué)習(xí)率?經(jīng)驗值一般取0.01到0.8之間,本文初始的學(xué)習(xí)率?設(shè)置為0.1。

      3.網(wǎng)絡(luò)訓(xùn)練過程。正向傳播過程:根據(jù)規(guī)劃的BP神經(jīng)模型結(jié)構(gòu),輸入層采用W1x1+b1線性函數(shù)計算,在隱藏層使用目前最為流行的ReLU函數(shù)ReLU = max(0,W1x1+b1)作為激活函數(shù),該函數(shù)提供了一個簡單的非線性變換,且具有很好的可導(dǎo)特性,便于在反向傳播時計算梯度。輸出層使用線性函數(shù)W2x2+b2得到輸出,正向傳播過程如圖3所示。

      圖3 正向傳播過程

      在計算損失函數(shù)值時,還應(yīng)考慮正則化懲罰項,本文使用L2類型的正則化懲罰項,因此最終的的損失值loss計算如下:

      data_loss是使用了softmax函數(shù)的交叉熵損失,其中表示第i個樣本的預(yù)測值y(i)取到真實值ri的概率,reg_loss是L2正則化損失函數(shù),reg是懲罰因子,表示懲罰的力度。

      反向傳播過程:為了更新W1,b1,W2,b2參數(shù),反向傳播就是計算梯度的過程,從最后的損失函數(shù)反向逐層求導(dǎo)。首先對softmax函數(shù)反向傳播求導(dǎo),符號d表示求導(dǎo):

      dscores=正確分類概率值-1

      再對W2x2+b2線性計算中的各個參數(shù)求導(dǎo)。符號×表示矩陣乘法,下面公式同樣。

      dx2=dscores×W2

      dw2=dscores×x2

      db2=dscores

      接著對ReLU函數(shù)求導(dǎo),因為RelU=max(0,x),求x求導(dǎo),若x>0,導(dǎo)數(shù)為1,若x<=0,導(dǎo)數(shù)為0。因此Relu求導(dǎo)如下:

      drelu=dx

      drelu[x<=0]=0

      最后對W1x1+b1反向求導(dǎo)。

      dx1=drelu×W1

      dw1=drelu×x1

      db1=drelu

      完成反向傳播,后更新權(quán)值參數(shù),更新參數(shù)時使用Adam優(yōu)化算法,更有效地更新網(wǎng)絡(luò)權(quán)重。

      m=b1?m+(1-b1)?dx

      v=b2?v+(1-b2)?dx^2

      W+=-learning_rate?m/sqrt(v)

      五、算例分析

      (一)模型準確率?;谝陨纤惴ㄓ?xùn)練的BP神經(jīng)網(wǎng)絡(luò)模型,在驗證集和測試集上測試模型的分類效果。實際測試的結(jié)果如圖4所示。從如圖4(a)圖中可以看出,執(zhí)行了10次epoch后模型準確率趨于穩(wěn)定,以100作為一次batch_size迭代計算,打印了損失函數(shù)與迭代次數(shù)的關(guān)系圖,當?shù)螖?shù)超過50次時,損失函數(shù)趨于收斂。從圖4(b)圖可以看出,最終驗證集的模型準確率達到88.3%,測試集的模型準確率達到了84.8%,具有較高的準確度,且沒有出現(xiàn)過擬合問題。

      圖4 BPNN模型預(yù)測結(jié)果

      (二)召回率。為驗證預(yù)測電信用戶流失的準確率,采用模型準確率在當前場景下不是非常合適。該問題只需考慮用戶實際流失的情況,當預(yù)測用戶會流失實際情況也流失了,表明預(yù)測正確。而當預(yù)測用戶不會流失,沒有采取任何的措施,實際情況用戶流失了,這時電信公司就會產(chǎn)生損失。這就表明,即使模型分類的準確率很高,也可能會出現(xiàn)大量用戶流失被預(yù)測成非流失,造成損失。因此采用召回率recall值衡量模型準確率更為合適,即recall=TP/(TP+FN)。其中,TP表示預(yù)測會流失實際也流失的數(shù)量,F(xiàn)N表示預(yù)測非流失實際流失的數(shù)量。recall取[0,1]之間的值。圖5為模型在測試集上的混淆矩陣,計算召回率:

      圖5 BPNN測試集的混淆矩陣

      recall=TP/(TP+FN)=393/(78+393)=83.4%以召回率評估模型,仍然具有較高精度。

      (三)算法對比。將BP神經(jīng)網(wǎng)絡(luò)模型,與SVM,RF,KNN算法在測試集上的預(yù)測結(jié)果進行對比,結(jié)果如表2所示,由結(jié)果可知,從準確率指標上看,BP神經(jīng)網(wǎng)絡(luò)模型的準確率最高達到了84.8%,SVM與RF模型準確率相當,而KNN算法的精確度較低。從召回率指標上看,BPNN仍然具有較高的精度,預(yù)測集上達到了83.4%。而SVM,RF算法雖然模型準確率較高,召回率的精度卻并不高,KNN算法的召回率效果較差。

      表2 各算法評估結(jié)果對比

      本文采用的BP神經(jīng)網(wǎng)絡(luò)算法經(jīng)過反向誤差傳播更新模型參數(shù),能夠使得模型的構(gòu)建更加準確,通過調(diào)節(jié)正則化懲罰項,激活函數(shù),學(xué)習(xí)率,隱藏層深度,隱藏層節(jié)點數(shù)等超參數(shù),可以具有更優(yōu)的用戶流失預(yù)測準確度。

      四、結(jié)語

      本文開展了基于BP神經(jīng)網(wǎng)絡(luò)算法的電信用戶流失預(yù)測應(yīng)用研究,結(jié)果表明:BPNN模型訓(xùn)練結(jié)果在準確率方面表現(xiàn)出色。

      BP神經(jīng)網(wǎng)絡(luò)算法相比于SVM,RF,KNN等算法,通過調(diào)參可以訓(xùn)練得到更加準確的預(yù)測模型,在實際的用戶流失預(yù)測中具有更高的模型準確率與召回率。

      本文中僅基于BP神經(jīng)網(wǎng)絡(luò)算法建立了用戶流失的預(yù)測模型。實際上,影響電信用戶流失的原因較為復(fù)雜,分析的內(nèi)容除了預(yù)測模型外,還應(yīng)涉及用戶分組,流失用戶特征分析等方面[5]。為達到更好的分析效果,可進行用戶分組,對樣本數(shù)據(jù)進行聚類分析,計算每個組中用戶流失的比重,找到流失率最高的分組,還可以開展流失用戶特征分析,對流失用戶做因子分析,找到重要的影響特征,對具有容易流失特征的用戶做體驗改善方案[6]。這樣通過多方面的數(shù)據(jù)分析,有助于模型進一步的優(yōu)化,支撐電信運營商的運行決策。

      猜你喜歡
      準確率神經(jīng)網(wǎng)絡(luò)預(yù)測
      無可預(yù)測
      黃河之聲(2022年10期)2022-09-27 13:59:46
      選修2-2期中考試預(yù)測卷(A卷)
      選修2-2期中考試預(yù)測卷(B卷)
      乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
      健康之家(2021年19期)2021-05-23 11:17:39
      不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
      2015—2017 年寧夏各天氣預(yù)報參考產(chǎn)品質(zhì)量檢驗分析
      神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      高速公路車牌識別標識站準確率驗證法
      不必預(yù)測未來,只需把握現(xiàn)在
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
      重型機械(2016年1期)2016-03-01 03:42:04
      普安县| 色达县| 普宁市| 汝州市| 京山县| 宝鸡市| 宁乡县| 奉新县| 阿克苏市| 鄂州市| 津南区| 瑞丽市| 金乡县| 贡山| 万州区| 永安市| 邯郸县| 义乌市| 赣榆县| 武威市| 桂阳县| 固镇县| 古交市| 东山县| 双鸭山市| 同江市| 云梦县| 西峡县| 武威市| 柳州市| 长武县| 淮北市| 丹凤县| 麻阳| 长沙市| 凤城市| 敦化市| 西城区| 丹江口市| 张家口市| 都江堰市|