跳到正文ChatGPT 说 · Jimmy Huang's BlogChatGPT 说
本页目录· 155 条
0. 本周知识的主线逻辑
这一周的核心不是某一个公式,而是下面这条逻辑链:
一句话总结本周:
Data Integration 是“把多个数据源合成一个统一视图”;Data Enrichment 是“在原有数据上添加额外信息,让它更有分析价值”。
1. Data Transformation 简要回顾
课件开头先回顾了上周的 Data Transformation。
1.1 什么是 Data Transformation?
Data Transformation 是把原始数据清理并转换成更适合分析的形式。
它的目标是让数据:
更可用;
更高效;
更容易分析;
更符合建模假设;
更容易可视化和解释。
1.2 为什么需要 Data Transformation?
常见原因包括:
1.3 Data Transformation 包含什么?
课件提到的主要类型:
这部分只是回顾,Week 10 的重点是后面的 Data Enrichment / Integration。
2. Data Enrichment:数据增强
2.1 什么是 Data Enrichment?
通过从外部来源添加额外的上下文或信息,增强已有数据的质量、深度和价值。
原本你只有“客户姓名和购买记录”,后来你又加上了客户所在地区、年龄段、收入水平、天气、行业信息等,这就是 enrichment。
2.2 Data Enrichment 的三个作用
2.3 Data Enrichment 的例子
Google Knowledge Graph
把人物、地点、事件、组织等知识连接起来,让搜索结果更有语义。
Map mashup,例如 HousingMaps
把房源数据和地图数据结合起来。
TrendMaps
把社交媒体趋势和地理位置结合起来。
它们不是只展示原始数据,而是把外部信息加进来,让原始数据更有意义。
3. Data Integration:数据整合
3.1 什么是 Data Integration?
把来自不同来源的数据合并起来,形成一个统一视图或统一数据集。
一个公司可能有销售系统、客户系统、库存系统、网页日志、Excel 文件、外部 API。如果想统一分析客户行为,就要把这些数据整合到一起。
3.2 Data Integration 的关键点
4. Data Enrichment vs Data Integration
4.1 最简单的区分方法
4.2 它们不是完全割裂的
实际项目中,enrichment 往往需要 integration。
要给客户数据添加地理收入水平,需要先把客户地址数据和外部地理统计数据整合起来,然后才能增强原有客户数据。
5. 为什么 Data Integration 很难?
课件强调:数据整合难,不是因为“合并表”这个动作难,而是因为不同数据源本来就是独立设计的。
5.1 Heterogeneous Data:异构数据
schema;
目标;
业务定义;
数据格式;
数据质量。
例如,一个系统把客户叫 Customer,另一个系统叫 Client,第三个系统可能只存 email。
5.2 Various Formats:格式多样
不同格式意味着不能直接合并,需要解析、转换、映射。
5.3 Incompatible Taxonomies:分类体系不兼容
一个系统认为 “customer” 是注册过账号的人;
另一个系统认为 “customer” 是下过单的人;
第三个系统认为 “customer” 是产生过付款记录的人。
5.4 Time Synchronisation:时间同步问题
一个数据源是 weekly;
一个数据源是 monthly;
一个数据源是 real-time;
一个数据源是历史批处理。
5.5 Legacy Data:遗留数据
old database;
spreadsheets;
ad-hoc files;
旧格式文件。
问题是:旧数据结构可能不规范,但又必须和现代系统数据结合。
5.6 Abstraction Levels:抽象层级不同
5.7 Data Quality:数据质量问题
如果每个来源本来就有错误,整合之后错误可能被放大。
同一个人有多个拼写;
地址缺失;
电话格式不一致;
一个系统更新了,另一个系统没有更新。
5.8 Number of Sources:数据源数量太多
尤其是 web-scale integration,大规模网页或开放数据源整合会非常复杂。
6. Data Enrichment 的步骤
课件给出了 Data Enrichment 的典型流程:
6.1 Define Objectives:定义目标
我现在的数据缺什么?我添加什么信息之后,分析会更有价值?
做精准营销:可能需要 demographic data;
做地理分析:可能需要 geographic data;
做市场趋势分析:可能需要 social media / market data。
6.2 Select Data Sources:选择数据源
reliability;
accuracy;
relevance;
timeliness。
6.3 Integrate Data:整合数据
6.4 Ensure Data Quality:确保数据质量
accuracy;
completeness;
timeliness;
consistency。
6.5 Continuous Updating:持续更新
因此 enrichment 不是一次性动作,而是需要定期更新。
7. Data Integration 的两大类别
课件把 Integration Process 分成两类:
7.1 Schema Integration:结构层面的整合
7.2 Data-level Integration:数据值层面的整合
具体的值、记录、重复行、冗余列、冲突值应该怎么处理?
8. Schema:什么是 Schema?
8.1 在关系型数据库中
有哪些表;
每张表有哪些属性;
属性的数据类型是什么;
表之间的关系是什么。
8.2 在 XML / JSON 中
tags;
classes;
properties;
nested structure。
8.3 在 Data Science 中
所以不要把 schema 只理解成 SQL 数据库中的表结构。
9. 为什么需要 Schema Integration?
不同来源的数据结构不同,但分析时我们希望有一个统一视图。
9.1 Mediated Schema 是什么?
Mediated Schema 可以理解为一个“统一标准结构”。
它不一定是原始数据源本身,而是一个中间层,用来统一表达各个数据源中的信息。
9.2 Schema Mapping 是什么?
建立每个数据源的 schema 和 mediated schema 之间的语义对应关系。
9.3 Schema Mapping vs Schema Matching
10. Schema Integration 的常见问题
10.1 Structure Conflicts:结构冲突
一个数据源是 XML;
一个是 JSON;
一个是 HTML;
一个是 relational database;
一个是半结构化或非结构化数据。
10.2 Naming Conflicts:命名冲突
命名冲突是选择题高频考点,重点是 homonyms 和 synonyms。
10.3 Entity Resolution / Conflict Resolution
1. Different Units:单位不同
Celsius vs Fahrenheit;
AUD vs USD;
kg vs lb。
2. Data Type Heterogeneity:数据类型不同
注意:电话号码通常不适合用 integer,因为可能有前导 0、国家区号、空格、括号。
3. Value Heterogeneity:值表达方式不同
Professor vs Prof;
Street vs St;
Road vs Rd。
4. Level of Abstraction:抽象层级不同
5. Semantic Heterogeneity:语义差异
6. Different Points of Time:时间点不同
fortnight payment;
monthly payment。
11. Schema Matching:字段之间怎么匹配?
11.1 什么是 Semantic Matching?
Semantic Matching 是把 schema S 中的一组元素和 schema T 中的一组元素建立语义联系。
判断两个不同数据源中的字段是否表示同一个真实概念。
11.2 One-to-One Matching
11.3 One-to-Many Matching
目标字段 price 不是源数据中直接有的,而是由 base price 和 tax rate 计算出来的。
选择题中如果出现“字段需要由多个属性组合、计算或拆分得到”,通常是在考 one-to-many / many-to-one matching。
12. Name-Based Matching:基于名字的匹配
12.1 核心思想
Name-Based Matcher 比较字段名或列名,假设名字能反映字段语义。
12.2 常见处理方法
1. Split names:拆分字段名
2. Expand abbreviations:展开缩写
3. Expand synonyms:扩展同义词
4. Use hypernyms / semantic relations:利用上下位词
5. Remove articles, prepositions, conjunctions
12.3 Name-Based Matching 的局限
字段名一样但含义不同:ID;
字段名不同但含义相同:client vs customer;
字段名很模糊:code, type, value。
13. Instance-Based Matching:基于数据值的匹配
13.1 核心思想
Instance-Based Matching / Data-Based Matcher 不只看字段名,还看字段中的实际数据值。
那么它很可能表示电影分级 classification/rating。
13.2 Rule-Based Matching Method
element names;
data types;
structures;
number of sub-elements;
integrity constraints;
value patterns。
优点
relatively inexpensive;
不需要训练数据;
可解释性强。
缺点
不够灵活;
难以充分利用复杂的数据实例;
对格式变化、频繁出现值、异常模式的适应能力有限。
13.3 Learning-Based Matching Method
优点
缺点
需要训练数据;
需要特征设计;
结果可能比人工规则更难解释。
14. Data-Level Integration:数据值层面的整合
14.1 定义
Data-Level Integration 关注的是:
已经进入整合过程的数据内容和值,而不是 schema 结构本身。
15. Attribute-Level Integration:列层面的整合
15.1 核心问题:冗余表示
15.2 Redundancy vs Correlation
15.3 用什么方法检测属性关系?
16. Chi-square Test:卡方检验
Quiz 如果不考计算,重点是理解它“用来判断两个分类变量是否独立”。
16.1 用途
Chi-square test for independence 用于判断两个 categorical variables 是否相关。
Gender 和 Education Level 是否独立?
16.2 假设
16.3 直觉理解
如果两个变量独立,那么观察到的频数应该接近期望频数。
observed frequency 和 expected frequency 差异大,因此两个变量可能不是独立的。
16.4 判断逻辑
16.5 注意选择题陷阱
Chi-square test 用于 categorical variables,不是数值变量线性相关。
它检验的是 association/dependence,不是因果关系。
Reject H0 只能说变量不独立,不能说 A 导致 B。
不 reject H0 也不等于证明完全无关,只是证据不足。
17. Correlation Coefficient:相关系数
17.1 Pearson Correlation Coefficient 是什么?
Pearson correlation coefficient, 记作 r,用于衡量两个数值变量之间的线性关系强度和方向。
17.2 r 的取值范围
17.3 如何解释 r?
17.4 例子
17.5 注意选择题陷阱
Correlation 不等于 causation。
Pearson r 只衡量 linear relationship。
r 接近 0 不代表完全没有关系,可能存在非线性关系。
r 的正负号表示方向,绝对值大小表示强度。
18. Coefficient of Determination:决定系数
18.1 什么是 r² / R²?
Coefficient of determination 表示:
一个变量的方差中,有多少比例可以由另一个变量或回归模型解释。
18.2 直观解释
大约 46% 的 y 的变化可以由 x 的线性关系解释。
18.3 R² 和 regression line 的关系
residuals 很小;
RSS 很小;
R² 更接近 1。
18.4 SSR / RSS / TSS 的概念
18.5 注意选择题陷阱
19. Tuple-Level Integration:行层面的整合
19.1 核心问题:重复记录
Tuple-level integration 关注的是:
19.2 Duplicate:重复记录
duplicate 是行层面问题;
redundancy 更多是列层面问题。
19.3 Inconsistent Update:不一致更新
同一个客户在不同系统里的电话不一样,这就是 inconsistent update。
19.4 Tuple Matching Methods
String Matching;
Data Matching。
20. String Matching:字符串匹配
20.1 问题定义
给定两个字符串集合 X 和 Y,找出所有表示同一实体的字符串对。
20.2 String Matching 的四类 Similarity Measures
21. Edit Distance:编辑距离
21.1 定义
把一个字符串变成另一个字符串所需的最少编辑操作次数。
insertion;
deletion;
substitution。
21.2 直觉例子
21.3 适合什么场景?
21.4 局限
Edit Distance 只看字符层面的转换成本,不一定理解语义。
22. Needleman-Wunsch Measure
课件中把 Needleman-Wunsch 作为 sequence-based similarity measure 的例子。
22.1 核心思想
它本质上是一个 sequence alignment 方法。
match;
mismatch;
gap penalty;
22.2 和 Edit Distance 的区别
Quiz 概念题一般不会要求你计算,只需要知道它属于 sequence-based similarity measure。
23. TF/IDF Measure
23.1 核心思想
TF/IDF 把字符串看作 token 组成的向量。
在当前字符串中出现多的 token;
在整个数据集中比较少见、区分度高的 token。
23.2 通俗例子
但如果一个地址包含比较特殊的街道名或人名,这个 token 对匹配更有帮助。
23.3 TF/IDF 适合什么?
23.4 TF/IDF 属于哪一类?
24. Data Matching:记录匹配
24.1 Data Matching 和 String Matching 的区别
24.2 Data Matching 为什么难?
25. Rule-Based Data Matching
25.1 核心思想
name similarity;
phone similarity;
city similarity;
state similarity。
25.2 通俗例子
如果总分超过某个 threshold,就认为两条记录匹配。
25.3 为什么要加权?
25.4 Sigmoid / Logistic Function 的作用
课件后面展示了把 weighted score 放进类似 sigmoid 的函数:
直觉上,它把综合分数转换成 0 到 1 之间的相似度或匹配概率。
Rule-based matching 可以把多个字段的 similarity score 加权合成一个整体匹配分数,再用 threshold 判断 match / non-match。
26. Learning-Based Data Matching
课件提到 learning-based data matching,包括:
supervised learning;
clustering;
probabilistic approach。
26.1 Supervised Learning:有监督学习
核心思想
yes / 1:这两条记录匹配;
no / 0:这两条记录不匹配。
26.2 特征怎么来?
name similarity;
phone similarity;
city match;
state match;
area code 是否和 city 对应;
address similarity。
然后用 supervised learning algorithm 学习判断规则。
26.3 决策树例子
模型不是手写固定权重,而是从训练数据中学习哪些条件更能判断匹配。
26.4 Clustering Approach:聚类方法
同一个 cluster 里的 tuples 被认为是匹配的,属于同一个实体。
先根据已有相似度形成初始 cluster;
利用已有 cluster 信息继续改进;
最后把同一 cluster 中的记录合并成一个 canonical tuple / entity profile。
26.5 Canonical Tuple / Entity Profile
把同一个实体的多条记录合并后,形成一条代表该实体的标准记录。
26.6 Rule-Based vs Learning-Based
27. 最容易混淆的概念对比
27.1 Enrichment vs Integration
27.2 Schema Integration vs Data-Level Integration
27.3 Attribute-Level vs Tuple-Level
27.4 Redundancy vs Duplicate
27.5 Homonyms vs Synonyms
27.6 Name-Based vs Instance-Based Matching
27.7 String Matching vs Data Matching
27.8 Chi-square vs Correlation Coefficient
27.9 r vs R²
28. 选择题常见关键词判断
28.1 看到这些词,通常想到 Data Enrichment
28.2 看到这些词,通常想到 Data Integration
combine sources
unified view
merge schemas
reconcile conflicts
centralised repository
multiple databases
data warehouse
28.3 看到这些词,通常想到 Schema Integration
schema conflict
table structure
attribute names
data types
semantic mapping
mediated schema
XML/JSON/RDBMS structure
28.4 看到这些词,通常想到 Entity Resolution / Tuple Matching
same real-world entity
duplicate records
inconsistent updates
record linkage
tuple pairs
data matching
28.5 看到这些词,通常想到 String Matching
edit distance
TF/IDF
token overlap
sequence-based
phonetic similarity
name similarity
29. 重点概念的“一句话版”
30. Quiz 前最后复习清单
必须会区分
Data Enrichment vs Data Integration
Schema Integration vs Data-Level Integration
Attribute-Level vs Tuple-Level
Redundancy vs Duplicate
Homonyms vs Synonyms
Name-Based Matching vs Instance-Based Matching
String Matching vs Data Matching
Rule-Based Matching vs Learning-Based Matching
Chi-square vs Correlation Coefficient
r vs R²
必须理解
为什么 data integration 很难;
schema conflict 有哪些类型;
entity resolution 为什么重要;
duplicate records 为什么会造成 inconsistent update;
edit distance 的基本思想;
TF/IDF 为什么适合 token/text similarity;
supervised learning data matching 需要 labelled tuple pairs;
clustering matching 会把同一个实体的记录放进同一个 cluster;
canonical tuple 是整合后的标准实体记录。
不需要死算但要懂含义
Chi-square statistic 大 → observed 和 expected 差异大 → 更可能 reject independence;
Pearson r 接近 +1/-1/0 分别代表什么;
R² 是解释比例;
weighted similarity score 可以通过 threshold 判断 match;
sigmoid 可以把综合分数转成 0 到 1 的相似度/概率。
31. 超短版总结
当数据来自多个来源时,我们要通过 Data Integration 统一结构和内容;通过 Data Enrichment 添加外部信息提升价值;整合过程中先解决 schema 层面的字段/结构匹配,再解决 data-level 层面的冗余字段、重复记录和实体匹配问题。
真实世界的数据来自很多地方
↓
不同数据源的字段名、结构、单位、格式、时间范围、质量都不一样
↓
如果想把它们放在一起分析,就需要 Data Integration
↓
如果想让原有数据变得更有价值,就需要 Data Enrichment
↓
整合时主要有两个层面的问题:
1. Schema Integration:字段/表/结构怎么对齐?
2. Data-level Integration:具体数据值、重复记录、冗余字段怎么处理?
↓
核心技术:
Schema Matching / Entity Resolution / String Matching / Data Matching
Data Integration 是技术过程;
Data Enrichment 是增强数据价值的目标或结果之一。
Define Objectives
↓
Select Data Sources
↓
Integrate Data
↓
Ensure Data Quality
↓
Continuous Updating
Extract → Transform → Load
Integration Process
├── Schema Integration
└── Data-level Integration
Customer(customer_id, name, address)
Order(order_id, customer_id, date, amount)
Source 1 / Source 2 / Source 3 ...
↓
Wrapper / Extractor
↓
Transform / Mapping
↓
Mediated Schema or Warehouse
↓
Unified query / analysis
Matching = 找到谁和谁像;
Mapping = 规定怎么从源结构变成目标结构。
Items.price ≈ Products.basePrice × (1 + Locations.taxRate)
customer_name ≈ clientName
price ≈ cost
DOB ≈ date_of_birth
Data-level Integration
├── Attribute-level integration
└── Tuple-level integration
chi-square statistic > critical value
p-value < significance level
TSS = SSR + RSS
R² = 1 - RSS / TSS
Set-based Similarity Measures
Dan Smith vs Daniel W. Smith
phone similar + city/state consistent
overall similarity = weighted sum of individual similarities
0.3 × name similarity
+ 0.3 × phone similarity
+ 0.1 × city similarity
+ 0.3 × state similarity
sim(x, y) = 1 / (1 + e^(-z))
(record x, record y, label)
if name similarity > 0.8:
if phone similarity > 0.8:
yes
else:
check other similarities
else:
no
Cluster C1 = {x1, x2}
Cluster C2 = {x4, x5}
Cluster C3 = {x3, x4, x5}
Enrichment = add value/context.
Integration = combine sources.
Schema integration = align structures/attributes.
Data-level integration = fix values/redundancy/duplicates.
Attribute-level = columns.
Tuple-level = rows.
Matching = decide which fields/records refer to the same thing.
{
"user": {
"id": 123,
"name": "Alice"
}
}