年福耿
(海軍士官學校,安徽 蚌埠233012)
隨著我國經濟快速發展,水資源短缺和水資源污染嚴重威脅到人們的生產和生活,對水資源進行快速正確的分類評價,已經成為評估水質污染程度的一項重要工作。常見的評價方法有綜合評價法、神經網絡法等,每種方法有各自優點和不足,傳統方法雖然能反映水質的部分情況,但難以描述評價因子與水質等級之間的復雜的關系,通用性較差;神經網絡有較強的處理能力,但是存在一些先天的缺陷,比如網絡結構難以確定,泛化能力差等,所以要在此基礎上分析研究出適用于水質的分類評價的模型及方案。
基于水質監測網站上的監測數據,數據集一共包涵376 條已分類監測數據,10 個變量,其中變量水質類別為因變量,部分數據如表1 所示。

表1 水質監測網站上的監測數據
因為監測數據中有的站點存在儀器故障現象,存在導致監測數據缺失,導致水質類別不準確,所以先對數據進行預處理,剔除無效數據. 通過刪除缺失數據處理,已分類監測數據還有322 條。
通過第一部刪除缺失數據后,數據中的站點情況、斷面屬性這兩個變量,對水質分類影響不大,所以進行剔除,斷面名稱及測量時間作為數據對應的屬性,水質類別的確定重點根據pH值、溶解氧、氨氮、高錳酸鹽指數四個屬性進行確定。
由于采集數據存在綱量的差異,為了提高后續實驗訓練的速度和預測的精度,對處理好的322 組訓練測試數據,用下面的公式進行歸一化處理,使得處理后的數據分布在[0,1]之間。

支持向量機(簡稱SVM)是基于統計學理論,以結構風險最小化原理為基礎的一種新型機器學習方法,SVM方法廣泛應用于統計分類、回歸預測等問題,可以較好逼近非線性復雜系統,能夠有效解決過學習、維數災難以及局部最小等問題,具有良好的泛化能力和分類性能,本文根據測試水樣物質成分的含量,利用SVM方法構建水質分類模型,對水質進行分類評價。


圖1 線性可分SVM 示意圖
為了使分類器的劃分超平面有最大間隔,并求解出模型中的參數,則有:

在很多情況下,樣本空間并不是線性可分的,對于樣本空間中的非線性分類情況,可以使用非線性變換的方法,將它轉化成某個維的特征空間中的線性分類問題,在高維特征空間中學習線性支持向量機。

圖2 非線性可分SVM 示意圖
假設給定數據所得圖像如圖2 左圖所示,顯然我們沒法用一條直線將“·”和“+”分開,如果用一個橢圓,將會得到很好的效果,我們希望將這個非線性分類問題變換為線性問題,通過變換后的線性問題的方法求解原來的非線性問題,我們可以將圖2 左圖的橢圓變換成右圖中的直線,將非線性分類問題變換為線性分類問題。
因此,對于線性不可分的樣本集,可以通過引入核函數把輸入向量映射到高維的特征空間中,從而使樣本在特征空間內線性可分,主要的非線性核函數如下:

通過預處理后的數據共322 組水質數據,挑選數據中的75%水質樣本數據作為訓練集,另外25%水質樣本數據作為測試集。
采用多次實驗對比線性SVM和非線SVM在水質分類上的準確率,實驗322 組數據,使用Python 編程進行實驗,主要代碼如圖3 所示。

圖3 線性SVM 和非線性SVM 主要程序
線性SVM 模型經過交叉驗證后,得到最佳懲罰系數C 為0.5,可得到SVM模型在訓練集上的平均準確率只有83.3%,在測試集上的準確率為81.5%. 可見基于線性SVM的水質分類效果一般。基于核函數的非線性SVM模型,經過交叉驗證后,得到最佳懲罰系數C 為5,最佳的核函數為徑向基核函數,模型在訓練數據集上的平均正確率高達95.8%,而且在測試集的預測準確率也接近93.8%. 可見基于核技術的非線性SVM表現效果較好。利用81 組測試集的預測值和真實值畫出數據的線性SVM和非線性SVM混淆矩陣,如圖4 所示。

圖4 線性SVM 和非線性SVM 模型的混淆矩陣
進行對比分析,可發現兩種模型在Ⅴ類水質上都分類的較好,線性SVM分類水質時會把Ⅰ、Ⅱ、Ⅲ、Ⅳ類的少部分數據分類錯誤,容易提高一檔或者降低一檔,非線性SVM分類水質時,準確率較高,但也存在會把Ⅰ、Ⅱ、Ⅲ、Ⅳ類的極少部分數據分類時會提高一檔或者降低一檔。通過實驗可以發現,線性SVM模型在水質分類上表現一般,不太適合水質分類;基于RBF 核函數的非線性SVM在水質分類研究上表現的較為理想,可進一步的推廣應用。