均值、方差、平方差、均方差(标准差)的含义及区别如下:

  1. 均值(Mean):表示数据的中心位置或集中趋势,计算公式为 μ = ∑ i = 1 n x i n \mu = \frac{\sum_{i=1}^{n} x_i}{n} μ=ni=1nxi,其中 n n n 是数据的个数, x i x_i xi 是每个数据点。
  2. 方差(Variance):衡量数据与均值的离散程度,计算公式为 σ 2 = ∑ i = 1 n ( x i − μ ) 2 n \sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n} σ2=ni=1n(xiμ)2
  3. 平方差(Sum of Squared Differences):表示数据点与某个特定值(如均值)之间的差的平方的总和,计算公式为 ∑ i = 1 n ( x i − μ ) 2 \sum_{i=1}^{n} (x_i - \mu)^2 i=1n(xiμ)2
  4. 均方差(Standard Deviation):也称为标准差,是方差的平方根,表示数据的离散程度,计算公式为 σ = ∑ i = 1 n ( x i − μ ) 2 n \sigma = \sqrt{\frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}} σ=ni=1n(xiμ)2
  5. 协方差(Covariance):衡量两组数据之间相关性的指标,计算公式为 c o v ( X , Y ) = ∑ i = 1 n ( x i − μ x ) ( y i − μ y ) n − 1 cov(X, Y) = \frac{\sum_{i=1}^{n} (x_i - \mu_x)(y_i - \mu_y)}{n-1} cov(X,Y)=n1i=1n(xiμx)(yiμy),其中 X X X Y Y Y 是两组数据, μ x \mu_x μx μ y \mu_y μy 分别是 X X X Y Y Y 的均值。

在C++中,可以使用以下代码来计算这些统计量:

#include <iostream>
#include <vector>
#include <cmath>
#include <numeric>
#include <algorithm>

double mean(const std::vector<double>& data) {
    return std::accumulate(data.begin(), data.end(), 0.0) / data.size();
}

double variance(const std::vector<double>& data) {
    double mean_val = mean(data);
    return std::accumulate(data.begin(), data.end(), 0.0, 
        [mean_val](double sum, double val) { return sum + (val - mean_val) * (val - mean_val); }) / (data.size() - 1);
}

double sum_of_squared_differences(const std::vector<double>& data) {
    double mean_val = mean(data);
    double sum = 0.0;
    for (const auto& val : data) {
        sum += std::pow(val - mean_val, 2);
    }
    return sum;
}

double standard_deviation(const std::vector<double>& data) {
    return std::sqrt(variance(data));
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐