如果我理解正确的话,PCA 的原理很简单:
- 计算数据向量的协方差矩阵C。
- 求解 det( C - e***I) = 0,求矩阵 **C的特征值e。
- 计算矩阵C的特征向量(根据这些特征值)。
第一:这个描述正确吗?
第二:用于机器求解多项式方程 det( C - e***I) = 0 的任何算法?我知道这是一个一般数学问题(求 **n 次多项式的根)。
第三: C/C++中有没有简单的PCA实现
非常感谢。
您可能想查看 Gnu 科学图书馆 (gsl)。它提供特征值查找功能。请注意,查找特征值是一种迭代的数字运算;即它不准确,而且价格昂贵。我相信 gsl 使用所谓的 QR 算法。