基本步骤:
- 对数据进行归一化处理
xi = xi-1/m(sum(xi))
- 计算归一化后的数据集的协方差矩阵
x * x.T
- 计算协方差矩阵的
特征值
和特征向量
- svd 非方阵,计算奇异值分解svd
- eig 计算方阵的本征值和本征向量
- 保留最重要的k个特征(通常k要小于n)
- 指定 k = d
- 结合开销较小的学习器(k近邻分类器)交叉验证选取较好的 k
- 选择一个阈值
- 前k个特征值之和 - 后面n-k个特征值之和 > 阈值,则选择这个k
- 前k个特征值之和 / n个特征值之和 > 阈值,则选择这个k
- 找出k个特征值对应的特征向量
- 将m * n的数据集 乘以 k个n维的特征向量的特征向量(n * k),得到最后降维的数据。
GitHub Rep:https://github.com/feishuoren/PCA/blob/main/pca_test.ipynb
参考:
网友评论