spark中的online均值/方差统计

本文介绍了如何在Spark中进行在线统计,特别是均值和方差的计算。通过分布式统计方法,结合Wikipedia上的带权在线算法,实现样本合并与统计器的合并。在计算过程中,对非0样本部分进行均值和方差的处理,并在最后合并时考虑0样本的影响。此外,还涵盖了L2和L1范数以及其他统计项的计算。

1. 统计量

这个summarizer用于计算样本各维特征的均值,方差等常用统计量

class MultivariateOnlineSummarizer extends MultivariateStatisticalSummary with Serializable {
   
   

  private var n = 0
  //均值
  private var currMean: Array[Double] = _
  //用于方差统计
  private var currM2n: Array[Double] = _
  //平方和
  private var currM2: Array[Double] = _
  //L1范数
  private var currL1: Array[Double] = _
  //样本计数
  private var totalCnt: Long = 0
  //所有样本weight的和
  private var totalWeightSum: Double = 0.0
  //weight平方和,用于计算方差
  private var weightSquareSum: Double = 0.0
  //每维特征非0的权重和
  private var weightSum: Array[Double] = _
  //非0计数
  private var nnz: Array[Long] = _
  //最大值
  private var currMax: Array[Double] = _
  //最小值
  private var currMin: Array[Double] = _

2. online统计

这里的统计项,除了均值和方差,其他的直接计算即可,
Wikipedia给出了带权online统计算法,这里的算法支持分布式统计,各部分样本先合并,然后各个统计器再合并。样本统计

EN=EN1+wNNi=0wi(xEN1)(1)SN=SN1+wN(xEN1)(xEN)(2)

EN SN
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值