喬龍 王宏 郝紅娟
(1.中華人民共和國濱州海關 山東 濱州 256603;2.濟南海關技術中心濱州實驗室)
海關“十四五”大數(shù)據(jù)應用規(guī)劃明確指出“建設智慧海關,打造數(shù)據(jù)驅(qū)動的業(yè)務科技一體化新模式,進一步提升海關工作智能化水平”[1]。濱州海關棉花實驗室依托機器學習中的線性回歸算法,對檢測數(shù)據(jù)進行分析,通過反饋結果及操作員抽檢相符率進行分析,有針對性地查漏補缺,及時改進和完善實驗室管理體系,確保檢測數(shù)據(jù)的公正性、準確性和科學性[2]。本文通過不同技術路徑,對試驗數(shù)據(jù)進行線性回歸分析,以期為相關人員提供參考。
線性回歸是利用數(shù)理統(tǒng)計中的回歸分析,確定2種或2種以上變量間相互依賴的定量關系的一種統(tǒng)計分析方法,運用十分廣泛。在統(tǒng)計學中,線性回歸(Linear Regression)是利用稱為線性回歸方程的最小平方函數(shù),對一個或多個自變量和因變量之間關系進行建模的一種回歸分析。各個數(shù)據(jù)點都沿著一條主軸來回波動的問題屬于回歸問題,其是一類預測連續(xù)值的問題,能夠滿足該要求的數(shù)學模型為回歸模型,線性模型是其中的一種。
線性模型是通過線性回歸分析技術,為給定的數(shù)據(jù)集中建立運算模型,構建代價函數(shù)(Loss Function),以優(yōu)化代價函數(shù)為目標,確定模型參數(shù),即用一個最接近真實結果的數(shù)據(jù)模型,盡可能準確地以線性方式預測未來實際發(fā)生的數(shù)值或結果。
按照GB/T 20392—2006《HVI棉纖維物理性能試驗方法》和《HVI 1 000大容量纖維測試儀應用說明》,使用HVI 1 000大容量纖維測試儀,分別對樣品棉花進行馬克隆值檢測。
選取進口量相對較大的印度皮輥棉、美國鋸齒棉這2種軋工方式不同的棉花作為樣品。取10份印度棉花樣品(皮輥棉)和10份美國棉花樣品(鋸齒棉),待樣品開松至正常狀態(tài)后進行檢測;將樣品放置于溫度為(20±2)℃、相對濕度為(65±4)%的恒溫恒濕條件下,預調(diào)濕平衡24 h,再次進行檢測。
2種樣品的馬克隆值檢測結果詳見表1[3]。
表1 馬克隆值檢測結果
采用一元線性分析,利用已知預調(diào)濕前的馬克隆值,預測預調(diào)濕后的馬克隆值的平均變化。先分析皮輥棉樣品的檢測數(shù)據(jù),因變量Y=預調(diào)濕后的馬克隆值;自變量X=預調(diào)濕前的馬克隆值,則Y=aX+b,式中,a為斜率,b為截距,需要2組數(shù)據(jù)求解?,F(xiàn)在共有10組測量值,可通過最小二乘法求出其方程,計算出1組(a,b)使得Y'與對應的測量值Y的誤差最小,公式如下:
使用Excel軟件分析試驗數(shù)據(jù),畫出X和Y的散點圖,插入趨勢圖,并從趨勢線選項中選擇線性建模,勾選顯示方程及R2值,結果見圖1。
圖1 皮輥棉馬克隆值檢測
擬合優(yōu)度指回歸直線對觀測值的擬合程度,度量統(tǒng)計量為可決系數(shù)R2。R2的最大值為1,越接近1,說明回歸直線對觀測值的擬合程度越好;反之,則越差。圖中R2=0.746 5,接近于1,說明擬合程度較好。
以相同方法對鋸齒棉預調(diào)濕前后的試驗數(shù)據(jù)進行一元線性分析,結果見圖2。圖中R2=0.010 9,與1相差較大,說明對該組試驗數(shù)據(jù)進行線性分析的意義不大,但可以從其平均值差異進行數(shù)據(jù)分析,可以得到預調(diào)濕對鋸齒棉的馬克隆值檢測大概率無顯著影響的結論。
圖2 鋸齒棉馬克隆值檢測
Python誕生于20世紀90年代初,是一種解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設計語言,具有較強的可移植性、可擴展性,在圖像處理、數(shù)據(jù)統(tǒng)計和可視化表達等領域應用廣泛,在圖像處理方面常用的數(shù)據(jù)包有CV2、PIL、Pillow、Pillow-SIMD。最初其被設計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言功能的添加,被用于許多獨立大型項目的開發(fā)。
在Python程序中,通過pandas庫將棉花試驗數(shù)據(jù)導入,詳見圖3;通過numpy庫將已導入pandas中的數(shù)據(jù)轉(zhuǎn)換為線性分析需要的數(shù)據(jù)格式;通過sklearn庫建立線性回歸模型;通過matplotlib庫實現(xiàn)數(shù)據(jù)可視化效果,詳見圖4。需要注意的是,需要將pandas庫升級至0.24.0以上,才能正常運行程序中的to_numpy函數(shù)。由于鋸齒棉預調(diào)濕前后的試驗數(shù)據(jù)不適合進行線性分析,故用Python進行線性分析的示例中,只采用皮輥棉樣品的檢測數(shù)據(jù)。部分程序示例如下:
圖3
圖4
import pandas as pd
#讀取excel或者csv表格到pandas dataframe里面
file_name='D:\SampleData.xlsx'
data=pd.read_excel(file_name)
data.head()
import numpy as np
#把pandas dataframe變成正確格式的numpy數(shù)列
X=data.iloc[:,0].to_numpy().reshape(-1,1)
Y=data.iloc[:,1].to_numpy().reshape(-1,1)
from sklearn.linear_model import LinearRegression
#生成linear regression的模型
linear_regressor=LinearRegression()
linear_regressor.fit(X,Y)
Y_pred=linear_regressor.predict(X)
import matplotlib.pyplot as plt
#實現(xiàn)數(shù)據(jù)可視化
plt.scatter(X,Y)
plt.plot(X,Y_pred,color=’red’)
plt.show()
生成線性回歸模型后,可以利用該模型對已知預調(diào)濕前馬克隆值的皮輥棉樣品進行預測,預測其預調(diào)濕后的馬克隆值。假設預調(diào)濕前皮輥棉樣品的馬克隆值為4.35,利用predict函數(shù),可以預測出預調(diào)濕后的馬克隆值為4.243 774 52,將其與實驗室檢測結果進行比對,程序運行結果見圖5。
圖5
使用Excel進行線性分析的入門門檻較低,除Excel外無需安裝其他軟件,適合進行簡單地數(shù)據(jù)分析,但是存在3個缺點:可處理數(shù)據(jù)的上限較低,Excel 2003的上限僅有65 536行,Excel 2007的上限也僅有1 048 576行;基礎數(shù)據(jù)規(guī)范性較差,Excel單元格的格式設置靈活,不利于數(shù)據(jù)匯總加工;在Excel中運用線性分析對結果進行預測,需要使用LINEST函數(shù),該函數(shù)是數(shù)組函數(shù),使用方式與普通Excel函數(shù)不同,需要專業(yè)知識才能正確操作。
Python適用于大量數(shù)據(jù)的分析,數(shù)據(jù)處理上限和計算速度都高于Excel,通過編程可以一次性完成統(tǒng)計分析的前期工作,但是海關內(nèi)部使用Python存在2個缺點:性能受限,大數(shù)據(jù)處理需要win 7以上操作系統(tǒng),內(nèi)存8G以上,現(xiàn)階段海關內(nèi)部大部分的電腦性能無法滿足此要求;Python具有大量的第三方庫,可以實現(xiàn)功能多樣化,但是海關電腦系統(tǒng)是內(nèi)外網(wǎng)物理隔離的,安裝第三方庫非常困難;Python及第三方庫存在兼容問題,Python 2于2000年發(fā)布,Python 3于2008年發(fā)布,不完全兼容Python 2,截至目前,Python最新版本已升級至3.9,用舊版編寫的程序可能無法運行,第三方庫也存在函數(shù)在某些版本下不兼容或運行報錯的問題。
本文根據(jù)線性回歸的數(shù)學模型,通過Excel和Python這2種技術手段,分別對2種軋工方式的棉花試樣,在調(diào)濕平衡前后的馬克隆值測試結果,進行線性回歸分析。通過實踐與實驗室聯(lián)合驗證,取得了良好的應用效果,未來將繼續(xù)開發(fā)棉花實驗室檢測數(shù)據(jù)的分析潛力,不斷優(yōu)化數(shù)據(jù)分析模型,提高數(shù)據(jù)分析在改善實驗室管理方面的重要作用。