C/C++如何计算数值数据集的条纹性

C/C++ How to calculate the streakedness of numerical data sets?

本文关键字:数据集 计算 C++ 何计算      更新时间:2023-10-16

有人知道如何使用C/C++来计算数据的条纹度吗?条纹的定义是距离平均值有多少偏差(即运行一个数值数据条纹的平均值。感谢您的帮助。

[EDIT]来自我们公司的首席软件架构师,这是对统计度量的要求。有人能根据架构师对数据条纹的定义来定义一个统计公式吗?——2013年2月19日上午8:00

相等的数字是连续的。1,2,3,3,4,5连得7分。

病例A:1,2,3,4,5,6,7,8,9,10,11,12,13的最长连胜次数为13。

病例B:1,2,3,4,5,6,7,3,8,9,10,11,12的最长条纹为7,第二个较小的条纹为6。

病例C:1,2,3,4,5,6,7,1,2,3,4,56,6的最长条纹为7,第二个较小的条纹为6。

情况D:1,2,3,4,5,6,7,1,2,3,1,2,1的最长条纹为7,第二个较小条纹为3,第三个最小条纹为2

病例E:1,2,3,4,5,6,7,6,5,4,1,2,3的最长条纹为7,第二个较小的条纹为3。

病例F:1,2,3,4,5,6,7,6,5,4,3,2,1的条纹最长为7,没有较小的条纹。

案例A–F按"排序最多到排序最少"的顺序排列,但都具有相同长度的最长条纹。使用条纹长度的平均值是不合适的:

A: 平均=13/1=13

B: 平均值=(7+6)/2=6.5

C: 平均值=(7+6)/2=6.5

D: 平均值=(7+3+2)/3=4

E: 平均值=(7+3)/2=5

F: 平均=7/1=7

考虑非条纹(将其计为1):

A: 平均=13/1=13

B: 平均值=(7+6)/3=4.3

C: 平均值=(7+6)/2=6.5

D: 平均值=(7+3+2+1)/4=3.25

E: 平均值=(7+1+1+3)/5=2.6

F: 平均=(7+1+1+1+1+1+1)/7=1.85

变量R可用于指示特定条纹距离平均值有多少偏差。根据所公开的实施例,条纹的水平不仅可定义为距离平均值的(整数*偏差)距离,还可定义为(整数*分数_偏差)距离。为了实现这一点,可以使用可变R因子。R因子以偏差的一部分表示两个连续R水平之间的分离。通过改变R因子,可以根据需要对条纹进行排序。然而,连胜的"可信度"也应该考虑在内,并纳入排名机制。条纹内的偏差是衡量条纹内数据交错程度的一个明显指标。一个好的条纹应该少一些交错,或者换句话说,少一些偏离。出于这个原因,即使其偏差超过了正常要求,也认为非常高的水平连胜是好的。因此,虽然水平R对排名有积极影响,但条纹内的偏差对排名有消极影响。

如果这是不正确的,很抱歉,但我是从图像处理的角度来看这一点的。

我见过的分析散点图的一种更有趣的方法是Tukey提出的"图论散点诊断"或简称"散点图诊断",后来由Wilkinson撰写。除了"字符串",还有其他几个有趣的形状/簇标识符。

如果你的数据是2空间或3空间的,有一些图像处理算法可以识别数据条纹,但我必须看到一些样本数据图/图像才能提供任何进一步的建议。

根本不清楚您想要从这个度量中得到什么。如果你不关心条纹的内容,你可以使用条纹长度的平方和除以总长度的平方。此度量值将始终介于0和1之间。如果整个序列是一条条纹,它将恰好为1,如果它主要是一条长条纹,则会稍低,如果它根本没有条纹,则为1/长度。对于您的情况,此度量值显示为

A: Average = 13²/13² = 1.0000
B: Average = (7²+6²)/13² = 0.5030
C: Average = (7²+6²)/13² = 0.5030
D: Average = (7²+3²+2²+1²)/13² = 0.3728
E: Average = (7²+1²+1²+1²+3²)/13² = 0.3609
F: Average = (7²+1+1+1+1+1+1)/13² = 0.3254