劉智玉,陳南梁,汪 軍,b
(東華大學 a.紡織學院, b.紡織面料技術教育部重點實驗室, 上海 201620)
在紡織產業鏈中,紗線生產既是源頭也是關鍵環節之一,其對后道加工的成本和效率以及最終紡織品的內在質量都有較大影響。因此,如何應用新技術實現快速的紗線質量預測,始終是紡織領域的重要研究內容之一。紗線質量的預測是非常復雜且困難的,因為它包含了太多不確定因素。國內外關于紗線質量預測的方法主要包括數理統計方法、灰色理論方法和機器學習方法。從20世紀90年代開始,研究人員嘗試使用神經網絡、支持向量機等機器學習算法進行紗線質量預測,其中基于神經網絡算法及其優化方法的紗線質量預測得到較多的研究[1-3]。
然而,目前尚未有紗線質量預測相關研究成果實現實踐應用,這主要是因為有兩個比較突出的問題尚待解決。首先,預測模型的泛化能力具有局限性,這一點極大地限制了預測模型在實踐中的適用性。泛化能力是指機器學習算法對新鮮樣本的適應能力,即對于具有相同分布規律訓練集以外的數據,預測模型也能做出正確判斷。其次,市場需求越來越向小批量多品種的狀況轉變,且目前紡紗企業的數字化程度較低,因此在多數情況下,一個產品僅包含有限的小樣本數據。而神經網絡算法模型的本質是對復雜映射的擬合,其精度與待擬合映射的復雜度密切相關,嚴重依賴樣本品質和樣本量,在小樣本學習中很難解決過擬合的問題。而紗線樣本兼具映射復雜性及小樣本的情況,使得基于神經網絡算法的紗線質量預測模型常出現預測精度不穩定的問題[4-6]。
為改善上述問題,目前很多研究采用將神經網絡算法和其他算法相結合的方法對神經網絡算法進行優化,對單一試驗樣本的預測精度的提高取得一定效果[7-9]。但是,對預測模型面對不同樣本集時的泛化能力和預測穩定性鮮有針對性研究。
本文針對當前基于神經網絡算法的小樣本紗線質量預測模型存在的典型問題,運用隨機森林算法建立紗線質量預測模型,并將該模型與線性回歸算法模型和多層感知機(multi-layer perceptron, MLP)神經網絡算法模型進行對比,經過驗證,發現隨機森林算法在解決預測模型的泛化局限性和預測精度不穩定等方面顯示出一定的優勢。
隨機森林(random forest,RF)算法是2001年由Breiman[10]將Bagging集成學習理論與隨機子空間方法相結合提出的一種機器學習算法,是利用多棵決策樹對樣本進行訓練并預測的一種學習器,其模型框架如圖1所示。

圖1 隨機森林算法模型框架Fig.1 Model framework of random forest algorithm
從圖1可以看出,隨機森林算法模型框架的構建過程主要由3個方面構成,即訓練集的生成、決策樹的構建和算法的產生。若要構建一個規模為N的隨機森林,就需要有N顆樹和N組訓練集。在構建過程中,隨機森林里有兩個隨機化:
(1)樣本Bagging。從原樣本集中通過bootstrvap自主采樣,有放回地隨機抽取N個與原樣本集同樣大小的訓練樣本集,然后基于這個新創建的數據集來構造決策樹。
(2)特征的隨機子空間。在對決策樹每個節點進行分裂時,從全部M個特征中隨機抽取一個特征子集,然后從這個子集中選擇一個最優分裂特征來建樹。在特征空間的不同子空間上訓練各決策樹,以略微增加偏差為代價減少過擬合問題,從而使隨機森林能較好地容忍噪聲,并且具有較好的泛化性能,對異常噪聲具有較好的穩健性。
在構建每個決策樹時,隨機抽取訓練樣本集和特征子集的過程都是獨立的,且總體都是一樣的,因此,{θn,n=1,2,…,N}是一個獨立同分布的隨機變量序列。由于各個決策樹的訓練是相互獨立的,因此,通過并行處理來實現隨機森林的訓練。
隨機森林算法理論決定了其優缺點。隨機森林算法有諸多優點,如:可適用于特征很多的數據,不需要降維,以及不需要做特征選擇;可以輸出特征的重要性排序,方便邏輯解釋;不容易過擬合,能較好地容忍噪聲,具有較好的泛化性能,對異常噪聲具有較好的穩健性等[11-13]。隨機森林算法在用于大樣本時計算成本較大,訓練和預測的速度略慢,一般使用多核處理器并行計算并增大內存的方法緩解此問題;隨機森林算法在用于小樣本時幾乎不受此干擾,訓練和預測速度都較快。
目前隨機森林算法在金融學、醫學、生物學等眾多領域已取得較好的應用[14-15],但在紡織領域尚未見相關研究報道。
本文建立的用于小樣本紗線質量預測的隨機森林算法模型,所用的編程語言為Python,算法基于scikit-learn庫實現。
本文引用文獻[1]中表1所示的數據,共60條樣本數據,將4個棉纖維質量指標作為特征因子(輸入因子),2個紗線質量指標作為輸出因子。

表1 紗線條干預測結果Table 1 Prediction results of yarn evenness

表2 紗線強度預測結果Table 2 Prediction results of yarn strength
模型預測精度的評價指標包括:預測結果的決定系數(coefficient of determination,即Score值)、均方根誤差(root mean square error,RMSE)、絕對誤差平均值(mean absolute error,MAE)、絕對誤差百分比平均值(mean absolute percentage error,MAPE),計算公式如下:

(1)
(2)
(3)
(4)

本文通過交叉驗證(cross validation,CV)來評估模型的泛化能力。交叉驗證是在樣本量有限的情況下有效評估模型性能的一種方法。交叉驗證有多種實現方法,本文選用K折交叉驗證方法進行模型評估。
K折交叉驗證(Kfold cross validation)是將整個樣本數據集劃分為K個相等大小的部分,每個部分被稱為一個“折”(fold)。選其中1折用作驗證集,其余K-1折用作訓練集。重復K次,將所有數據都遍歷一次。模型的最終精度是通過取K次驗證的平均精度來計算的。
K折交叉的取樣方式使得其訓練集和驗證集會受到樣本排列順序的影響,從而驗證集中數據特征與訓練集數據特征不同的概率大大增加,因此,當遇到離群值或未知特征的數據(即與訓練數據具有明顯不同特征的測試數據)時,可在一定程度上模擬預測模型潛在的泛化能力。
采用網格搜索(grid search)的方法對scikit-learn庫的RandomForestRegressor回歸器進行參數優選,最終建立本文試驗用隨機森林算法模型。
本文還建立了多層感知機MLP神經網絡算法模型和線性回歸算法模型,用作以下試驗中的對比模型。其中:MLP神經網絡算法模型作為隨機森林算法模型的性能差異對比模型;線性回歸算法模型作為一個穩固的對比基準模型,因為其不像其他需要調參的算法模型(包括神經網絡算法模型、隨機森林算法模型等),模型性能不會受到不同參數選擇的影響。
常規預測試驗所用的訓練集和測試集是運用scikit-learn庫中的train_test_split()函數從總樣本集中隨機抽樣得到的,而交叉驗證中的訓練集和測試集為固定分段得到的,在這里又被稱為固定樣本集。
在常規預測試驗中,直接采用所建立的隨機森林算法模型、MLP神經網絡算法模型和線性回歸算法模型進行預測試驗。在交叉驗證試驗中,應用scikit-learn庫中的cross_val_score()函數對各算法模型進行驗證。
將train_test_split()函數的test_size參數設置為0.20,即從樣本集中隨機抽取48個樣本作為訓練集、12個樣本作為測試集,分別用3種算法模型進行紗線條干和強度的常規預測試驗,預測結果如表1和2所示。
從表1和2可以看出,3種模型的紗線條干和強度預測值與實測值之間的絕對誤差百分比平均值都小于1%,由此說明模型的精度較好,證明了本文所建3種預測模型的有效性。
3種算法模型常規預測結果對兩個輸出因子的總的Score值、MAE、RMSE如表3所示。從表3可以看出:隨機森林算法模型的Score值最高,MLP神經網絡算法模型次之,線性回歸算法模型最低;相應地,隨機森林算法模型的MAE和RMSE最小,MLP神經網絡算法模型次之,線性回歸算法模型最高。由此表明,隨機森林算法模型的預測精度最高,MLP神經網絡算法模型次之,線性回歸算法模型最低。

表3 3種算法模型常規預測的預測性能對比表
眾所周知,訓練樣本量的大小會對模型的預測效果產生影響,尤其對于小樣本數據集而言,這個問題更加凸顯。本文采用不同test_size參數進行多次常規預測試驗,以檢驗各算法模型的預測性能對樣本量的敏感性。其中,test_size參數取值范圍為0.10~0.50,步長為0.05。總樣本量為60不變,則訓練樣本量和測試樣本量隨test_size參數取值相應變化。3種算法模型在不同的test_size參數設置時的預測結果Score值、MAE、RMSE如圖2所示。
由圖2(a)可知,隨著test_size參數的增大,訓練樣本量減少,各算法模型的預測結果的Score值總體呈下降趨勢,符合訓練樣本量減少對預測性能影響的常規經驗。其中,當test_size 參數大于 0.35后,即訓練樣本小于39個后,3個算法模型的訓練精度都開始明顯下降。可以認為,本試驗中的最小有效訓練樣本量為39個。需要注意的是,因為實踐中各種不同數據集具有不同的數據特征,因此沒有關于不同算法模型對訓練樣本量的敏感程度的普適性的定量經驗,對于小樣本數據集,尤其如此。
從圖2(a)中還可以看出,當test_size參數設置過小時,各算法模型的預測效果也會受到一定程度的影響。如本試驗中當test_size參數等于0.10時,3種算法模型的預測結果的Score值都不是各自曲線的最高點。當test_size參數等于0.15時,MLP神經網絡算法模型的預測結果的Score值甚至明顯降低。這主要是因為針對固定樣本集,當訓練樣本量增大時,意味著測試樣本量減小。當測試樣本量過小時,如果測試樣本中存在離群值,則離群值對整個測試集的平均預測精度的影響會凸顯出來。當test_size參數設置為0.20時,線性回歸算法模型和MLP神經網絡算法模型的預測結果的Score值基本處于最高水平,隨機森林算法模型的預測結果的Score值雖然不是其曲線中最高點,但是也處在一個相對高位。由此可見,在面對一個固定樣本量的數據集時,訓練樣本和測試樣本的分配比例會對預測精度造成影響。
從圖2可以看出,在各種test_size參數下,3種算法模型中隨機森林算法模型預測結果的Score值都是最高的,MAE和RMSE都是最低的。MLP神經網絡算法模型預測結果的Score值隨訓練樣本量變化波動最大,且多數情況下其MAE和RMSE最高。由此表明,MLP神經網絡算法對樣本量的敏感度最大,在面對小樣本量時其預測精度穩定性的問題最突出,而隨機森林算法模型在不同樣本量情況下的預測準確性和穩定性都是最好的。
對3種算法模型分別采用3折、4折、5折、6折交叉驗證,以檢驗模型的泛化能力。當test_size參數等于0.20時,3種算法模型的常規預測的Score值與各折數的K折交叉驗證的Score值的對比如圖3所示。

圖3 3種算法模型的常規預測與K折交叉驗證的Score值Fig.3 Score values of conventional prediction and K fold cross-validation of three algorithm models
從圖3可以看出,常規預測的Score值明顯大于K折交叉驗證的Score值。因為常規預測通過隨機抽樣,增加了訓練樣本的豐富性,使得各算法模型對本文所用樣本集呈現出更高的預測水平,而K折交叉驗證按順序逐折(fold)取樣因此受到樣本排列順序的影響。K折交叉驗證更接近于模擬各算法模型在紗線實際生產中應用時面對新樣本集時可能呈現的預測性能,更能考察算法模型的泛化能力。
在圖3中,各算法模型的K折交叉驗證的Score值幾乎均隨著折數增加而降低。因為隨著折數增加,每次驗證時的測試樣本量減少,當遇到離群點時,離群點在測試樣本中的占比增大,從而影響預測結果的平均精度。
對比圖3中常規預測和不同K折交叉驗證的預測結果的Score值可發現,K折交叉驗證時線性回歸算法模型和MLP神經網絡算法模型的預測性能大幅下降,但隨機森林模型的預測性能下降較小。以3折交叉驗證為例,相對于常規預測,線性回歸算法模型、MLP神經網絡算法模型、隨機森林算法模型的Score值分別下降了24.3%、23.9%、4.9%。由此可見,對固定樣本集展現了良好預測性能的算法模型,如果其泛化能力弱,則在面對實際生產中的新數據時可能會出現預測性能大幅降低的情況。其原因是泛化能力弱的算法模型會過于擬合所選的固定樣本集中訓練數據的細節,從而造成過擬合。
由此可見,在進行不同算法模型的性能對比以及對某一算法模型的不同參數進行擇優時,應盡量采用動態數據集,如果使用固定數據集,不能僅采用單次常規預測的Score值作為評判依據,還應同時采用K折交叉驗證的Score值作為評判依據,以便對算法模型和所選參數做出更全面的評價。
在圖3中的各種折數的交叉驗證中,隨機森林算法模型的Score值均明顯大于其他兩種算法模型,并且隨著折數增加,隨機森林算法模型的Score值下降幅度最小。對比Score值變化差異最大的3折和6折交叉驗證發現,線性回歸算法模型、MLP神經網絡算法模型、隨機森林算法模型的Score值分別下降了27.2%,29.7%,13.7%。
由此可見,在本試驗中,隨機森林算法模型的泛化能力和預測穩定性均優于線性回歸算法模型和MLP神經網絡算法模型。
3種算法模型分別在3折、4折、5折、6折交叉驗證中的每一折的預測Score值如圖4所示。從圖4可以看出,在各種折數的交叉驗證中,3種算法模型的Score值曲線的波動趨勢大體吻合,證明Score值曲線中的大幅波動主要是由樣本本身的變化引起的,而不是由算法引起的。


圖4 3種算法模型的K折交叉驗證中每一折的預測結果Score值曲線Fig.4 Score curves of each fold in K fold cross-validation of three algorithm models
在圖4中,幾乎在各種折數的K折交叉驗證的每一折,隨機森林算法模型的預測結果的Score值均明顯占優。在5折和6折交叉驗證的最后一折,線性回歸算法模型和MLP神經網絡算法模型的預測結果的Score值已經接近0甚至小于0,隨機森林算法模型的預測結果的Score值仍能分別處于0.49和0.41的水平,再次說明隨機森林算法模型的泛化能力更強、穩定性更好。
本文構建了基于隨機森林算法的紗線質量預測模型,對小樣本紗線數據集進行預測試驗,將隨機森林算法模型與線性回歸算法模型和MLP神經網絡算法模型進行對比,得出以下結論:
(1)所建立的隨機森林算法模型、線性回歸算法模型和MLP神經網絡算法模型,在常規隨機抽樣預測中的預測結果的MAPE均在1%以內,由此證實了3個模型的有效性。
(2)在各種不同訓練樣本量的常規隨機抽樣試驗中,隨機森林算法模型的預測結果相比其他兩種算法模型具有更高的Score值、更小的MAE值和RMSE值,前者預測精度更高。由此證明隨機森林算法模型對小樣本數據集的預測準確度更好。
(3)在多種折數的K折交叉驗證試驗中以及在對常規隨機抽樣預測與按試樣排列順序逐折取樣的K折交叉驗證試驗的對比中,相比其他兩種算法模型,隨機森林算法模型的預測結果不僅呈現出更高的Score值,而且具有明顯更小的Score值波動范圍。由此證明隨機森林算法模型的泛化能力和預測穩定性更好,其在生產實踐預測中具有良好的應用潛力。