張海洋 張妍 馬策 張丹丹 譚鑫 宋雪
【摘要】數(shù)值預測問題,即為針對大量數(shù)據(jù),利用機器學習的分類算法,對數(shù)據(jù)的各項特征間的關系,和各樣本及對應的類別的映射關系,生成針對該數(shù)據(jù)的預測模型。不同的分類算法可建立不同的分類模型。本文針對生成模型的評估方法和對收集到的數(shù)據(jù)進行處理的方法進行簡要介紹,最后提出一個完整的針對具體數(shù)值預測問題如何處理數(shù)據(jù)和如何選擇最優(yōu)評估方法的解決流程。
【關鍵詞】模型評估;數(shù)值預測;數(shù)據(jù)處理;機器學習
項目來源:大連海洋大學大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(項目編號為201810158152),遼寧省國際教育十三五科研規(guī)劃課題:通信工程專業(yè)課程思政課程體系及教學方法研究(項目編號為18LNGJ042),大連海洋大學青年馬克思主義者培養(yǎng)工程專項研究課題:“互聯(lián)網(wǎng)+”背景下通信工程專業(yè)課程思政教育模式創(chuàng)新研究,大連海樣大學信息工程學院項目。
1. 引言
針對實際問題生成預測模型,常需要以下4步:采集數(shù)據(jù)、可行性分析,數(shù)據(jù)預處理,訓練并生成預測模型,模型性能評估。實際問題中收集到的數(shù)據(jù)往往不適合直接使用。需要人工進行數(shù)據(jù)預處理過程。而通過訓練形成預測模型后還需要對生成的模型性能進行評估。下面分兩部分分別介紹數(shù)據(jù)處理和模型評估的主要方法。
2. 數(shù)據(jù)處理方法
2.1 缺失值
通常情況下,收集到的數(shù)據(jù)大多含有缺失值,缺失值對于訓練出的模型或多或少會帶來影響。對于缺失值問題可采取去掉和補充兩種方式解決。如果缺失值的樣本占比較小,可以考慮直接刪除帶缺失值的樣本。如果收集到的數(shù)據(jù)含有大量缺失值,刪除這些樣本會大大減小數(shù)據(jù)集的含量,所以需要填充缺失值。填充缺失值的方法包括:補插均值,使用固定值,最近鄰補插,拉格朗日插值法和牛頓插值法等。
2.2 均值歸一化與最值歸一化
歸一化的思想就是將所有的數(shù)據(jù)映射到統(tǒng)一尺度。在某些分類算法中,對于數(shù)據(jù)特征值天生就相對其他特征值明顯相差很大的情況,如果不進行歸一化,很有可能被誤認為該特征對于預測結果影響權重較大,這會產(chǎn)生不正確的預測。對于有明顯邊界的數(shù)據(jù)特征值,受邊界特征值影響較大,常采用最值歸一化。但如果有新數(shù)據(jù)的加入,需要重新歸一化。而對于數(shù)值波動不明顯的數(shù)據(jù),數(shù)據(jù)分布沒有明顯邊界,常采用均值歸一化方法。對于決策樹算法,對樣本每一個特征的閾值進行劃分,無需考慮特征間的聯(lián)系,所以無需進行歸一化處理。
2.3 交叉驗證
收集到的數(shù)據(jù)需要切分成訓練集和測試集兩部分。訓練集用于訓練模型參數(shù)并生成模型,測試集用于衡量模型性能優(yōu)劣。為了能夠充分利用收集到的全部數(shù)據(jù)。單純的只按照一定比例切分全部數(shù)據(jù)是不劃算的。故常采用交叉驗證的方法,將全部數(shù)據(jù)分段劃分,輪換作為訓練集和測試集,充分利用到全部樣本,使機器學習到更多的特征關系。為了更接近現(xiàn)實中無法獲得測試數(shù)據(jù)集的均值和方差的情況,通常先對數(shù)據(jù)集進行劃分,而后將測試集按照訓練集的均值和方差進行歸一化。劃分數(shù)據(jù)集時主要可采用K-Folds交叉驗證法(K-Folds Cross Validation)和LOO-CV(Leave-One-Out Cross Validation)留一法。對于K-Folds法以k=4為例,如下圖2所示,將數(shù)據(jù)集均等分成4份,輪換一部分數(shù)據(jù)作為訓練集和測試集,最后對生成的4個模型的均值作為結果調參。
但每次訓練都會生成k個模型,運算量較大,生成時間較長。還有一種最接近模型性能的方法為留一法。留一法將有m個樣本的數(shù)據(jù)集分為m份,將每一條樣本作為測試集,其余的樣本作為訓練集,訓練出m個模型,然后再綜合考慮所有的模型參數(shù),將m個模型的均值作為結果調參。該方法計算量巨大,但能夠充分考慮每一條樣本的特征,適合對模型精度要求高的問題使用。
2.4 數(shù)據(jù)可視化
在對未知問題進行可行性分析時,還可采用數(shù)據(jù)可視化方法,直觀地查看數(shù)據(jù)樣本與標簽之間的聯(lián)系。根據(jù)不同的數(shù)據(jù)分布,選擇用不同的圖形展示數(shù)據(jù),如直方圖,散點圖,?;鶊D和河流圖等等。對于機器學習的分類問題,數(shù)據(jù)樣本與標簽屬于離散變量,通過繪制散點圖和決策邊界,可以直觀顯示出樣本特征對于預測的影響;對于回歸問題,數(shù)據(jù)樣本與標簽都是連續(xù)變量,常采用繪制折線圖顯示擬合曲線與實際標簽的曲線的誤差。對于數(shù)據(jù)包含特征數(shù)過多的情況,無法用二維或三維空間表示,可以采用繪制平行坐標圖來顯示。還可采用主成分分析法,將高維數(shù)據(jù)降至低維,并且還能去掉數(shù)據(jù)間的噪聲。
3. 模型評估方法
對于給定的幾組數(shù)據(jù),人類無法直觀的發(fā)掘每條數(shù)據(jù)及其類別間的關系,基于數(shù)值預測的思想,機器學習分類算法可以在給定足夠的樣本數(shù)據(jù)的情況下,解決許多實際的預測問題。針對不同的分類算法可生成不同的預測模型,該模型可以對給出的未知數(shù)據(jù)預測其對應的類別,而分析通過算法生成的預測模型的性能需要使用下面介紹的幾種模型評估方法。
3.1 分類準確度與混淆矩陣
對于樣本包含的類別數(shù)量在極度不平均的情況下,不能只根據(jù)準確度來評估模型,因為在某種樣本對應類別數(shù)目很多的情況下,只看模型對于該類別的預測效果雖然是很理想的,但對于樣本對應類別數(shù)目很少的樣本預測效果就會很不理想。于是人們引入混淆矩陣的概念,更加全面的評估樣本準確度,如表1。
針對不同的問題著重點不同,若是類似股票預測這樣的問題,希望模型精準率要高;類似醫(yī)療診斷這樣的問題,希望模型的召回率要高。綜合來說,一個分類模型準確度高意味著精準率和召回率都要高。于是可用F1 Score指標衡量,如公式1:
F1 Score是精準率和召回率的調和平均值,F(xiàn)1 Score越大,分類效果越好??紤]到不同的閾值分類出的效果不同,引入FPR(False Positive Rate),TPR(True Positive Rate)作為兩個坐標軸繪制出ROC(Receiver Operation Characteristic Curve)曲線來評估,ROC曲線所圍面積越大,分類效果越好。
3.2 回歸模型誤差
對于線性回歸問題,設測試集中第i個樣本對應標簽值為? ? 將第i個樣本輸入到模型中后的預測結果為 可通過均方誤差MSE(Mean Squared Error)評估模型,若考慮到預測樣本標簽的量綱與實際量綱一致,還需做開方處理,即均方根誤差RMSE(Root Mean Squared Error)。當然也可利用絕對值衡量誤差,即平均絕對誤差MAE(Mean Absolute Error)。具體公式如表2。
由于均方根誤差公式中使用了誤差的平方,相對擴大了誤差,故在實際使用中常使用均方根誤差作為衡量線性回歸模型的標準。對于線性回歸模型還有一個更為科學的評估方法,即R Squared法,如公式2所示:
R2越接近1,說明模型分類效果越好,R2為0時說明模型等價于基準模型,即以樣本平均值來分類的模型,R2小于0時說明模型不具有線性關系,需要考慮非線性回歸的算法。
3.3 偏差與方差
模型的誤差來源于模型偏差,模型方差與無法避免的誤差這三方面。對數(shù)值預測問題的假設不正確,比如將非線性回歸問題假設為線性回歸問題來建模,這種錯誤的假設會導致模型出現(xiàn)偏差。欠擬合的模型通常會導致模型高偏差,過擬合的模型會導致模型高方差。如果數(shù)據(jù)出現(xiàn)微小的擾動,預測的結果會出現(xiàn)極大的偏移,這樣的模型為高方差模型。高方差模型究其原因是因為模型太過復雜,例如高階多項式回歸模型。機器學習算法中的非參數(shù)學習算法都是高方差算法,因為不對數(shù)據(jù)進行假設,很容易造成過擬合。而參數(shù)學習都是高偏差算法,因為預先對數(shù)據(jù)進行了假設,例如線性回歸模型。機器學習中的調參方法就是在模型偏差與方差之間做平衡取舍。大多數(shù)機器學習算法容易產(chǎn)生過擬合,而機器學習主要任務也就是在降低模型的高方差。關于解決高方差與高偏差的主要方法如下表3:
3.4 模型的泛化能力
模型評估中分為過擬合和欠擬合問題。算法訓練生成的模型無法完整地描繪數(shù)據(jù)關系,則視為欠擬合模型。而生成模型中不光覆蓋全部數(shù)據(jù)關系,還將數(shù)據(jù)的噪聲也被認為是分類依據(jù)加入到模型中,這樣的模型視為過擬合模型。大量實驗結果顯示,模型復雜程度越高,訓練集上的預測準確率越高,而測試集的預測準確率越低,越容易產(chǎn)生過擬合,而欠擬合問題則恰恰相反。由于多層感知機的結構之復雜,雖然能很大程度提升預測準確率,但模型的泛化能力卻相對差一些。模型評估很大程度上是在調整模型來抑制過擬合,提升模型的泛化能力。
4. 數(shù)據(jù)處理與模型評估主要流程
(1)判斷收集到的數(shù)據(jù)中缺失值數(shù)量,數(shù)量大的使用近鄰插值,牛頓插值等方法替換缺失值;數(shù)量小的直接去掉帶有缺失值的樣本。
(2)根據(jù)數(shù)據(jù)規(guī)模與具體需求,可采用K-Folds或留一法來對數(shù)據(jù)劃分以用來交叉驗證。
(3)判斷訓練出模型用到的算法是否是根據(jù)數(shù)據(jù)特征閾值來分類數(shù)據(jù)的數(shù)值預測算法,如果不是,則直接進入步驟(4),如果是則進入步驟(5)
(4)判斷數(shù)據(jù)樣本的特征值中是否有明顯邊界,如果是則使用最值歸一化處理數(shù)據(jù);如果沒有明顯邊界則使用均值歸一化方法處理數(shù)據(jù)。
(5)使用數(shù)值預測算法訓練輸入的樣本數(shù)據(jù),形成具體的預測模型。
(6)將測試數(shù)據(jù)集輸入到模型中,根據(jù)預測模型是分類模型或回歸模型來使用相應的評價指標評估模型,根據(jù)結果不斷調整模型,以此得到最優(yōu)解。
5. 結語
在機器學習任務中處理數(shù)據(jù)占據(jù)大量時間。模型性能的好壞,很大程度地取決于數(shù)據(jù)處理的好不好,數(shù)據(jù)量是否足夠??梢姄碛刑幚砗玫拇罅繑?shù)據(jù)樣本是解決機器學習問題的重要因素。機器學習的最終目的就是得到性能良好的模型,本文介紹了常用的模型評估方法與數(shù)據(jù)處理方法,提出一個有效的數(shù)值預測模型的數(shù)據(jù)處理和模型評估流程,該流程經(jīng)過實踐檢驗是科學有效的。數(shù)據(jù)處理方法和模型評估方法遠不止這些,比如聚類模型的評估本文沒有涉及,面對實際問題,具體采用哪種方法,需要根據(jù)工程師的知識儲備和實際經(jīng)驗進行選擇,而后試驗評估模型的性能,并進行取舍,從而找尋能最大限度提升模型性能的處理方法。
參考文獻:
[1]喬瑩瑩.基于數(shù)值預測的機器學習相關算法綜述[J]..安陽工學院學報,2017,(4):71-74
[2]王宏志.工業(yè)大數(shù)據(jù)分析綜述:模型與算法[J].大數(shù)據(jù),2018,(5):62-79
[3]鐘華明 梁玉楠 曾少軍.數(shù)值預測算法比較研究. 信息技術與網(wǎng)絡安全[J],2019,(1):44-48
[4]楊劍鋒等.機器學習分類問題及算法研究綜述.統(tǒng)計與決策[J],2019,(6):36-40
作者簡介:張妍(通訊作者)(1977—),遼寧鞍山人,碩士,講師,大連海洋大學信息工程學院,通信教研室主任,研究方向:電子線路教學與實踐(116023)。張海洋,馬策,張丹丹,譚鑫,宋雪為大連海洋大學信息工程學院學生。