主要目的:判别一个个体所属类别
都选用用马氏距离
化简的证明:
称为判别函数,为判别系数。
证明:
当两个正态总体重合的时候误判概率是1/2
所以只有当两个总体的均值相差较大时,进行判别分析才有意义
#coding=utf-8
import numpy
x = numpy.array([[3,4],[5,6],[2,2],[8,4]])
print("x矩阵的维度:",x.ndim) # 二维向量组成的矩阵
xT = x.T
D = numpy.cov(xT)
invD = numpy.linalg.inv(D)
tp = x[0] - x[1]
print(numpy.sqrt(numpy.dot(numpy.dot(tp, invD), tp.T)))
证明:
建议第二类的时候也用这个判断这样就会错了!
先计算 最小ECM判别规则:?
给一个向量,样本值全投影在这个向量上!注意Fisher判别的数据是有标签的,但是主成分分析的数据是没有标签的!
则可以把x这个集合映射到a这个几何上
1、对每个类算均值
对于二分类问题:
而Fisher判别式要找一个最好的w,使投影后的点分的比较开
完全的分开:类与类均值相差大,且同类之间的散度(利用方差的概念定义散度)比较低
这变成一个多目标优化问题,多目标优化一般考虑变成单目标优化!
在Fisher中,利用一元方差检验:
则这个问题就变成 最大化:
求解最大值,其中参数使。则对求导:
总体计算思路:
特征值就是最后的解????
最后的解:?是最大的特征根,而解(向量)是特征值对应的单位特征向量!!!
当有两个判别函数的时候,会产生两个y值就相当于把原来的点投影到二维的平面上!
当有一个判别函数的时候,就相当于把原来的点投影到一条直线上!
投影后得到二维数据之后,用距离判别或者贝叶斯判别的方法将新样本进行分类即可!!
具体选用多少判别函数呢?
主要根据贡献率:
Fisher判别的思想是:投影(旋转坐标系?或者降维?),将k组p维数据投影到某个地方,使组与组之间的投影尽可能分开。
衡量之间组与组之间的分离程度:fisher采用了一元方差分析(F检验!!!)的思想。