您将如何可视化来自数百万条记录的数据?

数据挖掘 可视化 绘图
2022-02-13 15:32:47

开发一个应用程序,有时当我进行查询时,我会在结果中获得数百万或 100 万条记录。

我的问题是,当我得到这些巨大的结果集时,我如何可视化(在条形图、雷达图、折线图等图表中)这些数据?

我是否只是抽取数据样本并将其可视化?我只是去绘制百万条记录吗?解决此问题的最佳方法是什么?

4个回答

Holoviews 可视化库可以处理非常大的数据http://holoviews.org/ http://holoviews.org/user_guide/Large_Data.html

通过直方图、饼图、圆环图、树状图、面积图、条形图、等值线(等等 - 等等)绘制数百万个条目不会构成任何挑战。如果您要使用散点图/小提琴图,或者将其可视化为非常大的图表,您只会发现它非常缓慢和烦人。

我建议您使用PCA. 它找到数据高度分布的方向。使用此过程,组件__新特征__将按特征值的降序排列。每个具有比下一个特征值更大的值的特征值将比它们拥有更多的信息。使用后,PCA您可以使用它的前三个主成分进行绘图。每个新特征都是先前特征的线性组合。使用例如前三个主要成分将有如此多的信息,这些信息将代表您的数据。在数据不相关的情况下,前面的陈述可能并不总是正确的,但在你有这么多特征的情况下,根据经验,你肯定有这么多相关的特征。有关更多信息,请查看此处在这里可以帮助你。

采样是一个非常好的选择,尤其是当您的数据大小阻碍了您用来绘制它的工具时。

如果这不是问题,一个常见问题是绘制不透明标记会显示数据所在的位置,但会掩盖密度信息。例如,假设绘图区域的每个像素都与至少一个观察相关联(即您有一个统一颜色的图),但一个像素实际上与 99% 的数据相关联。对于这种情况,一个很好的技术是尝试可视化数据的密度。一种简单的方法是为您的标记添加透明度(通常通过调整“alpha”参数),或者您可以使用分箱(例如直方图或六角网格)或使用核密度估计更直接地对密度进行建模。

如果您有离散数据,则过度绘图可能是一个问题,但密度可能会给您带来奇怪的结果。解决此问题的一个好方法是通过向一个或多个绘图维度添加噪声来“抖动”您的数据,以迫使您的数据分散得更多。

如果你有时间序列数据,你可以重新采样到更粗略的分辨率:例如,如果你有一个每毫秒的数据点,如果你按小时、天或周聚合,你的数据可能更容易可视化。

同样,您可以通过绘制模型来汇总数据。绘制 vs而不是 vs并添加一些误差带以进行良好的测量。XE[Y|X]XY

所有这一切:只需尝试先绘制它,看看会发生什么。您的可视化工具可能会在后台做一些事情,以使至少一些手动工作变得不必要。