当前位置: 首页 > news >正文

wordpress主题安装后图片找不到/武汉seo优化代理

wordpress主题安装后图片找不到,武汉seo优化代理,佛山网站建设锐艺a068,网站建设管理实训报告文章目录 1. 算法原理2. 类设计3. 完整代码实现4. 总结 本文采用了一种递推计算方法(Welford 算法)实时更新数据的均值、方差和标准差,其算法原理及实现如下。 1. 算法原理 ‌Welford算法‌是由B.P.Welford于1962年提出的,用于计…

文章目录

    • 1. 算法原理
    • 2. 类设计
    • 3. 完整代码实现
    • 4. 总结

本文采用了一种递推计算方法(Welford 算法)实时更新数据的均值、方差和标准差,其算法原理及实现如下。

1. 算法原理

‌Welford算法‌是由B.P.Welford于1962年提出的,用于计算样本均值和样本方差的算法。该算法通过一次遍历数据即可更新方差,减少了计算时间和舍入误差,具有更好的数值稳定性‌。

Welford算法通过以下递推公式计算样本均值和方差:
初始化:
M 1 = x 1 , S 1 = 0 M_1 = x_1, S_1 = 0 M1=x1,S1=0

对于接下来的样本值x_k,使用递推公式:

M k = M k − 1 + ( x k − M k − 1 ) / k M_k = M_{k-1} + (x_k - M_{k-1}) / k Mk=Mk1+(xkMk1)/k
S k = S k − 1 + ( x k − M k − 1 ) ( x k − M k ) S_k = S_{k-1} + (x_k - M_{k-1}) (x_k - M_k) Sk=Sk1+(xkMk1)(xkMk)

其中,2 ≤ k ≤ n,第k个样本方差估计为
s 2 = S k / ( k − 1 ) s^2 = S_k / (k - 1) s2=Sk/(k1)

Welford算法相比传统的Two-pass和Naive方法有以下优势:

  • 一次遍历‌
    传统方法需要遍历两次数据(Two-pass方法)或一次遍历但需要保存所有数据(Naive方法),而Welford算法只需一次遍历即可完成计算。
  • 数值稳定性‌
    传统方法在处理大数据集时容易产生舍入误差,而Welford算法通过增量方式更新,减少了误差积累。
  • 减少计算时间‌
    由于减少了遍历次数和计算步骤,Welford算法在计算效率和速度上更具优势。
  • 应用场景
    Welford算法广泛应用于各种需要在线计算统计量的场景,特别是在深度学习中,如PyTorch的LayerNorm实现中就采用了Welford算法来计算方差。LayerNorm在深度学习模型中用于归一化层输出,帮助模型更好地收敛和学习‌

2. 类设计

  • 成员变量

    • m_num:已处理的数据点数量。
    • m_mean:当前均值。
    • m_sum:递推计算的平方和(用于方差计算)。
  • 方法

    • update(double x):更新统计量。
    • currentMean(), variance(), stdDev():获取当前统计值。
    • reset():重置统计状态。

3. 完整代码实现

StatisticMethod.h

#pragma onceclass StatisticMethod 
{
public:StatisticMethod();~StatisticMethod();void update(double x);double currentMean() const;double variance() const;double stdDev() const;void reset();private:int m_num;            // 数据点数量double m_mean;        // 当前均值double m_sum;         // 平方和
};

StatisticMethod.cpp

#include "stdafx.h"
#include <iostream>
#include <cmath>
#include "StatisticMethod.h"StatisticMethod::StatisticMethod() : m_num(0), m_mean(0.0), m_sum(0.0) 
{//使用参数列表初始化
}
StatisticMethod::~StatisticMethod()
{}
// 添加新数据点,更新统计量
void StatisticMethod::update(double x)
{m_num++;double delta = x - m_mean;m_mean += delta / m_num;    // 递推更新均值double delta2 = x - m_mean;m_sum += delta * delta2;    // 递推更新平方和
}// 获取当前均值
double StatisticMethod::currentMean() const
{return m_mean;
}// 计算样本方差(无偏估计)
double StatisticMethod::variance() const
{if (m_num < 2) return 0.0;    // 避免除以0return m_sum / (m_num - 1);
}// 计算标准差
double StatisticMethod::stdDev() const
{return std::sqrt(variance());
}// 重置统计量
void StatisticMethod::reset()
{m_num = 0;m_mean = 0.0;m_sum = 0.0;
}
int main()
{StatisticMethod stats;double data[10] = { 1.0, 2.0, 3.0, 1.5, 6.0, 8.0, 2.0, 6.0, 4.5, 1.0 };for (int i = 0; i < 10; i++){stats.update(data[i]);printf("新增数据: %f | 均值:%f 方差:%f, 标准差:%f\n", data[i], stats.currentMean(), stats.variance(), stats.stdDev());}system("pause");return 0;
}

在这里插入图片描述

4. 总结

  • 采用Welford 算法:避免传统方法(如先计算总和再求均值)的浮点数精度损失,保证了数值稳定性。
  • 处理边界条件:当数据量(n < 2)时,方差返回 0.0
  • 本文算法的优势:内存效率高,仅需要维护3个成员变量,适合实时或大数据场景。
  • 对比传统算法:避免存储全部数据,计算复杂度O(1)。
http://www.whsansanxincailiao.cn/news/30335448.html

相关文章:

  • 专业找人公司是真的吗/seo外包公司多吗
  • 电子商务网站建设阶段/广州seo搜索
  • 网站备案vpn注销/sem培训
  • 做网站博彩代理怎么找客源/制作一个网页的步骤
  • 网站建设万网/百度广告管家
  • 网站设计网/网上哪里可以免费打广告
  • 织梦网站建设/湖南长沙seo教育
  • 企业网站建设计什么科目/网站如何才能被百度收录
  • 曰本孕妇做爰网站/百度在西安的公司叫什么
  • 嘉定公司网站设计/如何建立网站平台
  • 全部免费网站软件/微信营销平台系统
  • 做电影免费ppt模板下载网站/数字营销包括哪六种方式
  • 垂直类门户网站/北京昨晚出什么大事
  • 企业电商网站商城建设/搜索引擎优化seo信息
  • 平板做网站服务器/长沙优化科技有限公司
  • 做网站用java 还是php/北京千锋教育培训机构怎么样
  • 电信网站空间/安卓优化大师手机版下载
  • 注册了网站怎么建设/seo sem是什么意思
  • 网站备案加链接代码/网络推广怎么赚钱
  • 加强网站建设会/个人网站设计欣赏
  • 南京市建委网站下载中心建设工程招标/种子搜索神器
  • 网站建设销售问答/媒介星软文平台官网
  • 河南郑州网站推广优化外包/百度中心
  • 高级服装定制网站/网站建设运营
  • 做兼职哪个招聘网站比较靠谱/店铺推广软文范例
  • 网页设计毕业论文致谢/海外网站推广优化专员
  • 上海网站建设定制公/友情链接查询
  • 咸阳网站建设电话/长沙网站优化公司
  • 网站 意义/最打动人心的广告语
  • wordpress 隐私设置/重庆seo入门教程