c# - 填充缺失数据的方法或算法

标签 c# algorithm

我正在处理缺少数据的数据集,需要能够向前、向后和间隙进行填充。因此,举例来说,如果我有从 2000 年 1 月 1 日到 2010 年 12 月 31 日的数据,并且缺少某些日期,当用户请求一个时间跨度开始于之前、之后结束或包含丢失的数据点时,我需要“填写”这些缺失值。

有没有合适的术语来指代这个填充数据的概念?插补是一个术语,但不知道它是否是它的“那个”术语。

我假设有多种算法和方法可用于填充缺失数据(使用上次测量的数据、使用 2 个已知数字之间的中值/平均值/移动平均值等)

任何人都知道这个问题的正确术语、关于这个主题的任何在线资源,或者理想情况下链接到某些算法的开源实现(最好是 C#,但任何语言都会有用)

最佳答案

您要查找的术语是 interpolation . (强制性维基链接)

您要求使用数据集的 C# 解决方案,但您也应该考虑在 the database level like this 上执行此操作.

C# 中的一种简单的强力方法可能是构建一个连续日期数组,并将您的开始值和结束值作为最小值/最大值。然后使用该数组将“插值”日期值合并到数据集中,方法是在数据集中没有与日期数组匹配的日期的地方插入行。

这是一个 SO post这接近您的需要:使用 C# 插入缺失日期。没有公认的解决方案,但阅读问题并尝试回答可能会让您了解下一步需要做什么。例如。根据 Ticks(长值类型)使用 DateTime 数据,然后对该数据使用插值方案。将内插的 long 值转换为 DateTime 值。

关于c# - 填充缺失数据的方法或算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119022/

相关文章:

algorithm - 如果我将二叉树存储在数组中,如何避免浪费空间?

algorithm - 关于平衡树分析

javascript - Canvas 动画,我的 JavaScript 代码中的数学计算问题

python - 重复计数循环(n*n码性能)

c# - 有人大量使用 StreamInsight 吗?

java - 测试井字游戏的获胜条件

c# - 从邮件客户端打开应用程序,Windows Phone 8

c# - Cefsharp如何获取当前URL地址? C#

c# - 在字符串中查找多个非连续出现的字符

c# - 在代码隐藏中向 Asp ListBox 列表项添加属性时出现问题