数据降维:线性判别分析与核主成分分析
1. 线性判别分析(LDA)
1.1 选择新特征子空间的线性判别式
线性判别分析(LDA)的剩余步骤与主成分分析(PCA)类似,但不是对协方差矩阵进行特征分解,而是求解矩阵$S_W^{-1}S_B$的广义特征值问题。以下是具体代码:
eigen_vals, eigen_vecs = np.linalg.eig(np.linalg.inv(S_W).dot(S_B))
计算特征对后,可按特征值降序排序:
eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:,i]) for i in range(len(eigen_vals))]
eigen_pairs = sorted(eigen_pairs, key=lambda k: k[0], reverse=True)
print('Eigenvalues in descending order:\n')
for eigen_val in eigen_pairs:
print(eigen_val[0])
输出的特征值降序排列如下:
349.617808906
172.76152219
3.78531345125e-14
2.11739844822e-14
1.51646188942e-14
1.51646188942e-14
1.3579
超级会员免费看
订阅专栏 解锁全文
57

被折叠的 条评论
为什么被折叠?



