用线性判别分析法将下列数据降至二维 x1=(1,1,0) y1=0;x2=(0,1,1) y2=0; x3=(1,0,1) y3=1 ; x4=(0,1,0) y4=1
时间: 2024-06-20 21:03:22 浏览: 128
线性判别分析(LDA)是一种经典的降维算法,可以用于分类问题。对于这道题目,我们可以通过LDA将数据降到二维,以便更好地进行分类。
首先,我们需要计算每个类别的均值向量和总体均值向量。假设我们有两个类别,第一类别的数据点为x1, x2,第二类别的数据点为x3, x4。则有:
μ1 = (1+0)/2 * (1,1,0) + (0+1)/2 * (0,1,1) = (0.5, 1, 0.5)
μ2 = (1+0)/2 * (1,0,1) + (0+1)/2 * (0,1,0) = (0.5, 0.5, 0.5)
μ = (μ1 + μ2) / 2 = (0.5, 0.75, 0.5)
接下来,我们需要计算两个类别的散布矩阵Sw和总体散布矩阵Sb。其中Sw表示类内散布矩阵,Sb表示类间散布矩阵。它们的计算公式如下:
Sw = Σi=1->n(si - μi)(si - μi)T
Sb = Σi=1->k(ni * (μi - μ)(μi - μ)T)
其中,si表示第i个数据点,ni表示第i个类别的数据点个数,k表示类别数。
根据上述公式,我们可以得到:
Sw = (x1 - μ1)T + (x2 - μ1)(x2 - μ1)T + (x3 - μ2)(x3 - μ2)T + (x4 - μ2)(x4 - μ2)T
= [1,-1,0;-1,2,-1;0,-1,1]
Sb = 2 * (μ1 - μ)(μ1 - μ)T + 2 * (μ2 - μ)(μ2 - μ)T
= [0,0,0;0,1,-1;0,-1,1]
接下来,我们需要计算Sw的逆矩阵Sw-1,然后计算投影方向w。w可以通过以下公式计算得到:
w = Sw-1 * (μ1 - μ2)
将数据点xi投影到w上可以得到yi = wT * xi。由于我们要将数据降到二维,因此我们只需要保留yi的前两个分量即可。最终降维后的数据为:
y1 = wT * x1 = -0.71
y2 = wT * x2 = 0.71
y3 = wT * x3 = 0
y4 = wT * x4 = 0
因此,我们将数据降到了一维。为了降到二维,我们可以选择另一个垂直于w的向量作为第二个投影方向。常用的方法是选择Sw-1Sb的特征向量。具体来说,我们可以先计算Sw-1Sb的特征值和特征向量,然后选择最大的两个特征值所对应的特征向量作为第二个投影方向。
阅读全文