落生* 2019-02-21 10:39 采纳率: 0%
浏览 2482

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处理后的数据代表什么意思,和原来的数据不一样,怎么利用这个数据,比如我想对它做线性回归?

  • 写回答

2条回答 默认 最新

  • 落生* 2019-02-21 14:51
    关注

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?