基于Fisher判别分析的分类模型研究

2018-09-20 05:53代雪珍卫军超常在斌
价值工程 2018年26期

代雪珍 卫军超 常在斌

摘要: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.