数据通常由一个矩阵表示,矩阵的行表示不同的条目或记录,列则表示这些条目的不同属性特征。例如,关于美国的城市数据集中每一行代表一个城市,每列则代表州、人口和地区等特征。
当面对一个非结构化数据源时(例如一组来自Twitter的推文集合),我们通常首先要构建一个矩阵以使这些数据结构化。词袋模型可以构建一个矩阵,每条推文对应矩阵中的一行,每个常用词汇对应矩阵中的一列。矩阵项M[i, j]则表示推文i中单词j出现的次数。
2.定量数据与类别数据
定量数据由数值组成,如高度和重量。这些数据可以被直接带入代数公式和数学模型,也可以在传统的图表中进行表示。
相比之下,类别数据则由描述被调查对象属性的标签组成,如性别、头发颜色和职业。这种描述性信息可以像数值型数据一样精确而有意义,但不能使用相同的方法进行处理。
类别数据通常可以进行数字化编码。例如,性别可以表示为男=0或女=1。但如果每个特性包含两个以上字符,尤其当它们之间没有隐序时,事情会变得更加复杂。我们可以对头发的颜色进行数字化编码,即为不同颜色匹配不同的数值,如灰色头发=0、红色头发=1以及金色头发=2。然而,除了单纯地进行特征识别之外,我们并不能真正将这些值视为数字。讨论头发的最大或最小颜色有什么意义呢?又如何解释我的头发颜色减去你的头发颜色的含义呢?
3.大数据与小数据
在大众眼中,数据科学已经与大数据混为一谈,数据科学以计算机日志和传感器设备产生的海量数据集为分析对象。原则上,拥有更多的数据总是比数据少要好,因为如果有必要,可以通过抽样来舍弃其中的一些数据,从而得到一个更小的数据集。
拥有大数据是件令人兴奋的事。但在实践中,处理大数据存在一定的困难。一般来说,一旦数据量过大,事情就会变得更困难。大数据的挑战包括:
一个分析周期所用的时间随着数据规模的增长而变长:对数据集的计算性操作会随着数据量的增加而花费更长的时间。电子表格可以提供即时响应,允许用户进行实验测试以及验证各种假设。但计算大型电子表格时,会变得笨拙而缓慢。处理大规模数据集可能需要数小时或数天才能得到结果。为了处理大数据,要采用高性能算法,这些算法也已展现出惊人的优越性。但是绝不能为了获得更快的计算速度而将大数据拆分为小数据。
大型数据集复杂的可视化过程:在计算机屏幕或打印的图像上不可能将大数据中的数百万个要点全部绘制出来,更不要说对这些数据进行概念性的理解了。我们无法满怀希望地去深入理解一个根本无法看到的东西。
简单的模型不需要大量的数据来匹配或评估:典型的数据科学任务是基于一小部分变量做出决策,比如,根据年龄、性别、身高、体重以及现有的医疗水平来决定是否应该为投保人提供人寿保险。
如果有100万人的生活相关数据,那么应该能够建立一个具有较好保险责任的一般模型。但是当数据量扩充到几千万人时,可能对于优化模型就不再产生作用了。基于少数几个变量(如年龄和婚姻状况)的决策准则不能太复杂,而且在覆盖大量的保险申请人数据时呈现出鲁棒性。那些不易被察觉的发现,需要大量数据才能被巧妙地获得,而这却与数据体量的大小无关。
大数据有时被称为坏数据。它们作为已有系统或程序的副产品被收集起来,而不是为了回答我们手头已经设计好的问题而有目的地收集来的。这就使得我们可能不得不努力去解释一些现象,仅仅是因为我们拥有了这些数据。
总统候选人如何从分析选民偏好中获得收益?大数据方法可能会分析大量的Twitter或Facebook上的网络数据,并从文本中推测出选民的观点。而小数据方法则通过民意调查,对特定的问题询问几百人,并将结果制成表格。哪种方法更准确呢?正确的数据集与要完成的任务具有直接相关性,而不一定是那个数量最大的数据集。
不要盲目地渴望分析大型数据集。寻找正确的数据来回答给定的问题,而不是做没有必要参与的“大事情”。