代雪珍 衛軍超 常在斌
摘要:Fisher判別分析是數據處理的常用技術。Fisher線性判別模型是找到一條合適的直線,使得數據點在投影到直線后可以被分離。本文通過對Fisher判別分析和高斯核函數的分類的研究,通過實際例子,在matlab中編程實現算法,分別畫圖比較了二維數據和三維數據的分類結果。
Abstract: Fisher discriminant analysis is a commonly used technique for data processing. The Fisher linear discriminant model is to find a suitable straight line so that the data points can be separated after being projected onto a straight line. In this paper, the classification of Fisher discriminant analysis and Gaussian kernel function is studied. Through practical examples, the algorithm is implemented in matlab, and the two-dimensional data and three-dimensional data are compared separately.
關鍵詞: Fisher準則;數據分類;matlab編程;高斯核函數
Key words: Fisher criterion;data classification;matlab programming;Gaussian kernel function
中圖分類號:TP313 文獻標識碼:A 文章編號:1006-4311(2018)26-0211-03
0 引言
分類是機器學習,統計學和模式識別領域的一個重要課題。給定一個數據集,其中包含n個屬性,m個類,考慮每個屬性的l個記錄以及相應的類,分類是確定屬性的新記錄屬于哪個類的過程。許多方法已被提出用于解決分類問題,如決策樹[1-2],貝葉斯網絡[3],神經網絡[4],支持向量機[5],Fisher法[6]等。
Fisher線性判別分析是把數據點映射到一條直線上, 使得在這條直線上數據點的投影分開的最好,因此,如何尋找最好的直線方向是解決問題的關鍵。Fisher 準則是通過最大化類間方差與類內方差的比率來獲得直線的方向.分類邊界通常是一個超平面,正交于直線L,可由直線L決定。此外,在復雜的數據集中,核函數也經常被用來獲得直線L。
1 基于fisher判別分析的分類模型
令X={x1,x2,…,xn}為屬性集,在分類中,給出了由 l 個示例記錄組成的數據集,稱為訓練集。每條記錄都包含要素屬性的值和相應的類。正整數 l 為數據集的大小,屬性的值是數值型的,并且由n維向量來描述,f=(f(x1),f(x2),…,f(xn)),屬性的范圍稱為特征空間。是類的所有可能值的集合,{C1,C2,…,Cm}用C表示,其中每個Ck,k=1,2,…,m,表示一個指定的類。
因此,第j個樣本記錄由對所有特征屬性和分類屬性的第j個觀察值組成,并且由
,j=1,2,…,l,表示其中 kj屬于 {1,2,…,m}。
分類的目的是建立一個由特征屬性表達的分類模型。當特征屬性的新記錄可用時,我們可以使用該模型來確定新記錄所屬的類。
我們知道Fisher線性判別模型是找到一條合適的直線,使得數據點在投影到直線后可以被分離,見圖1。可是,圖2中的數據不是線性可分的,所以Fisher線性判別式方法是無效的,幾何意義是投影點的分類,即投影到加權軸上的數據點。折線L是圖2中的分類邊界。該方法與Fisher線性判別方法相同。不同之處在于投影方向不垂直于投影軸,并且在給定方法中劃分邊界不再是超平面。
Fisher判別函數為:
其中Sb,Sμ是2n-1維空間中對應的類離散矩陣和類內離散矩陣:
利用Fisher方法,我們可以用μ=S(A1-A2)得到給定a,b的最優解。
把代入(1),Fisher準則函數的表達式表示為:
其中α=(α1,α2,…,αl),SB=(q1-q2)(q1-q2)T,
我們可以得到判別函數是
用Fisher函數解決多分類問題時,首先實現兩類Fisher分類,然后根據返回的類別與新的類別再做兩類Fisher分類,又能夠得到比較接近的類別,以此類推,直至所有的類別,最后得出未知樣本的類別。
2 應用
例1:二維數據記錄在圖2中給出,要求分成兩類。我們用兩種算法對它們進行分類。(在matlab軟件中編程求解):圖3顯示了應用Fisher線性判別函數分類的結果,圖4顯示了Fisher高斯核函數的分類結果(sigma=0.1925),從圖4中可以看出,高斯核函數的邊界具有一定的擬合性。
例 2:圖5中給出了要進行分類的二維數據點,要求分兩類。 用兩種算法對它們進行分類。 圖6顯示了應用費舍爾高斯核函數(sigma = 0.3331)的分類結果, 從數據中可以看出,折線為分類邊界比高斯核函數曲線更合理。
例3 圖7給出了要分類的三維數據記錄,要求分兩類。圖8顯示了Fisher方法(高斯內核)的分類結果。
3 總結
Fisher判別分析是數據處理的常用技術,從本文的應用示例中來看,給定的模型和算法是有效的和有用的。 接下來,我們將進一步研究和改進解決復雜數據分類問題的算法。
參考文獻:
[1]J. R. Quinlan. Induction of Decision Tree. Machine Learning, 1986(1):81-106.
[2]J. R.Quinlan. C4. 5: Programs for Machine Learning. [S. 1.]: Morgan Kaufman, 1993.
[3]T. Leonard, JSJ Hsu. Bayesian methods: an analysis for statisticians and interdisciplinary researchers.Cambridge University Press, 1999.
[4]S. I. Gallant. Perceptron-based learning algorithms. IEEE Transactions on Neural Networks, 1990, 1(2):179-191.
[5]C. Cortes, V. Vapnik. Support-vector networks. Machine Learning, 1995,20, 273-297.
[6]K. Jing, W. Liu, L. Cai, J. Chen. Sparse Representation andFisher Discrimination Based Method for Tumor Classification.Journal of Computational & Theoretical Nanoscience, 2016,13(1):343-348.