在我的 Lazarus/Free Pascal 应用程序中,我生成了一个大的多列数值矩阵。我想在此表上运行主成分分析(PCA),但似乎找不到任何包来执行此操作。
R 语言有一个导出PCA 函数的 .dll 库,但它返回一个“princomp”类的对象。我不确定我将如何从此类中提取相关信息(例如转换后的矩阵)以在 Lazarus/FPC 中使用。
看看 ALGLIB:
http://en.wikipedia.org/wiki/ALGLIB
http://www.alglib.net/download.php
我认为它有许多数值例程,包括奇异值分解和特征值分解。因此,如果它没有特殊的 PCA 例程,请记住 PCA 均值向量是所有数据向量的均值,而 PCA 向量是协方差矩阵的特征向量,对应的特征值是数据投影的方差在那些向量上。
R 中实际上有两个 PCA 函数:princomp 和 prcomp。第一个计算数据协方差矩阵的特征值,第二个执行奇异值分解。每个函数返回的详细信息(类“princomp”或“prcomp”的对象)在“值”部分下的函数帮助页面中进行了描述。通常,这些是带有负载的矩阵(即旋转矩阵)、主成分的标准偏差(即协方差/相关矩阵的特征值的平方根),如果需要,还包括旋转数据集。