学习如何使用可视化/分析大数据集的基本技能

11

我正在寻找一种学习处理大型数据集的方法。我是一名大学生,所以我所做的所有事情都是“不错”的规模和复杂性。本学期与教授合作进行研究项目时,我需要可视化一个相当大(在我的经验中)的数据集之间的关系。它是一个15 MB的CSV文件。

我大部分的数据整理都是用Python编写的,并使用GNUPlot进行可视化。

是否有任何易于理解的书籍或网站可以帮助我学习?使用Python加分,使用比依赖gnuplot更基础的可视化系统则更加加分,例如Cairo等。

我想要的是一些从数据挖掘到处理再到可视化的教程。

编辑:我更希望能够学习“大思想”。我自己可以编写代码,但是我正在寻找人们处理大型数据集使用的技术。我的15 MB足够小,以至于我可以将我需要的所有内容都放入内存并开始计算。但是,人们如何可视化5 GB的数据集呢?

4个回答

12
我认为最基本的技能是扎实的数学和统计学基础。这可以帮助您评估并从各种数据过滤和降维技术中选择,同时保持其完整性。您不想做的最后一件事是展示并不存在的模式或关系。

专业数学

为了解决某些问题,您需要学习一些数学知识,以了解特定算法的工作原理以及它们对您的数据产生的影响。有各种算法可用于聚类数据、降维、自然语言处理等。根据您希望分析的数据类型,您可能永远不会使用其中许多,但是如果您需要帮助,互联网上(以及Stack Exchange网站)有丰富的资源可用。
对于数据挖掘技术的简介概述,Witten的Data Mining很不错。我有第一版,它用通俗易懂的语言解释概念,并混合了一些数学。我推荐它,因为它提供了一个很好的概述,并且价格不太昂贵——随着您在该领域的阅读越来越多,您会注意到许多书都非常昂贵。唯一的缺点是有很多页专门介绍使用Java数据挖掘包WEKA,这对您使用Python可能没有太大帮助(但它是开源的,因此您可以从源代码中获得一些想法)。我还发现Introduction to Machine Learning提供了一个很好的概述,价格也合理,其中包含更多的数学知识。

工具

为了创建自己发明的可视化,只使用一台机器,我认为基础内容应该足以帮助您入门:Python、NumpyScipyMatplotlib和一个您有经验的良好图形库,例如PILPycairo。通过这些工具,您可以计算数据,将其绘制在图表上,并通过定制的绘图例程美化它们。

当您想要创建动态、交互式的可视化时,像基于 Java 的Processing库就能轻松实现。甚至还有一些方法可以通过 Jython 用 Python 编写 Processing sketches ,以防您不想编写 Java。

如果您需要更多工具,则有许多其他工具可供选择,例如OpenCV(计算机视觉、机器学习)Orange(数据挖掘、分析、可视化)NLTK(自然语言、文本分析)等。

演示原则和技巧

Edward Tufte这样的领域专家所著的书籍和Information Graphics等参考资料可以帮助您全面了解创建可视化和有效呈现它们的方法。

查找可视化示例的资源

Flowing DataInfostheticsVisual ComplexityInformation is Beautiful这样的网站展示了来自网络上最新、有趣的可视化。您还可以浏览互联网上的many compiled listsvisualization sites。从这些开始,开始浏览,我相信您会发现许多有用的网站和启发性的例子。

(原本是要写评论的,但变得太长了)


这个答案的第一句话已经说得很清楚了。 - Michael J. Barber
我现在是一名大学三年级的数学专业学生。你能推荐些书吗? - Daniel Harms
啊,好的,我添加了两本涵盖广泛的数据挖掘/机器学习技术的书籍。我有这两本书的第一版,但它们最近已经更新(我很想重新购买)。 - samplebias

4
请查看Information is beautiful。虽然它不是技术书籍,但可能会给您关于数据可视化的一些想法。
也许可以阅读数据挖掘原理的前三章,其中涉及了在数据挖掘背景下可视化数据的一些概念,我在大学期间发现其中的一些部分很有用。
希望这能帮到您。

2

如果您更关注可视化而不是数据挖掘和分析,Edward Tufte的《量化信息的视觉显示》被认为是该领域最好的书之一。


1

我喜欢Janert所著的书籍《使用开源工具进行数据分析》。这是一本涵盖了广泛的数据分析方法的概述,重点在于如何理解产生数据的系统,而不是复杂的统计方法。但需要注意的是:虽然使用的数学并不特别高级,但我认为你需要对数学论证感到舒适,才能从这本书中获得更多收获。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接