Data-Science-For-Beginners 数据集分类实战:结构化、数值类型与数据源识别全解析
【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners
导读
本篇文章以 Data-Science-For-Beginners 课程第 3 课(Defining Data)的课后作业 Classifying Datasets 为核心,系统讲解数据科学家最基础也最关键的技能——对数据进行分类。文中将围绕"结构类型(Structured / Semi-Structured / Unstructured)、数值类型(Qualitative / Quantitative)、来源类型(Primary / Secondary)"三条分类轴展开,逐题拆解 5 个真实场景作业,并结合本仓库中的实际数据文件与课程原文,帮助你掌握一套可复用的数据分类判断框架,完成作业的同时建立对数据本质的认知。
一、作业背景:为什么数据科学家要先学会"分类数据"
在数据科学工作流中,拿到数据的第一步往往不是建模,而是搞清楚你手里到底是什么样的数据。正如课程 Defining Data 所定义的:数据是用于发现规律、支撑决策的事实、信息、观测与测量结果;单个数据单元称为数据点(data point),数据点的集合构成数据集(dataset)。数据集可能以不同格式和结构存在,且通常取决于其来源。
本作业正是对这一知识点的巩固:通过 5 个贴近现实的场景,练习从三个维度对数据分类:
| 分类轴 | 类别 | 判断核心问题 |
|---|---|---|
| 结构类型 | 结构化 / 半结构化 / 非结构化 | 数据是否以行与列组织?是否遵循固定格式与规则? |
| 数值类型 | 定性 / 定量 | 数据能否被客观测量并用于数学运算? |
| 来源类型 | 主要 / 次要 | 数据是使用者自己生成的,还是来自他人为通用目的收集的数据? |
作业的评分标准(assignment.md 中的 Rubric)非常清晰:正确识别全部 5 个场景的结构、数值、来源类型即为"Exemplary(典范)",识别正确 3 个为"Adequate(合格)",2 个及以下为"Needs Improvement(需改进)"。下面我们先用课程原文把三个分类轴讲透,再逐题给出判断思路与参考答案。
二、分类轴一:结构类型(结构化 / 半结构化 / 非结构化)
课程的 Defining Data 一课把数据的组织形式归纳为三种结构,这是本作业中每题第一个要回答的问题。
2.1 结构化数据(Structured Data)
结构化数据被组织为行与列的格式,每一行拥有相同的一组列;列代表某一特定类型的取值,并以描述该值的名称标识,行则存放实际数值。列通常带有一组特定的规则或限制,以保证取值准确——例如客户表格中的"电话号码"列可以设置规则,确保它永不为空、只含数字、不含字母。
结构化数据的优点是可以按特定方式组织,从而与其他结构化数据建立关联(这正是关系型数据库的基础);缺点是因为设计上要求高度规整,改动整体结构成本很高——例如给客户表新增一个"不能为空"的邮箱列,就必须为数据集中的每一行现有客户补上邮箱值。
课程给出的典型示例包括:电子表格(spreadsheets)、关系型数据库(relational databases)、电话号码、银行对账单。仓库中 data/form.csv 这类 CSV 表格文件即典型代表——表头birth_month,state,pet定义了列名,每一行数据遵循相同的列结构。
2.2 非结构化数据(Unstructured Data)
非结构化数据通常无法归入行或列,也不包含固定格式或规则。由于结构限制更少,新增信息比结构化数据更容易——课程举例:一个每 2 分钟采集一次气压的传感器如果升级为可同时记录温度,在非结构化数据中无需改动既有数据即可追加。但相应地,分析与排查这类数据会更耗时——例如科学家想从传感器数据中求上个月平均温度,却发现部分记录中传感器用字母 "e" 标记故障而非常规数字,导致数据不完整。
典型示例:文本文件(text files)、短信(text messages)、视频文件(video files)。此外,图片、音频文件也属于此类。
2.3 半结构化数据(Semi-Structured Data)
半结构化数据兼具结构化与非结构化的特征:它通常不遵循行与列的格式,但以被视为"有组织"的方式存储,可能遵循固定格式或规则。结构因来源而异——可能是清晰的层级结构,也可能更灵活、便于融入新信息。描述这类数据组织方式的是元数据(Metadata),它根据数据类型有不同的名称,常见的有:标签(tags)、元素(elements)、实体(entities)、属性(attributes)。
课程的经典例子是电子邮件:一封邮件有主题(subject)、正文(body)和一组收件人(recipients),可以按"谁发的、何时发的"进行组织。典型示例还包括 HTML、CSV 文件、JSON。
仓库中 2-Working-With-Data/06-non-relational/PersonsData.json 就是半结构化数据的直观样本:它以firstname、age等键值对(即元数据中的"属性")组织每条记录,层次清晰但并非严格的二维行列表格。
三、分类轴二:数值类型(定量 / 定性)
3.1 定量数据(Quantitative Data)
定量数据是数据集中的数值观测,通常可被分析、测量并用于数学运算。课程示例包括:国家人口、人的身高、公司季度收益。经过进一步分析,定量数据可以用于发现空气质量指数(AQI)的季节趋势,或估算工作日高峰时段交通拥堵的概率。
3.2 定性数据(Qualitative Data)
定性数据(又称类别数据 categorical data)无法像定量观测那样被客观测量,通常是捕捉"某事物质量"的各种主观数据格式,例如产品或过程。课程特别强调一个易错点:有时定性数据也表现为数值,但通常不用于数学运算——比如电话号码、时间戳。
定性数据的典型示例:视频评论、汽车的品牌型号、你最好的朋友最喜欢的颜色。它可用于理解消费者更青睐哪些产品,或识别求职简历中的热门关键词。
关键判断技巧:判断一个数值型字段是"定量"还是"定性",不取决于它是不是数字,而取决于"这个数字是否承载了可运算的量值意义"——电话号码可以排序、但做加减法没有意义,因此属于定性(类别)数据。
四、分类轴三:来源类型(主要 / 次要)
数据源(data source)是数据最初生成或"栖身"的位置,随数据的收集方式与时间而变化。
- 主要数据(Primary Data):由数据使用者(用户)自己生成的数据。课程举例:一群科学家在雨林中自行采集观测记录,即为主要数据。
- 次要数据(Secondary Data):来自某个为通用目的收集数据的来源。上述科学家若决定把数据分享给其他科学家,那么对使用这批数据的后来者而言,它就是次要数据。
此外,课程还梳理了常见数据源形态:数据库是常见来源,依赖数据库管理系统(DBMS)托管维护数据,用户通过查询(queries)命令探索数据;文件类数据源包括音频、图片、视频文件以及 Excel 等电子表格;互联网是托管数据的常见位置;API(应用程序接口)允许程序员创建通过互联网与外部用户共享数据的方式;网页抓取(web scraping)则从网页中提取数据。这些数据源在课程 2-Working-With-Data 的后续章节(关系型数据库、非关系型数据库、用 Python 处理数据、数据准备)中有深入实战讲解。
五、作业逐题解析与参考答案
下面结合上述框架,对作业的 5 个场景逐一分析。每个场景先给出判断理由,再给出答案。
场景 1:被收购公司的客户电话号码电子表格
一家公司被收购后有了母公司。数据科学家收到母公司提供的一份客户电话号码电子表格(spreadsheet)。
- 结构类型:结构化(Structured)。电子表格是课程明确列出的结构化数据示例:行与列组织、每行拥有相同的列集合,且电话号码列通常会施加"仅含数字、不得为空"等规则限制。
- 数值类型:定性(Qualitative)。电话号码虽然由数字构成,但正如课程所强调的,这类数值不会被用于数学运算——对电话号码求和或求平均毫无意义,它是对客户身份的一种类别化描述。
- 来源类型:次要(Secondary)。这批数据并非数据科学家自己采集,而是由母公司为自身业务目的收集后转交的,属于"他人为通用目的收集的数据",因此对使用者而言是次要数据。
场景 2:智能手表的心率原始数据(JSON)
一块智能手表持续采集佩戴者的心率数据,原始数据以 JSON 格式存储。
- 结构类型:半结构化(Semi-Structured)。JSON 是课程列出的半结构化典型示例:它不遵循二维行列表格式,但通过键值对(属性/实体这类元数据)形成清晰、可解析的层次结构。仓库中的 PersonsData.json 正是这种"以属性组织记录"的形态。
- 数值类型:定量(Quantitative)。心率是典型的可测量、可数学处理的数值观测——可以计算均值、最高/最低心率,识别异常波动,这正是健康分析的核心输入。
- 来源类型:主要(Primary)。数据由智能手表的佩戴者(使用者)本人佩戴设备生成,属于使用者自己产生的数据,为原始(raw)状态、未经加工组织,符合主要数据的定义。
场景 3:员工士气工作场所调查(CSV)
一份存储在 CSV 文件中的员工士气工作场所调查。
- 结构类型:半结构化(Semi-Structured)。这是本作业最有迷惑性的一题。课程明确将CSV 文件列入半结构化数据示例——它虽有表格轮廓,但对字段类型、取值规则、层级关系等约束远不如严格的关系型/电子表格结构化数据完整,因此归为半结构化(这一分类遵循课程 Defining Data 的原文界定)。仓库中的 data/form.csv 可作为观察样本:如
birth_month,state,pet这样的列,其取值自由度高、规则松散。 - 数值类型:定性(Qualitative)。员工士气调查本质上捕捉的是主观感受与态度(如满意度评分、开放性问题回答),无法被客观测量,属于捕捉"质量"的主观数据。
- 来源类型:主要(Primary)。调查数据由雇主(数据使用者)面向本组织员工直接采集生成,属于使用者自己生成的数据。
场景 4:太空探测器收集的星系数据库
天体物理学家正在访问一个由太空探测器收集的星系数据库,数据包含每个星系内的行星数量。
- 结构类型:结构化(Structured)。数据库是课程明确列出的结构化数据典型载体:依赖数据库管理系统托管维护,数据以严格的表结构(行与列)组织,并施加字段约束。
- 数值类型:定量(Quantitative)。"每个星系内的行星数量"是标准的可计数、可数学运算的数值观测,可用于统计分布、相关性分析等。
- 来源类型:次要(Secondary)。数据由太空探测器(而非使用它的天体物理学家)收集,天体物理学家是访问者、使用者,因此对他们而言这是次要数据。
场景 5:个人理财 App 的 API 交易数据
一款个人理财应用使用 API 连接用户的金融账户以计算净资产,用户可以以类似电子表格的行列格式查看全部交易。
- 结构类型:结构化(Structured)。虽然数据来自 API(互联网数据源的一种),但呈现给用户的形态是"类似电子表格的行列格式",符合结构化的判定标准。这也说明:分类应基于数据最终的组织形态,而非传输途径。
- 数值类型:定量(Quantitative)。交易金额、账户余额等是典型的可测量、可数学运算的数值(计算净资产本身就是数学运算)。
- 来源类型:主要(Primary)。数据源自用户本人的金融账户,由用户的使用行为产生,对用户而言属于自己生成的数据;App 只是通过 API 将账户数据拉取并可视化。
六、参考答案汇总表与自测
| 场景 | 结构类型 | 数值类型 | 来源类型 |
|---|---|---|---|
| 1. 母公司客户电话号码电子表格 | 结构化 | 定性 | 次要 |
| 2. 智能手表心率 JSON 原始数据 | 半结构化 | 定量 | 主要 |
| 3. 员工士气调查 CSV | 半结构化 | 定性 | 主要 |
| 4. 探测器收集的星系数据库 | 结构化 | 定量 | 次要 |
| 5. 理财 App 的 API 交易数据 | 结构化 | 定量 | 主要 |
对照评分标准(assignment.md 的 Rubric):若能独立完整地给出上述 5 组判断,即达到"Exemplary(典范)"水平。建议先不看答案自行完成作业,再用上表核对——重点复盘场景 3(CSV 为何是半结构化)与场景 1(电话号码为何是定性)这两个最易出错的判断点。
七、拓展挑战:用 Kaggle 数据集巩固分类技能
完成本作业后,课程还提供了一个延伸挑战(Defining Data 的 🚀 Challenge 小节):使用 Kaggle 的开放数据集搜索工具,挑选 3~5 个感兴趣的数据集,并回答两个问题:
- 数据是定量的还是定性的?
- 数据是结构化、非结构化还是半结构化的?
判断时可以运用本文的快速决策链:先看组织形态定结构(行列表 → 结构化;JSON/HTML/CSV → 半结构化;纯文本/音视频 → 非结构化),再看数值是否承载量值意义定类型(可测量可运算 → 定量;类别/编号性数值 → 定性),最后看生成主体定来源(使用者自产 → 主要;他人为通用目的收集 → 次要)。把这套决策链内化后,无论是后续课程中的关系型数据库(05-relational-databases)、非关系型数据库(06-non-relational),还是用 Python 处理数据(07-python),你都能在拿到数据的第一时间做出正确判断。
【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考