数据是什么?—— 小小数据科学家的第一课
数据是什么?—— 小小数据科学家的第一课
想象一下,如果 AI 是一个会思考的小机器人,那它每天要吃什么呢?答案既不是米饭,也不是面条,而是数据。没有数据,AI 就成了一个饿着肚子的"小糊涂",什么都学不会。本章要解决的核心问题只有一个:数据到底是什么?它为什么是 AI 赖以生存的"魔法食材"?
为了讲清楚这件事,我们会一起完成一段奇妙的旅程:先用三样日常物品——积木、食谱、宝藏地图——作为比喻,让"数据"这三个字从抽象变得具体;然后走进小学生的成绩单、天气预报、超市小票这些真实场景,看看数据到底藏在哪些地方;接着爬上一棵叫"DIKW"的金字塔,看看数据是怎样一步一步变成智慧的;最后,我们要打开电脑,让 Python 帮我们把一份真实的天气数据读进屏幕里,亲手画出一条会"说话"的温度折线图。
准备好了吗?让我们出发。
1. 数据的三副面孔:数字、文字、图像
如果请你描述今天的天气,你可能会说:"今天 28 摄氏度,多云转晴,空气清新。"这句话里有几种类型的信息?有数字(28)、有文字(多云转晴)、有感受(空气清新)。这恰恰就是数据最常见的三副面孔。
1.1 第一副面孔:数字
数字是数据世界最古老、最直白的居民。温度 28 是数字,身高 145 厘米是数字,考试分数 92 分也是数字。数字之所以重要,是因为它可以精确比较。老师说"小明考了 92 分",你立刻知道这比"小红考了 85 分"要高 7 分。数字让世界变得可测量、可计算、可排序。
在 AI 眼里,数字也是最容易"消化"的食物。神经网络之所以偏爱数字,是因为它能做加减乘除。一个识别猫狗的图像模型,表面上看到的是一张图片,但在它内部,所有的猫耳朵、狗鼻子都被转换成了一串串浮点数,比如 0.87、-0.23、1.45……这些数字像乐高颗粒一样被堆叠起来,最终拼出一个判断:"这是猫,概率 98%。"
数字数据还可以分成两类:离散型和连续型。离散型数字就像楼梯——一级一级往上跳,中间没有"半级"。班级里有 35 个同学,这就是离散型;冰箱里有 5 个苹果,也是离散型。而连续型数字就像滑梯——可以无限细分。温度可以是 28.1℃、28.15℃、28.157℃……理论上可以精确到任意多位。身高、体重、时间,都是连续型数字。
1.2 第二副面孔:文字
文字是数据的另一副面孔,也是最复杂的一副。你今天写下的日记、发出的微信、读的课外书,都是文字数据。文字比数字更难处理,因为它有歧义。"苹果很好吃"里的"苹果"可以指水果,也可以指手机;"意思意思"里的两个"意思"意思不一样。
为了对付文字数据,AI 工程师们发明了很多巧妙的办法。最有名的叫做词嵌入(Word Embedding)。简单来说,就是把每个字或每个词变成一串数字。比如"开心"可能被变成 [0.2, 0.8, -0.1],而"难过"则被变成 [-0.3, -0.7, 0.5]。这样一来,文字也变成了数字,AI 就能像处理温度一样处理语言了。
文字数据还可以分成结构化文字和非结构化文字。结构化文字就像填表格,"姓名:张三;年龄:10 岁;爱好:画画"——每一项都有固定的格子。非结构化文字则像写日记,可以自由发挥,今天写"我去了公园",明天写"今天真无聊啊"。对 AI 来说,结构化文字更容易看懂,非结构化文字则需要更强大的模型。
1.3 第三副面孔:图像
图像是数据家族里最"亮眼"的成员。一张照片、一幅画、一段视频,都是图像数据。一张 1920×1080 的彩色照片,实际上由 207 万多个小方块(专业名称叫像素)组成;每一个小方块又有红、绿、蓝三个数值(专业名称叫 RGB 通道)。所以,一张照片在计算机眼里,其实就是一个巨大的数字表格。
人类有 80% 的信息是通过眼睛获取的,AI 也一样。在所有数据中,图像数据的总量是最大的。根据估算,2025 年全球每天会产生超过 30 亿张新照片。如果把这些照片打印成 6 寸照片并铺开,可以绕地球赤道好几圈。
图像数据的特殊之处在于,它有空间结构。一只猫的耳朵在头顶,眼睛在鼻子两边,胡须在嘴巴旁边——这些位置关系很重要。所以,AI 处理图像时,不能像处理数字那样把像素"摊平"成一行,而要用一种叫做卷积神经网络(CNN)的特殊结构,让 AI 像人眼一样"局部观察"。这是后话,我们会在第 7 章专门讲它。
1.4 三副面孔的"合体"
真实世界的数据,往往不是单独出现的。一份医院报告里,可能既有数字(血压 120/80)、又有文字("患者主诉头痛三天")、又有图像(CT 扫描片)。这种"合体数据"叫做多模态数据。让 AI 同时理解多种数据类型,是当下最前沿的研究方向,叫做多模态学习。
举一个生活中的例子:你的班级群里,妈妈们发的消息经常是这样的:"今天 28 度,给孩子穿短袖"——这是数字加文字;后面跟一张窗外阳光明媚的照片——这是图像;再跟一段语音:"记得带水壶"——这是声音。三种数据一起,传达的信息才完整。
所以,请记住:数据不止一种长相。它可以是数字,可以是文字,可以是图像,可以是声音,可以是视频,可以是任何能被记录下来的"事实"。这些事实本身不包含意义——28 度只是数字,"多云"只是文字——但当它们被放在一起、被整理、被分析时,就能讲出一个完整的故事。
2. 结构化 vs 非结构化:用积木和拼图做类比
数据不仅长相多样,"性格"也很不一样。有的数据很乖,整整齐齐坐在格子里;有的数据很皮,到处乱跑,需要我们花心思去收拾。我们把数据按"规整程度"分成三类:结构化数据、半结构化数据、非结构化数据。
2.1 结构化数据:整齐的乐高积木
想象你面前有一盒乐高积木。所有的小方块都被分类装在不同的盒子里:2×2 的红色方块在 1 号盒,4×2 的蓝色方块在 2 号盒,2×4 的黄色方块在 3 号盒。每当你需要一块积木,都知道该去哪个盒子里拿。这就是结构化数据。
结构化数据最典型的样子,就是 Excel 表格或者数据库里的表格。它有三大特征:
第一,行和列固定。每一行代表一个"对象"(比如一个学生、一个订单、一天的天气),每一列代表一个"属性"(比如姓名、分数、温度)。
第二,类型一致。同一列的所有数据必须是同一类型,比如"年龄"列里不能一会儿填"10",一会儿填"十岁",一会儿填"10.5 岁"。
第三,关系清晰。表与表之间可以通过"主键"(每行独一无二的身份证)关联起来。比如,班级表里每个学生有一个学号,成绩表里也用同样的学号——这样两张表就能拼起来。
成绩单是结构化数据最经典的例子:
```mermaid flowchart LR A[学生表] -- 学号 --> B[成绩表] B -- 学号 --> C[课程表] A -- 学号 --> D[班级表] ```
学校的管理系统,几乎完全建立在结构化数据之上。结构化数据的好处是处理起来快、查询起来方便,坏处是不够灵活——如果你想加一列"今日心情",就得改整个表的结构。
2.2 半结构化数据:贴了标签的杂物盒
半结构化数据介于结构化和非结构化之间。它不像乐高那样整齐划一,但也不是完全混乱。最常见的半结构化数据格式叫 JSON(JavaScript Object Notation)。它长这样:
```json { "name": "小明", "age": 10, "hobbies": ["画画", "下棋", "打篮球"], "grade": { "语文": 92, "数学": 98, "英语": 85 } } ```
看,它有"标签"——name、age、hobbies——告诉你这一段数据是什么意思。但它又很灵活:hobbies 可以是 3 个爱好,也可以是 10 个;grade 里面可以有语文、数学,也可以有物理、化学。
打个比方,结构化数据是整齐的乐高,半结构化数据是贴了标签的杂物盒。盒子上写着"小明的玩具",打开一看,里面有什么不一定——可能是 3 个积木,也可能是 1 个拼图加 2 辆小车。
半结构化数据在互联网世界无处不在。你打开任何一个 App,它跟服务器传输的数据 99% 都是 JSON 格式。微信发消息、淘宝下单、抖音刷视频,背后流动的全是半结构化数据。
2.3 非结构化数据:堆满整个房间的玩具
非结构化数据是最"自由"、也最难处理的一类。它不像表格那样有行列,也不像 JSON 那样有标签。照片、视频、音频、文章、邮件、聊天记录……这些都是非结构化数据。
想象一个孩子的玩具房:地上堆着乐高、毛绒玩具、变形金刚、拼图、绘本、画笔……它们没有任何统一的分类标准。如果妈妈问"你的乐高在哪里",你得在一堆杂物里翻半天。这就是非结构化数据的特点:量大、杂乱、没有固定格式。
根据统计,世界上 80% 以上的数据都是非结构化数据。医院里的 CT 片、法院里的判决书、社交媒体上的微博、监控摄像头录下的视频——这些都是非结构化数据。它们就像一座座金矿,里面藏着巨大的价值,但因为没有整齐的"格子",很难直接挖掘。
为了让 AI 处理非结构化数据,工程师们做了很多努力。比如,把图像里的像素变成数字矩阵(这叫"特征提取"),把文字里的词语变成词向量,把声音变成波形图或频谱图。经过这些转换,原本"自由散漫"的非结构化数据就能被 AI "读懂"了。
2.4 为什么这个分类很重要?
把数据分成三类,不只是为了考试。它直接决定了 AI 工程师要用什么工具来处理数据。结构化数据用 Pandas、SQL;半结构化数据用 JSON 解析器、XML 解析器;非结构化数据要用深度学习模型、计算机视觉算法、自然语言处理工具。
打个比方:你要做一道菜,结构化数据是已经洗好、切好、按比例配好的食材;半结构化数据是装在标了签的袋子里、但还需要清洗的食材;非结构化数据是一整只鸡,需要你自己去毛、开膛、清洗、切块。
理解了这三种数据的区别,你就能看懂为什么有些 AI 项目做起来快,有些做起来慢——因为它们面对的数据"性格"不一样。
3. 数据、信息、知识、智慧的金字塔
现在我们已经知道数据长什么样了。但是,数据本身并不等于知识,也不等于智慧。从原始的"事实",到能用来做决策的"智慧",中间要经历一个层层递进的阶梯。这个阶梯叫做 DIKW 金字塔,由四个英文单词的首字母组成:Data(数据)、Information(信息)、Knowledge(知识)、Wisdom(智慧)。
```mermaid flowchart TD D["数据 Data<br/>原始事实:28、35、北京"] --> I["信息 Information<br/>有意义的数据:北京今天28度"] I --> K["知识 Knowledge<br/>规律与关系:北京夏天通常很热"] K --> W["智慧 Wisdom<br/>决策与行动:今天穿短袖、别忘带水"] ```
3.1 第一层:数据——原始的事实
数据是金字塔的最底层,也是最基础的一层。它指的是孤立的、未加工的事实。比如:
- 28
- 多云
- 35
- 北京
这些数字和文字单独拿出来,并没有太多意义。"28"是什么?温度?价格?年龄?"多云"是什么时候的天气?答案无从知晓。数据的价值就像散落在地上的拼图碎片,每一片都有自己的颜色和形状,但单独看只是一片纸板。
3.2 第二层:信息——有意义的数据
当数据被放在上下文中,它就变成了信息。信息的英文 Information,本意是"被赋予形态的数据"。把刚才那些数据加上时间和地点:
- 2024 年 7 月 1 日北京的气温是 28℃
- 2024 年 7 月 1 日北京的天气是多云
- 2024 年 7 月 1 日北京的空气质量指数是 35
- 地点:北京
这样一来,每一条数据都有了具体的含义。28 不再是抽象的数字,而是"今天北京的温度";35 不再是孤立的整数,而是"今天的空气质量等级"。这就是信息的本质:有意义的数据。
3.3 第三层:知识——规律与关系
信息告诉我们"发生了什么",而知识告诉我们"为什么会发生"。当我们把多条信息放在一起观察,就能发现规律:
"北京 7 月的平均气温是 28℃左右,空气质量常常达到优良级别,晴朗的日子比阴天多。"
这就是知识。它是经过归纳、总结、验证后得到的规律。知识可以是数学公式,可以是科学定律,可以是历史经验。"夏天北京热"是知识,"秋天北京凉"也是知识,"每天吃早餐的孩子成绩更好"也是知识。
数据科学家的一项重要工作,就是从信息中挖掘知识。这个过程叫做数据分析。它可能用到统计方法,可能用到机器学习,可能用到可视化图表。所有的工具,最终目的都是把信息提炼成知识。
3.4 第四层:智慧——决策与行动
站在金字塔最顶端的,是智慧。智慧是把知识应用到具体场景,做出最佳决策的能力。
知识告诉你"北京夏天热",智慧告诉你"今天虽然预报说热,但下午有雷阵雨,应该穿短袖但带把伞,同时注意防雷电"。知识告诉你"每天吃早餐的孩子成绩更好",智慧告诉你"我家孩子不爱吃早餐,可以尝试把早餐做成他喜欢的卡通形状,同时保证蛋白质摄入"。
智慧是一种判断力,它不仅需要知识,还需要经验、价值观、情境理解、风险评估。AI 目前还很难拥有真正的智慧——它能掌握大量知识(事实上它掌握的知识比任何人类都多),但要让它在复杂情境中做出有人情味、有创造力的判断,还需要很多突破。
3.5 一个完整的例子
让我们用"期末考试成绩"这个例子,走一遍 DIKW 金字塔。
数据(孤立的事实):
- 张三 92 分
- 李四 85 分
- 王五 78 分
- 平均分 85
信息(有意义的数据):
- 张三这次数学考了 92 分,比上次提高了 5 分
- 李四这次数学考了 85 分,是班级第 10 名
- 王五这次数学考了 78 分,比班级平均分低 7 分
知识(规律):
- 数学成绩好的同学,平时都养成了每天做 5 道计算题的习惯
- 这次考试的最后一道应用题,全班平均分都很低,说明题目偏难
- 数学成绩与每天的睡眠时长存在正相关
智慧(决策与行动):
- 针对张三,可以鼓励他挑战更难的竞赛题
- 针对李四,可以分析他的失分点,重点攻克应用题
- 针对王五,建议他先补基础,每天多做 5 道计算题,并保证 9 小时睡眠
- 对全班来说,下学期应该增加应用题的专项训练
你看,从最底层的数据爬到最高层的智慧,要经历的不是简单的"加法",而是多次提炼、多次分析、多次判断。AI 的强项在前三层(数据、信息、知识),而人类的强项在第四层(智慧)。让 AI 帮助人类处理前三层,从而让人类专注于第四层——这是 AI 时代最好的协作模式。
4. 真实案例:天气数据、成绩数据、动物图像
光讲理论太抽象了,下面我们一起走进三个真实场景,看看数据到底是怎样"藏"在我们身边的。
4.1 案例一:天气预报里的数据
打开手机上的天气 App,你看到的不仅是一个温度数字,还有一张小图、一段文字、未来几天的预报。这一切背后,都是数据在工作。
气象站每天会采集上百种数据:
- 温度(空气温度、地表温度、水温)
- 湿度(相对湿度、绝对湿度)
- 风速风向
- 气压
- 降水量
- 云量
- 能见度
- PM2.5、PM10、二氧化硫、二氧化氮等空气质量指标
每 5 分钟,这些数据就会自动汇集到气象局的服务器。气象学家再用超级计算机,把这些数据代入气象模型,预测未来的天气。这个过程中,一个城市一天可能产生 GB 级别的数据量(1 GB = 1024 MB,一部高清电影的大小)。整个地球每天产生的气象数据,加起来可以填满几万座图书馆。
但光有数据还不够。气象学家必须把这些数据整理成结构化的格式,比如表格:
| 时间 | 温度(℃) | 湿度(%) | 风速(m/s) | 天气 | |------|---------|---------|-----------|------| | 08:00 | 22 | 65 | 2 | 晴 | | 09:00 | 24 | 60 | 2 | 晴 | | 10:00 | 26 | 58 | 3 | 多云 | | 11:00 | 28 | 55 | 3 | 多云 |
然后再用折线图、柱状图、热力图等可视化工具,让普通人一眼看懂。这就是数据从"原始事实"变成"对人有用的信息"的过程。
4.2 案例二:班级里的成绩数据
每个学期末,老师手里都有一份成绩单。这份成绩单就是典型的结构化数据。我们用 Python 把一份真实的成绩单"画"出来:
```python import pandas as pd
创建一个字典,存放学生成绩
data = { "姓名": ["小明", "小红", "小刚", "小丽", "小华"], "语文": [85, 92, 78, 95, 88], "数学": [92, 88, 95, 90, 82], "英语": [78, 85, 92, 88, 95], "科学": [88, 90, 85, 92, 80] }
把字典转换成 DataFrame(可以理解为一张表)
df = pd.DataFrame(data)
打印这张表
print(df) ```
运行这段代码,你会看到:
``` 姓名 语文 数学 英语 科学 0 小明 85 92 78 88 1 小红 92 88 85 90 2 小刚 78 95 92 85 3 小丽 95 90 88 92 4 小华 88 82 95 80 ```
这就是结构化数据最典型的样子。每一行是一个学生,每一列是一个科目,表格整齐得像阅兵式方阵。老师拿到这张表后,可以:
- 计算每个学生的总分和平均分(**统计**)
- 找出每科的最高分和最低分(**聚合**)
- 比较两个学生的成绩差异(**对比**)
- 画出雷达图,看每个学生的"偏科情况"(**可视化**)
更进一步,老师还可以做"数据挖掘":比如,分析"数学成绩好的学生,英语成绩怎么样?"或者"睡午觉的学生,下午的科学课成绩是否更好?"。这些洞察对教学改进非常有价值。
4.3 案例三:野生动物保护中的图像数据
第三个案例有点特别——它是非结构化数据。在非洲大草原上,野生动物保护组织要给大象计数、给斑马拍照、追踪狮子的迁徙路线。这些工作以前只能