在 n 个不同的值上进行特征选择

数据挖掘 可视化 特征选择
2022-03-11 16:43:17

我有一个.csv文件,其中包含以下形式的数据:

moment_1;moment_2;moment_3;force_x;force_y;force_z;...
-0,02131267;-1,6032766088;5,9906811787;5,40010285;0,0203;86,44227467;...
2599;-1,70091039344;-1,3044809;-0,0406673590;-2,60896180797;43,2334;...

该文件非常大,我需要将其放入交互式可视化中,这就是为什么我需要在不过多改变整体结构的情况下减少数据点。

许多数据点彼此非常接近,如下图所示:

太近了

我的方法是定义一个阈值并过滤所有与前一点的距离低于阈值的点。但我认为这不是最佳解决方案,因为当我删除一个索引时,我也需要从另一个数据数组中删除它,否则结构会改变。

有更好的方法吗?

2个回答

我建议您使用已建立的技术(例如 Savitzky–Golay 过滤器)对数据进行平滑处理,而不是过滤单个点。另一种选择是使用核密度估计,然后您可以使用减少的、规则的一组支持点来可视化曲线。

您可以尝试像高斯这样的线性滤波器。它将平滑数据并具有不会创建新的局部最大值或最小值的特性(参见高斯尺度空间理论)。

但是,我认为中值滤波器(非线性)可能会给你更好的结果,因为它会去除单个尖峰但保留阶梯边缘。此处的答案之一也建议使用卡尔曼滤波器: https ://dsp.stackexchange.com/questions/4680/what-is-smoothing-in-very-basic-terms/4682#4682