劉智玉,陳南梁,汪 軍,b
(東華大學(xué) a.紡織學(xué)院, b.紡織面料技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室, 上海 201620)
在紡織產(chǎn)業(yè)鏈中,紗線生產(chǎn)既是源頭也是關(guān)鍵環(huán)節(jié)之一,其對后道加工的成本和效率以及最終紡織品的內(nèi)在質(zhì)量都有較大影響。因此,如何應(yīng)用新技術(shù)實(shí)現(xiàn)快速的紗線質(zhì)量預(yù)測,始終是紡織領(lǐng)域的重要研究內(nèi)容之一。紗線質(zhì)量的預(yù)測是非常復(fù)雜且困難的,因?yàn)樗颂嗖淮_定因素。國內(nèi)外關(guān)于紗線質(zhì)量預(yù)測的方法主要包括數(shù)理統(tǒng)計方法、灰色理論方法和機(jī)器學(xué)習(xí)方法。從20世紀(jì)90年代開始,研究人員嘗試使用神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等機(jī)器學(xué)習(xí)算法進(jìn)行紗線質(zhì)量預(yù)測,其中基于神經(jīng)網(wǎng)絡(luò)算法及其優(yōu)化方法的紗線質(zhì)量預(yù)測得到較多的研究[1-3]。
然而,目前尚未有紗線質(zhì)量預(yù)測相關(guān)研究成果實(shí)現(xiàn)實(shí)踐應(yīng)用,這主要是因?yàn)橛袃蓚€比較突出的問題尚待解決。首先,預(yù)測模型的泛化能力具有局限性,這一點(diǎn)極大地限制了預(yù)測模型在實(shí)踐中的適用性。泛化能力是指機(jī)器學(xué)習(xí)算法對新鮮樣本的適應(yīng)能力,即對于具有相同分布規(guī)律訓(xùn)練集以外的數(shù)據(jù),預(yù)測模型也能做出正確判斷。其次,市場需求越來越向小批量多品種的狀況轉(zhuǎn)變,且目前紡紗企業(yè)的數(shù)字化程度較低,因此在多數(shù)情況下,一個產(chǎn)品僅包含有限的小樣本數(shù)據(jù)。而神經(jīng)網(wǎng)絡(luò)算法模型的本質(zhì)是對復(fù)雜映射的擬合,其精度與待擬合映射的復(fù)雜度密切相關(guān),嚴(yán)重依賴樣本品質(zhì)和樣本量,在小樣本學(xué)習(xí)中很難解決過擬合的問題。而紗線樣本兼具映射復(fù)雜性及小樣本的情況,使得基于神經(jīng)網(wǎng)絡(luò)算法的紗線質(zhì)量預(yù)測模型常出現(xiàn)預(yù)測精度不穩(wěn)定的問題[4-6]。
為改善上述問題,目前很多研究采用將神經(jīng)網(wǎng)絡(luò)算法和其他算法相結(jié)合的方法對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行優(yōu)化,對單一試驗(yàn)樣本的預(yù)測精度的提高取得一定效果[7-9]。但是,對預(yù)測模型面對不同樣本集時的泛化能力和預(yù)測穩(wěn)定性鮮有針對性研究。
本文針對當(dāng)前基于神經(jīng)網(wǎng)絡(luò)算法的小樣本紗線質(zhì)量預(yù)測模型存在的典型問題,運(yùn)用隨機(jī)森林算法建立紗線質(zhì)量預(yù)測模型,并將該模型與線性回歸算法模型和多層感知機(jī)(multi-layer perceptron, MLP)神經(jīng)網(wǎng)絡(luò)算法模型進(jìn)行對比,經(jīng)過驗(yàn)證,發(fā)現(xiàn)隨機(jī)森林算法在解決預(yù)測模型的泛化局限性和預(yù)測精度不穩(wěn)定等方面顯示出一定的優(yōu)勢。
隨機(jī)森林(random forest,RF)算法是2001年由Breiman[10]將Bagging集成學(xué)習(xí)理論與隨機(jī)子空間方法相結(jié)合提出的一種機(jī)器學(xué)習(xí)算法,是利用多棵決策樹對樣本進(jìn)行訓(xùn)練并預(yù)測的一種學(xué)習(xí)器,其模型框架如圖1所示。
圖1 隨機(jī)森林算法模型框架Fig.1 Model framework of random forest algorithm
從圖1可以看出,隨機(jī)森林算法模型框架的構(gòu)建過程主要由3個方面構(gòu)成,即訓(xùn)練集的生成、決策樹的構(gòu)建和算法的產(chǎn)生。若要構(gòu)建一個規(guī)模為N的隨機(jī)森林,就需要有N顆樹和N組訓(xùn)練集。在構(gòu)建過程中,隨機(jī)森林里有兩個隨機(jī)化:
(1)樣本Bagging。從原樣本集中通過bootstrvap自主采樣,有放回地隨機(jī)抽取N個與原樣本集同樣大小的訓(xùn)練樣本集,然后基于這個新創(chuàng)建的數(shù)據(jù)集來構(gòu)造決策樹。
(2)特征的隨機(jī)子空間。在對決策樹每個節(jié)點(diǎn)進(jìn)行分裂時,從全部M個特征中隨機(jī)抽取一個特征子集,然后從這個子集中選擇一個最優(yōu)分裂特征來建樹。在特征空間的不同子空間上訓(xùn)練各決策樹,以略微增加偏差為代價減少過擬合問題,從而使隨機(jī)森林能較好地容忍噪聲,并且具有較好的泛化性能,對異常噪聲具有較好的穩(wěn)健性。
在構(gòu)建每個決策樹時,隨機(jī)抽取訓(xùn)練樣本集和特征子集的過程都是獨(dú)立的,且總體都是一樣的,因此,{θn,n=1,2,…,N}是一個獨(dú)立同分布的隨機(jī)變量序列。由于各個決策樹的訓(xùn)練是相互獨(dú)立的,因此,通過并行處理來實(shí)現(xiàn)隨機(jī)森林的訓(xùn)練。
隨機(jī)森林算法理論決定了其優(yōu)缺點(diǎn)。隨機(jī)森林算法有諸多優(yōu)點(diǎn),如:可適用于特征很多的數(shù)據(jù),不需要降維,以及不需要做特征選擇;可以輸出特征的重要性排序,方便邏輯解釋;不容易過擬合,能較好地容忍噪聲,具有較好的泛化性能,對異常噪聲具有較好的穩(wěn)健性等[11-13]。隨機(jī)森林算法在用于大樣本時計算成本較大,訓(xùn)練和預(yù)測的速度略慢,一般使用多核處理器并行計算并增大內(nèi)存的方法緩解此問題;隨機(jī)森林算法在用于小樣本時幾乎不受此干擾,訓(xùn)練和預(yù)測速度都較快。
目前隨機(jī)森林算法在金融學(xué)、醫(yī)學(xué)、生物學(xué)等眾多領(lǐng)域已取得較好的應(yīng)用[14-15],但在紡織領(lǐng)域尚未見相關(guān)研究報道。
本文建立的用于小樣本紗線質(zhì)量預(yù)測的隨機(jī)森林算法模型,所用的編程語言為Python,算法基于scikit-learn庫實(shí)現(xiàn)。
本文引用文獻(xiàn)[1]中表1所示的數(shù)據(jù),共60條樣本數(shù)據(jù),將4個棉纖維質(zhì)量指標(biāo)作為特征因子(輸入因子),2個紗線質(zhì)量指標(biāo)作為輸出因子。
表1 紗線條干預(yù)測結(jié)果Table 1 Prediction results of yarn evenness
表2 紗線強(qiáng)度預(yù)測結(jié)果Table 2 Prediction results of yarn strength
模型預(yù)測精度的評價指標(biāo)包括:預(yù)測結(jié)果的決定系數(shù)(coefficient of determination,即Score值)、均方根誤差(root mean square error,RMSE)、絕對誤差平均值(mean absolute error,MAE)、絕對誤差百分比平均值(mean absolute percentage error,MAPE),計算公式如下:
(1)
(2)
(3)
(4)
本文通過交叉驗(yàn)證(cross validation,CV)來評估模型的泛化能力。交叉驗(yàn)證是在樣本量有限的情況下有效評估模型性能的一種方法。交叉驗(yàn)證有多種實(shí)現(xiàn)方法,本文選用K折交叉驗(yàn)證方法進(jìn)行模型評估。
K折交叉驗(yàn)證(Kfold cross validation)是將整個樣本數(shù)據(jù)集劃分為K個相等大小的部分,每個部分被稱為一個“折”(fold)。選其中1折用作驗(yàn)證集,其余K-1折用作訓(xùn)練集。重復(fù)K次,將所有數(shù)據(jù)都遍歷一次。模型的最終精度是通過取K次驗(yàn)證的平均精度來計算的。
K折交叉的取樣方式使得其訓(xùn)練集和驗(yàn)證集會受到樣本排列順序的影響,從而驗(yàn)證集中數(shù)據(jù)特征與訓(xùn)練集數(shù)據(jù)特征不同的概率大大增加,因此,當(dāng)遇到離群值或未知特征的數(shù)據(jù)(即與訓(xùn)練數(shù)據(jù)具有明顯不同特征的測試數(shù)據(jù))時,可在一定程度上模擬預(yù)測模型潛在的泛化能力。
采用網(wǎng)格搜索(grid search)的方法對scikit-learn庫的RandomForestRegressor回歸器進(jìn)行參數(shù)優(yōu)選,最終建立本文試驗(yàn)用隨機(jī)森林算法模型。
本文還建立了多層感知機(jī)MLP神經(jīng)網(wǎng)絡(luò)算法模型和線性回歸算法模型,用作以下試驗(yàn)中的對比模型。其中:MLP神經(jīng)網(wǎng)絡(luò)算法模型作為隨機(jī)森林算法模型的性能差異對比模型;線性回歸算法模型作為一個穩(wěn)固的對比基準(zhǔn)模型,因?yàn)槠洳幌衿渌枰{(diào)參的算法模型(包括神經(jīng)網(wǎng)絡(luò)算法模型、隨機(jī)森林算法模型等),模型性能不會受到不同參數(shù)選擇的影響。
常規(guī)預(yù)測試驗(yàn)所用的訓(xùn)練集和測試集是運(yùn)用scikit-learn庫中的train_test_split()函數(shù)從總樣本集中隨機(jī)抽樣得到的,而交叉驗(yàn)證中的訓(xùn)練集和測試集為固定分段得到的,在這里又被稱為固定樣本集。
在常規(guī)預(yù)測試驗(yàn)中,直接采用所建立的隨機(jī)森林算法模型、MLP神經(jīng)網(wǎng)絡(luò)算法模型和線性回歸算法模型進(jìn)行預(yù)測試驗(yàn)。在交叉驗(yàn)證試驗(yàn)中,應(yīng)用scikit-learn庫中的cross_val_score()函數(shù)對各算法模型進(jìn)行驗(yàn)證。
將train_test_split()函數(shù)的test_size參數(shù)設(shè)置為0.20,即從樣本集中隨機(jī)抽取48個樣本作為訓(xùn)練集、12個樣本作為測試集,分別用3種算法模型進(jìn)行紗線條干和強(qiáng)度的常規(guī)預(yù)測試驗(yàn),預(yù)測結(jié)果如表1和2所示。
從表1和2可以看出,3種模型的紗線條干和強(qiáng)度預(yù)測值與實(shí)測值之間的絕對誤差百分比平均值都小于1%,由此說明模型的精度較好,證明了本文所建3種預(yù)測模型的有效性。
3種算法模型常規(guī)預(yù)測結(jié)果對兩個輸出因子的總的Score值、MAE、RMSE如表3所示。從表3可以看出:隨機(jī)森林算法模型的Score值最高,MLP神經(jīng)網(wǎng)絡(luò)算法模型次之,線性回歸算法模型最低;相應(yīng)地,隨機(jī)森林算法模型的MAE和RMSE最小,MLP神經(jīng)網(wǎng)絡(luò)算法模型次之,線性回歸算法模型最高。由此表明,隨機(jī)森林算法模型的預(yù)測精度最高,MLP神經(jīng)網(wǎng)絡(luò)算法模型次之,線性回歸算法模型最低。
表3 3種算法模型常規(guī)預(yù)測的預(yù)測性能對比表
眾所周知,訓(xùn)練樣本量的大小會對模型的預(yù)測效果產(chǎn)生影響,尤其對于小樣本數(shù)據(jù)集而言,這個問題更加凸顯。本文采用不同test_size參數(shù)進(jìn)行多次常規(guī)預(yù)測試驗(yàn),以檢驗(yàn)各算法模型的預(yù)測性能對樣本量的敏感性。其中,test_size參數(shù)取值范圍為0.10~0.50,步長為0.05??倶颖玖繛?0不變,則訓(xùn)練樣本量和測試樣本量隨test_size參數(shù)取值相應(yīng)變化。3種算法模型在不同的test_size參數(shù)設(shè)置時的預(yù)測結(jié)果Score值、MAE、RMSE如圖2所示。
由圖2(a)可知,隨著test_size參數(shù)的增大,訓(xùn)練樣本量減少,各算法模型的預(yù)測結(jié)果的Score值總體呈下降趨勢,符合訓(xùn)練樣本量減少對預(yù)測性能影響的常規(guī)經(jīng)驗(yàn)。其中,當(dāng)test_size 參數(shù)大于 0.35后,即訓(xùn)練樣本小于39個后,3個算法模型的訓(xùn)練精度都開始明顯下降??梢哉J(rèn)為,本試驗(yàn)中的最小有效訓(xùn)練樣本量為39個。需要注意的是,因?yàn)閷?shí)踐中各種不同數(shù)據(jù)集具有不同的數(shù)據(jù)特征,因此沒有關(guān)于不同算法模型對訓(xùn)練樣本量的敏感程度的普適性的定量經(jīng)驗(yàn),對于小樣本數(shù)據(jù)集,尤其如此。
從圖2(a)中還可以看出,當(dāng)test_size參數(shù)設(shè)置過小時,各算法模型的預(yù)測效果也會受到一定程度的影響。如本試驗(yàn)中當(dāng)test_size參數(shù)等于0.10時,3種算法模型的預(yù)測結(jié)果的Score值都不是各自曲線的最高點(diǎn)。當(dāng)test_size參數(shù)等于0.15時,MLP神經(jīng)網(wǎng)絡(luò)算法模型的預(yù)測結(jié)果的Score值甚至明顯降低。這主要是因?yàn)獒槍潭颖炯?當(dāng)訓(xùn)練樣本量增大時,意味著測試樣本量減小。當(dāng)測試樣本量過小時,如果測試樣本中存在離群值,則離群值對整個測試集的平均預(yù)測精度的影響會凸顯出來。當(dāng)test_size參數(shù)設(shè)置為0.20時,線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型的預(yù)測結(jié)果的Score值基本處于最高水平,隨機(jī)森林算法模型的預(yù)測結(jié)果的Score值雖然不是其曲線中最高點(diǎn),但是也處在一個相對高位。由此可見,在面對一個固定樣本量的數(shù)據(jù)集時,訓(xùn)練樣本和測試樣本的分配比例會對預(yù)測精度造成影響。
從圖2可以看出,在各種test_size參數(shù)下,3種算法模型中隨機(jī)森林算法模型預(yù)測結(jié)果的Score值都是最高的,MAE和RMSE都是最低的。MLP神經(jīng)網(wǎng)絡(luò)算法模型預(yù)測結(jié)果的Score值隨訓(xùn)練樣本量變化波動最大,且多數(shù)情況下其MAE和RMSE最高。由此表明,MLP神經(jīng)網(wǎng)絡(luò)算法對樣本量的敏感度最大,在面對小樣本量時其預(yù)測精度穩(wěn)定性的問題最突出,而隨機(jī)森林算法模型在不同樣本量情況下的預(yù)測準(zhǔn)確性和穩(wěn)定性都是最好的。
對3種算法模型分別采用3折、4折、5折、6折交叉驗(yàn)證,以檢驗(yàn)?zāi)P偷姆夯芰?。?dāng)test_size參數(shù)等于0.20時,3種算法模型的常規(guī)預(yù)測的Score值與各折數(shù)的K折交叉驗(yàn)證的Score值的對比如圖3所示。
圖3 3種算法模型的常規(guī)預(yù)測與K折交叉驗(yàn)證的Score值Fig.3 Score values of conventional prediction and K fold cross-validation of three algorithm models
從圖3可以看出,常規(guī)預(yù)測的Score值明顯大于K折交叉驗(yàn)證的Score值。因?yàn)槌R?guī)預(yù)測通過隨機(jī)抽樣,增加了訓(xùn)練樣本的豐富性,使得各算法模型對本文所用樣本集呈現(xiàn)出更高的預(yù)測水平,而K折交叉驗(yàn)證按順序逐折(fold)取樣因此受到樣本排列順序的影響。K折交叉驗(yàn)證更接近于模擬各算法模型在紗線實(shí)際生產(chǎn)中應(yīng)用時面對新樣本集時可能呈現(xiàn)的預(yù)測性能,更能考察算法模型的泛化能力。
在圖3中,各算法模型的K折交叉驗(yàn)證的Score值幾乎均隨著折數(shù)增加而降低。因?yàn)殡S著折數(shù)增加,每次驗(yàn)證時的測試樣本量減少,當(dāng)遇到離群點(diǎn)時,離群點(diǎn)在測試樣本中的占比增大,從而影響預(yù)測結(jié)果的平均精度。
對比圖3中常規(guī)預(yù)測和不同K折交叉驗(yàn)證的預(yù)測結(jié)果的Score值可發(fā)現(xiàn),K折交叉驗(yàn)證時線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型的預(yù)測性能大幅下降,但隨機(jī)森林模型的預(yù)測性能下降較小。以3折交叉驗(yàn)證為例,相對于常規(guī)預(yù)測,線性回歸算法模型、MLP神經(jīng)網(wǎng)絡(luò)算法模型、隨機(jī)森林算法模型的Score值分別下降了24.3%、23.9%、4.9%。由此可見,對固定樣本集展現(xiàn)了良好預(yù)測性能的算法模型,如果其泛化能力弱,則在面對實(shí)際生產(chǎn)中的新數(shù)據(jù)時可能會出現(xiàn)預(yù)測性能大幅降低的情況。其原因是泛化能力弱的算法模型會過于擬合所選的固定樣本集中訓(xùn)練數(shù)據(jù)的細(xì)節(jié),從而造成過擬合。
由此可見,在進(jìn)行不同算法模型的性能對比以及對某一算法模型的不同參數(shù)進(jìn)行擇優(yōu)時,應(yīng)盡量采用動態(tài)數(shù)據(jù)集,如果使用固定數(shù)據(jù)集,不能僅采用單次常規(guī)預(yù)測的Score值作為評判依據(jù),還應(yīng)同時采用K折交叉驗(yàn)證的Score值作為評判依據(jù),以便對算法模型和所選參數(shù)做出更全面的評價。
在圖3中的各種折數(shù)的交叉驗(yàn)證中,隨機(jī)森林算法模型的Score值均明顯大于其他兩種算法模型,并且隨著折數(shù)增加,隨機(jī)森林算法模型的Score值下降幅度最小。對比Score值變化差異最大的3折和6折交叉驗(yàn)證發(fā)現(xiàn),線性回歸算法模型、MLP神經(jīng)網(wǎng)絡(luò)算法模型、隨機(jī)森林算法模型的Score值分別下降了27.2%,29.7%,13.7%。
由此可見,在本試驗(yàn)中,隨機(jī)森林算法模型的泛化能力和預(yù)測穩(wěn)定性均優(yōu)于線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型。
3種算法模型分別在3折、4折、5折、6折交叉驗(yàn)證中的每一折的預(yù)測Score值如圖4所示。從圖4可以看出,在各種折數(shù)的交叉驗(yàn)證中,3種算法模型的Score值曲線的波動趨勢大體吻合,證明Score值曲線中的大幅波動主要是由樣本本身的變化引起的,而不是由算法引起的。
圖4 3種算法模型的K折交叉驗(yàn)證中每一折的預(yù)測結(jié)果Score值曲線Fig.4 Score curves of each fold in K fold cross-validation of three algorithm models
在圖4中,幾乎在各種折數(shù)的K折交叉驗(yàn)證的每一折,隨機(jī)森林算法模型的預(yù)測結(jié)果的Score值均明顯占優(yōu)。在5折和6折交叉驗(yàn)證的最后一折,線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型的預(yù)測結(jié)果的Score值已經(jīng)接近0甚至小于0,隨機(jī)森林算法模型的預(yù)測結(jié)果的Score值仍能分別處于0.49和0.41的水平,再次說明隨機(jī)森林算法模型的泛化能力更強(qiáng)、穩(wěn)定性更好。
本文構(gòu)建了基于隨機(jī)森林算法的紗線質(zhì)量預(yù)測模型,對小樣本紗線數(shù)據(jù)集進(jìn)行預(yù)測試驗(yàn),將隨機(jī)森林算法模型與線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型進(jìn)行對比,得出以下結(jié)論:
(1)所建立的隨機(jī)森林算法模型、線性回歸算法模型和MLP神經(jīng)網(wǎng)絡(luò)算法模型,在常規(guī)隨機(jī)抽樣預(yù)測中的預(yù)測結(jié)果的MAPE均在1%以內(nèi),由此證實(shí)了3個模型的有效性。
(2)在各種不同訓(xùn)練樣本量的常規(guī)隨機(jī)抽樣試驗(yàn)中,隨機(jī)森林算法模型的預(yù)測結(jié)果相比其他兩種算法模型具有更高的Score值、更小的MAE值和RMSE值,前者預(yù)測精度更高。由此證明隨機(jī)森林算法模型對小樣本數(shù)據(jù)集的預(yù)測準(zhǔn)確度更好。
(3)在多種折數(shù)的K折交叉驗(yàn)證試驗(yàn)中以及在對常規(guī)隨機(jī)抽樣預(yù)測與按試樣排列順序逐折取樣的K折交叉驗(yàn)證試驗(yàn)的對比中,相比其他兩種算法模型,隨機(jī)森林算法模型的預(yù)測結(jié)果不僅呈現(xiàn)出更高的Score值,而且具有明顯更小的Score值波動范圍。由此證明隨機(jī)森林算法模型的泛化能力和預(yù)測穩(wěn)定性更好,其在生產(chǎn)實(shí)踐預(yù)測中具有良好的應(yīng)用潛力。