供稿|栗輝,蔡錚,雒天驕,傅偉康,張博鈺,肖成勇 / LI Hui, CAI Zheng, LUO Tian-jiao, FU Wei-kang, ZHANG Bo-yu, XIAO Cheng-yong
內(nèi)容導(dǎo)讀
人工智能技術(shù)的快速發(fā)展對機器學(xué)習(xí)人才的需求不斷擴大,機器學(xué)習(xí)課程也成為高校人工智能類專業(yè)的核心課程且具有高度實踐性,因此將實際項目與理論教學(xué)融為一體,才能更好的使學(xué)生得到實踐鍛煉。本文設(shè)計了一個基于遷移學(xué)習(xí)算法的供應(yīng)商違約預(yù)測的實踐案例,通過改進基于間隔核密度估算的虛擬樣本生成技術(shù),本研究將其他相似供應(yīng)商預(yù)測模型轉(zhuǎn)換成輔助數(shù)據(jù)的形式。通過基于權(quán)重的遷移學(xué)習(xí)算法(TrAdaBoost),將生成的輔助數(shù)據(jù)中的知識遷移至源數(shù)據(jù)中來。最后通過對比沒有使用遷移學(xué)習(xí)的模型,使用本研究技術(shù)架構(gòu)訓(xùn)練得到的違約預(yù)測模型準(zhǔn)確率更高、泛化能力更強。學(xué)生可通過該案例實踐使用機器學(xué)習(xí)方法解決實際問題的完整過程。
隨著人工智能技術(shù)的快速發(fā)展以及各行各業(yè)中的數(shù)據(jù)化浪潮的快速推進,應(yīng)用機器學(xué)習(xí)算法分析數(shù)據(jù),以便通過海量數(shù)據(jù)快速獲得有效的規(guī)律,已經(jīng)成為當(dāng)下的發(fā)展趨勢。因此對機器學(xué)習(xí)人才的需求不斷擴大,同時對人才的多元化和綜合實踐能力提出了新的要求,機器學(xué)習(xí)課程也成為高校人工智能類專業(yè)的核心課程[1-2]。
機器學(xué)習(xí)課程涉及的算法眾多,且具有高度實踐性,但目前的課程教學(xué)多停留在算法本身,缺乏真實項目的教學(xué)資源,無法有效地讓學(xué)生進行實踐應(yīng)用,也無法滿足工程實踐應(yīng)用型人才的培養(yǎng)目標(biāo)。因此將實際項目作為課程背景,與理論教學(xué)融為一體,才能更好的使學(xué)生得到實踐鍛煉,提高學(xué)生自主思考與解決實際問題的能力[2]。
本文設(shè)計了一個基于遷移學(xué)習(xí)算法的供應(yīng)商違約預(yù)測的實踐案例,通過分析某鋼鐵企業(yè)的供應(yīng)商基本信息、采購、招投標(biāo)等數(shù)據(jù)預(yù)測出可能違約的供應(yīng)商,從而規(guī)避供應(yīng)商違約風(fēng)險。學(xué)生可通過該案例實踐使用機器學(xué)習(xí)方法解決實際問題的完整過程。
針對某鋼鐵企業(yè)供應(yīng)商數(shù)據(jù)量可能不充足,不足以訓(xùn)練一個好的預(yù)測模型的問題,本案例采用遷移學(xué)習(xí)的技術(shù)架構(gòu),通過虛擬數(shù)據(jù)生成技術(shù)生成輔助數(shù)據(jù)來提取前人總結(jié)的違約模型的先驗知識,解決了數(shù)據(jù)樣本數(shù)量過小和樣本不平衡問題。采用遷移學(xué)習(xí)的技術(shù)架構(gòu)如圖1所示。
◆ 基于隨機森林的特征選擇
為了簡化數(shù)據(jù)維度,挑選出對本案例的研究有參考價值的數(shù)據(jù)維度,人工剔除毫無相關(guān)性的維度后,將剩余的37個特征作為備選的特征集合。在此基礎(chǔ)上進行特征空間的構(gòu)建。然后對37個特征通過隨機森林來統(tǒng)計各特征重要性的排序,最后篩選出10個重要性較高的特征。
這10個特征依次如下:退貨率(reject)、延遲交貨次數(shù)(delay)、失信記錄(discredit)、下訂單與交貨之間時間差(time)、中標(biāo)率(bid)、ISO體系認(rèn)證(iso)、企業(yè)信用認(rèn)證(credit)、采購金額(amount)、企業(yè)成立年數(shù)(year)、企業(yè)成員數(shù)(member)等10個特征。接下來,將對這10個特征的含義,及其與案例的相關(guān)性展開分析,以便進一步在這些特征中提取更多的信息。
圖1 基于遷移學(xué)習(xí)的供應(yīng)商違約預(yù)測技術(shù)架構(gòu)
◆ 特征提取
為了進一步提取出更多的信息,對部分特征進行特征提取。在時間維度上對特征進行分解,可以得到特征的年度極值、均值和變化率。對以上10個特征進行特征提取之后,分解特征達到17個。
本案例通過圖2供應(yīng)商的違約評價模型將供應(yīng)商分成5類:違約情況嚴(yán)重、違約情況較重、違約情況一般、違約情況較輕、幾乎無違約行為。對應(yīng)的模型評分為0.6以上、0.4~0.6、0.2~0.4、0.1~0.2、<0.1。
TrAdaBoost算法是根據(jù)每次迭代中的分類錯誤率自動調(diào)節(jié)樣本點權(quán)重進而糾正數(shù)據(jù)分布的算法架構(gòu)[3]。輔助數(shù)據(jù)并不需要和源數(shù)據(jù)具有相同的分布,所以其他供應(yīng)商的違約模型是一個可行的輔助數(shù)據(jù)空間來源[4]。其次,輔助數(shù)據(jù)和源數(shù)據(jù)具有相同的任務(wù)[5],即都是用于判定供應(yīng)商的違約信用問題。因此,本研究收集的模型類型包括供應(yīng)商信用評價模型、供應(yīng)商違約模型。綜上所述,篩選標(biāo)準(zhǔn)有以下兩點:
圖2 源數(shù)據(jù)類別標(biāo)注模型
(1) 選取的模型的特征體系與本研究源數(shù)據(jù)的特征體系盡量相似;
(2) 選取的供應(yīng)商性質(zhì)與本實驗中的鋼企物料供應(yīng)商的性質(zhì)盡量相似,供應(yīng)商品的模式盡量相似。
虛擬樣本的取值分布使用了基于間隔核密度估算的支持向量機的方法。并對其進行算法上的調(diào)整,依據(jù)源數(shù)據(jù)的分布,生成虛擬樣本的數(shù)據(jù)取值,再通過收集到的模型進行類別判定,生成輔助數(shù)據(jù)。
(1) 虛擬數(shù)據(jù)取值分布確定:將源數(shù)據(jù)用SVM分類決策算法處理[6],挑選出其中拉格朗日乘子不為0的樣本點集合Tt。然后通過中間插值法得到虛擬數(shù)據(jù)集Ts。
(2) 模型選擇:研究供應(yīng)商違約模型30例。
(3) 將虛擬數(shù)據(jù)Ts轉(zhuǎn)換成可代入模型評定的數(shù)據(jù)格式。然后將其代入模型的指標(biāo)體系中進行判斷。每個模型都會得到一個帶自己判定結(jié)果的數(shù)據(jù)集,但其中必然會出現(xiàn)判斷結(jié)果不一致。此時,用投票的方法,取多數(shù)作為最終結(jié)果。至此,Ts數(shù)據(jù)集就有了模型判定的類別標(biāo)注,成為了帶有模型判定標(biāo)注的數(shù)據(jù)集Tc。
(4) 將數(shù)據(jù)集Tc按照轉(zhuǎn)換策略生成所需的輔助數(shù)據(jù)集Tr。
得到的輔助數(shù)據(jù)是二分類支撐界面附近的樣本點。通過重復(fù)以上步驟多次,并多次二分類,得到分布在違約嚴(yán)重、違約較嚴(yán)重、違約一般、違約較輕和幾乎不違約五種類別分界面附近的輔助數(shù)據(jù)。
圖3是SVM對樣本二分類后的分布圖。按照樣本的分布位置,將樣本分為兩大類。第一類樣本位于虛線(支撐界面)外側(cè),這部分樣本的分布情況決定了分界面(實線)的位置。第二類樣本位于兩虛線的內(nèi)側(cè),這部分樣本遠(yuǎn)離分界面,對于分界面位置的確定沒有影響。在SVM中,兩類樣本的拉格朗日乘子α不同。第一類樣本的拉格朗日乘子不為0,第二類樣本的拉格朗日乘子為0?;谝陨戏治?,本研究將第一類樣本點作為構(gòu)造源,通過插值法進行構(gòu)造。這樣產(chǎn)生出來的虛擬數(shù)據(jù)能最大程度挖掘分類模型的邊界知識。假設(shè)構(gòu)造源數(shù)據(jù)Ts的數(shù)據(jù)為X=(x1,x2,x3,x4…xN),虛擬數(shù)據(jù)的取值為Xf=(xf1,xf2,xf3…xfN)。則Xf=1/2(X1+X2)。
圖3 SVM對二分類數(shù)據(jù)分類后的樣本分布示意圖
本實驗依照SVM的拉格朗日乘子不為0的標(biāo)準(zhǔn),從1萬多條的供應(yīng)商源數(shù)據(jù)中選出構(gòu)造源樣本點 1064個。通過中間插值的方法得到虛擬數(shù)據(jù)樣本點56.7萬個。
得到虛擬數(shù)據(jù)的取值采樣后,需要將其放入收集到的模型中得到這些模型對樣本點的分類結(jié)果。把虛擬數(shù)據(jù)代入到模型時,會出現(xiàn)特征不相和的情況。為此,需要將虛擬數(shù)據(jù)轉(zhuǎn)換成模型可標(biāo)注的數(shù)據(jù)格式。調(diào)整策略為:
(1) 模型中的特征feature_a存在,而虛擬數(shù)據(jù)沒有的時候,對模型進行改造,舍棄這部分源數(shù)據(jù)沒有的特征。調(diào)整剩下的特征的權(quán)重,使其總和為1,得到相應(yīng)的判定結(jié)果。
(2) 相關(guān)的特征之間進行轉(zhuǎn)換。比如模型中的準(zhǔn)時交貨比率特征nodelay_rate并不在虛擬數(shù)據(jù)的特征集中,但計算項目交貨總次數(shù)JHamount與(1-nodelay_rate)的乘積,即可得到特征延遲交貨次數(shù)年份總值delay_all的取值。
(3) 特征概念相似,模型中為feature_a,而虛擬數(shù)據(jù)特征為feature_b,但兩者體現(xiàn)同樣的含義,可以將feature_b用feature_a的取值替代。比如本實驗中源數(shù)據(jù)的特征指標(biāo)中標(biāo)率bid反映模型中的產(chǎn)品市場占有率。輔助數(shù)據(jù)中的中標(biāo)率bid特征的取值就取模型生成數(shù)據(jù)的產(chǎn)品市場占有率這一特征值。
(4) 虛擬數(shù)據(jù)中有特征feature_b,而模型中并無這個特征,而且無相似特征feature_a可以取代。此時,輔助數(shù)據(jù)缺失這部分特征的取值。此時,輔助數(shù)據(jù)缺失特征的取值采用源數(shù)據(jù)中的眾數(shù)。
TrAdaBoost算法是基于實例的遷移學(xué)習(xí)算法,適用于相似領(lǐng)域的實例之間的遷移。
定義1(基本符號):
設(shè)Xb為源數(shù)據(jù)空間, Xa為輔助數(shù)據(jù)空間。 設(shè)Y = { 0 , 1 } 為 類 空 間。 訓(xùn) 練 數(shù) 據(jù) 為
定義2(測試數(shù)據(jù)集(未標(biāo)注)):
S={(xti)},其中當(dāng)i=1,2,…,k。
定義3(訓(xùn)練數(shù)據(jù)集):
{Ta=(xai,f(xai))},其中 xai∈ Xa,當(dāng)i=1,2,…,n;Tb={xbj,f(xbj)},其中xbibX∈ ,當(dāng)j=1,2,…,m。其中,f(x)是實例x的真實類標(biāo)。Ta為輔助訓(xùn)練數(shù)據(jù)集。Tb為源訓(xùn)練數(shù)據(jù)集。最終的訓(xùn)練數(shù)據(jù)集T={xi,f(xi)}。對其定義:xi=xdi,i=1,2,…,n;xsi,i=n+1,…,n+m。
其中,源數(shù)據(jù)集Tb與測試數(shù)據(jù)集S是同分布的。而輔助數(shù)據(jù)集Ta與S并不是同分布的,但一般會選擇分布相似的樣本,但也可能很不一樣。嚴(yán)格地說,就是輸入:輔助訓(xùn)練集Ta,源訓(xùn)練數(shù)據(jù)集Tb,未標(biāo)注的測試數(shù)據(jù)集S,分類器Learner。輸出:假設(shè)hf=X→Y。
具體的算法流程:
①設(shè)置pt滿足
②運用分類器,在合并的訓(xùn)練數(shù)據(jù)集T上訓(xùn)練。通過調(diào)節(jié)T上的權(quán)重分布pt,得到更新后的分類算法ht=X→Y。
③計算ht在Tb上的錯誤率:
⑤設(shè)置新的權(quán)重向量:
(3) 輸出最終分類器
對于數(shù)據(jù)的篩選過程可以看出本算法的原理是根據(jù)該樣本點是否被分類器正確分類來不斷更新樣本點的權(quán)重,進而減少分布差異大的數(shù)據(jù)權(quán)重。在每次迭代中,不能被正確分類的數(shù)據(jù)權(quán)重每次都會乘以一個小于1的因子(由源數(shù)據(jù)集上錯誤率計算得到)。經(jīng)過多次迭代,這個不能被正確分類的樣本點的權(quán)重就會很小,將從數(shù)據(jù)集中“刪除”。同時,那些正確分類的數(shù)據(jù),每次迭代會乘以小于1的因子的倒數(shù),權(quán)重會增大,從而被“留下來”。TrAdaBoost算法將其他領(lǐng)域中分布相似的樣本點篩選到了本案例數(shù)據(jù)量較小的源數(shù)據(jù)之中。
為了證明本文的技術(shù)架構(gòu)能有效地提高對供應(yīng)商違約預(yù)測的準(zhǔn)確率,使用單一的機器學(xué)習(xí)算法(SVM)在源數(shù)據(jù)集和合并數(shù)據(jù)集上進行試驗,對比證明TrAdaboost算法和輔助數(shù)據(jù)集確實具有提高供應(yīng)商違約預(yù)測準(zhǔn)確率的效果。從表2得到基于TrAdaBoost算法的供應(yīng)商違約預(yù)測結(jié)果與其他兩種方案的預(yù)測準(zhǔn)確率對比,證明了本研究的技術(shù)方案確實可以解決小樣本數(shù)據(jù)類別不平衡的問題,能夠提高模型的預(yù)測準(zhǔn)確率。
表2 TrAdaBoost算法預(yù)測結(jié)果與單一虛擬生成技術(shù)預(yù)測結(jié)果對比
本案例通過機器學(xué)習(xí)解決了實際問題中的源數(shù)據(jù)預(yù)處理、輔助數(shù)據(jù)生成技術(shù)、遷移學(xué)習(xí)算法分析處理等過程,通過對企業(yè)數(shù)據(jù)的分析,實現(xiàn)了供應(yīng)商違約預(yù)測,具有較好的實際應(yīng)用價值,能夠幫助學(xué)生通過案例實踐來掌握課程知識,并鍛煉其解決實際問題的能力,達到課程教學(xué)的目的。
《雪松》趙藝含