sparkMLlib PCA降维后的数据与原来的数据不一样了,怎么使用sparkMLlib PCA降维后得到数据?

原始数据矩阵如下
// 原始数据
val arr = Array(
Vectors.dense(4.0,1.0, 4.0, 5.0),
Vectors.dense(2.0,3.0, 4.0, 5.0),
Vectors.dense(4.0,0.0, 6.0, 7.0))
降维后的数据如下:
[-5.061524965038313,2.6731387750445608]
[-7.489827262491891,4.4347709591799624]
[-2.9078143281202276,4.506586481532503]

spark PCA处理后的数据代表什么意思,和原来的数据不一样,怎么利用这个数据,比如我想对它做线性回归?

1个回答

PCA(Principal Components Analysis),翻译成主成分分析,它将多维度数据压缩,保留最主要的信息维度,去掉那些不重要的,这就是PCA降维。注意:降维后的特征数据与原特征数据没有业务含义上的联系了,它是由一个高维空间投影到一个低维空间,里面的数据被投影转换到另一个维度上了,因此具体数值已经没有了原先的业务含义。举个例子,上述24维度包括本日收入、耗币数量、广场客流等,压缩成12个维度后就没有对应的12个业务概念了,这么做只是为了存留最主要的信息从而便于后续更有效的处理和分析数据。
PCA具体执行过程如下:
标准化原始维度数据(实质只需要减均值即可,不必标准化方差);
计算出多维特征的协方差矩阵,从而得到矩阵的特征值和特征向量;
将特征值从大到小排序,选取前k个主成分,找到其对应的k个特征向量;
将原始维度数据投影到选取的k个特征向量上,原始数据特征的维度就变成了k维;
可以用这k维数据代表原始大维度的数据,进行后续数据处理分析。

引用:https://zhuanlan.zhihu.com/p/37495710

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐