横向联邦学习 - PCA 简单实现

PCA 简介

PCA -- 主成分分析,是一种数据线性降维算法。广泛应用于数据降维领域,与核函数结合可以适用于非线性降维。

算法原理

在数据集中,找出一个方差最大的超平面,并将数据集映射到该超平面上,实现降维。
方差最大化是为了最大限度保留原始数据的分类特征。

算法步骤

  1. 计算数据集的均值和标准差: X = Σx/n,S = sqrt((Σ(x-X)2)/n)
  2. 将数据集减去均值后除以标准差(中心化处理 & 标准化处理): x -= X, z = x/S
  3. 计算数据集协方差矩阵: C = cov(z)
  4. 计算矩阵 C 的特征值 U 和特征向量 V: U, V = eig(C)
  5. 对 V 进行排序,按照其对应的 U 的大小从大到小排序
  6. 取出 V 中前 m 个向量组成一个矩阵 D, 转置得 T, T 即为最终降维模型

横向联邦学习 简介

联邦学习旨在保证在进行机器学习/深度学习训练中,数据不离本地,实现多数据源的模型训练。
横向联邦学习则是在各个数据源的数据特征相同,而数据集不同的情况下,实现联邦学习训练。

横向联邦 PCA 简单实现

假设参与训练的数据源有 t 个,聚合方由一个计算节点组成。

算法步骤

  1. 各个数据源在本地计算数据集的均值: Xi = Σx/n
  2. 各数据源将自己的均值 Xi 发送给聚合方,计算平均均值(可根据实际调整聚合方式): X = Σ(Xi)/t
  3. 将聚合结果 X 发送给各数据源
  4. 各数据源将数据集减去平均均值 X 后进行标准化处理(中心化处理 & 标准化处理): x -= X, z = x/S
  5. 计算数据集协方差矩阵: Ci = cov(z)
  6. 各数据源将自己的协方差矩阵 Ci 发送给聚合方,计算平均协方差矩阵(可根据实际调整聚合方式): C = Σ(Ci)/t
  7. 将聚合结果 C 发送给各数据源
  8. 各数据源计算矩阵 C 的特征值 U 和特征向量 V: U, V = eig(C)
  9. 对 V 进行排序,按照其对应的 U 的大小从大到小排序
  10. 取出 V 中前 m 个向量组成一个矩阵 D, 转置得 T, T 即为最终降维模型
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值