跳到正文 FIT5196 Seminar Week 8 · Jimmy Huang's Blog
← Week 8 Data Cleansing 学习 › C6001 › 2026 S1 › FIT5196 Data wrangling › Week 8 Data Cleansing FIT5196 Seminar Week 8 FIT5196 Seminar Week 8 本页目录· 81 条 ChatGPT 说 › Learning Outcomes 完成本周 Seminar 后,需要能够:
解释数据质量(Data Quality)和数据清洗(Data Cleansing)的含义,以及为什么数据清洗是数据整理(Data Wrangling)中的关键步骤。
理解数据清洗的一般流程:数据审计(Data Audit)、定义清洗目标(Defining Cleansing Goals)、制定清洗计划(Data Cleansing Plan)、备份数据(Backup Data)、执行清洗操作、验证(Verification)、文档记录与报告、复盘与预防措施。
区分常见数据质量问题:重复数据(Duplicated Data Records)、不准确数据(Inaccurate Data)、不一致数据(Inconsistent Data)、不完整数据(Incomplete Data)、无关数据或异常点(Irrelevant Data / Outliers)。
掌握重复数据检测与处理的常见方法,包括人工检查、排序、SQL、哈希(Hashing)、透视表(Pivot Tables)、脚本编程和机器学习方法。
理解缺失数据(Missing Data)的原因、危害、缺失机制和处理方法。
区分三类缺失机制:随机缺失(Missing at Random, MAR)、完全随机缺失(Missing Completely at Random, MCAR)、非随机缺失(Missing Not at Random, MNAR)。
理解删除法(Deletion Methods)和插补法(Imputation Methods)的基本思想、适用前提与风险。
理解异常点(Outliers)的定义、影响、类型,以及单变量和多变量异常点检测方法。
将本周内容与 Assessment 2 联系起来:先识别数据问题,再选择合适方法修复,并通过验证和交叉检查避免“修错数据”。
本周在课程中的位置 本周主题是 Data Cleansing ,属于数据整理流程中的数据预处理(Data Pre-processing)阶段。课件中的流程图把数据整理过程串起来:
可以这样理解:
本页目录 下一周会进入数据转换(Data Transformation),即在清洗后的数据基础上做格式、结构、特征等进一步处理。
课堂中老师也强调,本周内容和 Assessment 2 关系很密切:Assessment 2 会围绕脏数据、缺失数据、异常点等问题展开,需要根据数据逻辑选择正确的清洗方法,而不是只机械套用代码。
1. 数据质量与数据清洗概览
1.1 数据质量(Data Quality)是什么 数据质量指的是数据本身的状态是否足够可靠,是否能支持后续分析、建模和决策。课件中提到的数据质量通常受到以下因素影响:
准确性(Accuracy):数据是否正确反映真实情况。
完整性(Completeness):关键字段是否缺失。
可靠性(Reliability):数据来源和记录过程是否可信。
相关性(Relevance):数据是否与当前分析目标有关。
及时性(Timeliness):数据是否足够新,是否仍然有效。
一致性(Consistency):不同字段、不同来源或不同系统中的数据是否互相矛盾。
高质量数据对企业、政府和组织都很重要,因为它直接影响:
可以这样理解:数据质量差并不只是“表格不好看”,而是会导致后面的分析结论、模型结果和业务判断都可能出错。
1.2 数据清洗(Data Cleansing)是什么 数据清洗,也叫数据清理(Data Cleaning),是数据整理中的基础任务。它的核心任务是:
数据清洗不是简单地“把脏数据删掉”。更准确地说,它是一套判断过程:
哪些问题可以修?
哪些问题应该保留但标记?
哪些问题必须删除?
修复后是否真的提高了数据质量?
课堂中特别强调: 做了清洗不等于提高了质量 。如果修复方式错误,反而可能制造新的错误,导致后续分析结果更差。
2. 数据清洗流程(Data Cleansing Process) 课件中的数据清洗流程不是一次性线性操作,而是一个带有复盘和预防机制的循环流程。
2.1 总体流程 数据审计(Data Audit)
定义清洗目标(Defining Cleansing Goals)
制定清洗计划(Data Cleansing Plan)
备份数据(Backup Data)
执行数据清洗操作(Data Cleansing Operations)
验证清洗结果(Verification)
文档记录与报告(Documentation & Reporting)
复盘(Review)
实施预防措施(Implementation of Preventative Measures)
先理解数据;
再决定怎么清;
清洗前备份;
清洗后验证;
最后记录过程并总结如何避免类似问题再次发生。
3. 数据审计(Data Audit)
3.1 数据审计的作用 数据审计是清洗之前的诊断阶段。它的目标是 全面检查数据的健康状况 ,判断数据是否准确、完整、一致和可靠。
课堂中老师举过类似例子:单独看 gender 或 title 时,每个字段的值可能都在合法范围内;但如果一个记录里同时出现“male”和“Miss”,就需要跨字段判断,这类问题不能只靠单列检查发现。
3.2 数据审计的目标 识别数据质量问题:发现错误、不一致、重复、缺失和其他异常。
评估数据完整性:判断关键字段是否缺失或不完整。
评估数据一致性:检查不同来源、不同系统或不同字段之间是否互相矛盾。
理解数据使用方式:知道谁使用这些数据、用于什么决策、需要哪些字段。
合规检查:确认数据管理是否符合隐私和数据保护要求。
3.3 数据审计的方法 建立数据质量度量指标,例如准确性、完整性、一致性、可靠性。
画出数据所在位置和流动路径,也可以理解为数据流图(Data Flow Diagram)。
与利益相关者沟通,了解他们对数据的需求、问题和期望。
抽取有代表性的样本做详细检查,而不是总是检查完整数据集。
使用软件工具自动扫描常见问题。
对复杂或关键情况进行人工复核,因为自动化工具不一定能理解业务语境。
课堂中老师补充说明:实际企业中,数据可能来自网站、交易系统、数据库、数据仓库或不同部门。不同部门关心同一批原始数据中的不同信息,例如库存团队关心库存量,销售团队关心销量,市场团队关心客户行为。因此,做数据审计时不能只看表格本身,还要理解数据从哪里来、怎么存、被谁用、用于什么决策。
3.4 常见数据审计工具 课堂中也提到,很多公司仍然会使用 Excel,因为它便于查看、筛选、排序和做简单统计。工具不是重点,重点是能否结合数据背景发现真正的问题。
4. 定义清洗目标(Defining Cleansing Goals)
4.1 为什么要先定义目标 清洗要达到什么标准;
哪些问题最重要;
哪些字段必须优先修;
如何判断清洗成功;
清洗结果是否满足业务需求。
如果没有目标,清洗就会变成随意修改数据,甚至可能把正确数据改错。
4.2 清洗目标应包括什么 理解业务需求(Understanding Business Requirements)
识别数据质量维度(Identifying Data Quality Dimensions)
设定具体、可衡量目标(Setting Specific, Measurable Goals)
确定优先级(Prioritizing Goals)
创建路线图(Creating a Roadmap)
持续改进(Continuous Improvement)
沟通和文档记录(Communication and Documentation)
课堂中老师特别强调: 清洗顺序很重要 。如果先用一个错误字段去修复另一个字段,就可能扩大错误。例如原本只有 20 个错误,错误的修复顺序可能变成 50 个错误。因此,要优先处理自己最有把握、最稳定、可作为基准的字段。
5. 数据清洗计划(Data Cleansing Plan)
5.1 清洗计划的意义 数据清洗计划是对整个清洗过程的结构化安排。它能保证清洗工作:
有明确目标;
有合理顺序;
有工具和资源支持;
有时间安排;
有验证和维护机制;
有文档记录,便于团队协作和复现。
5.2 清洗计划的组成 课堂中老师提醒:Assessment 2 不要“做一步想一步”。应该先读任务、组队、开会讨论整体路线图,再分配任务。因为任务之间可能有关联,如果没有全局计划,很容易出现前一步清洗影响后一步判断的情况。
6. 备份数据(Backup Data) 备份数据是数据清洗前必须做的步骤。它的作用不仅是防止文件损坏,更重要的是保留清洗过程中的关键版本。
6.1 为什么备份重要 风险缓解(Risk Mitigation)
数据完整性保障(Data Integrity Assurance)
业务连续性(Operational Continuity)
数据处理灵活性(Flexibility in Data Handling)
对数据质量改进更有信心
法律和合规保护
6.2 Assessment 2 中的备份建议 课堂中特别强调,Assessment 2 中备份非常重要,因为你会不断修改数据文件:
不只是备份原始文件,原始文件通常可以重新下载;
真正需要备份的是每个关键清洗步骤后的版本;
每修复一个重要字段或一类问题,都应保存一个新版本;
文件名中最好带版本号,例如 missing_cleaned_v1.csv、 dirty_fixed_level_v2.csv;
团队协作时尽量使用有版本历史的平台,不要只靠邮件附件来回传文件。
可以这样理解:备份不是“保险箱”,而是你在清洗路线上的“存档点”。如果后面发现修错了,可以回到可靠版本重新开始。
7. 数据清洗操作(Data Cleansing Operations) 课堂中特别提醒:清洗时要尽量保留有用信息。例如文本中出现非英文字符时,不一定要删除整条记录;如果只是一两个字符或词有问题,应尽量只移除问题部分,保留剩余可用于 EDA 的信息。
8. 删除重复数据(Removing Duplicates)
8.1 重复数据是什么 重复数据指的是同一实体或同一记录被重复存储。重复可能是完全相同的行,也可能是“近似重复”:
如果数据表中有主键(Primary Key),可以优先检查主键是否重复。
8.2 常见重复检测方法 人工检查和删除(Manual Review and Removal) 排序后顺序检查(Sorting and Sequential Check) 去重软件(Deduplication Software) 数据库查询(Database Queries / SQL) 哈希技术(Hashing Techniques) 透视表(Pivot Tables) 脚本和编程(Scripting and Programming),例如 Python pandas 机器学习算法(Machine Learning Algorithms)
8.3 SQL 检测重复的基本思路 课件中展示了用 SQL 识别、查看和删除重复记录的思路。核心逻辑是:先按能够定义“重复”的字段分组,再用 COUNT(*) 找出出现次数大于 1 的组合。
删除重复项时通常会保留一个代表记录,例如保留最小 CustomerID 的那条:
实际使用时要先备份,并确认哪些字段真正定义了“同一条记录”。不能因为两个名字相同就直接删除,因为可能是不同人。
8.4 复杂重复:近似匹配与机器学习 如果重复记录不是完全相同,就需要更复杂的方法,例如:
记录链接技术(Record Linkage Techniques)
基于相似度的聚类(Similarity-based Clustering)
文本相似度度量(Text Similarity Measures)
模糊匹配算法(Fuzzy Matching Algorithms)
深度学习模型(Deep Learning Models)
9. 验证清洗结果(Verification) 验证是清洗后的质量检查,确保清洗结果可以用于后续处理、分析或决策。
准确性检查(Accuracy Check):确认修改、删除和新增是否正确完成。
一致性验证(Consistency Validation):检查同一数据集内部以及不同系统之间是否一致。
完整性验证(Completeness Verification):确认没有误删必要数据,缺失问题已适当处理。
质量保证(Quality Assurance):判断清洗后的数据是否达到预设质量标准。
课堂中老师建议:可以用不同方法交叉验证。如果两个组员用不同方法得到同样结果,正确概率会更高;如果结果不同,就要回头检查假设、字段关系和修复逻辑。
10. 缺失数据(Missing Data)
10.1 缺失值产生的原因 设备错误(Equipment Errors)
调查参与者缺席(Absence of Survey Participants)
偏远地区 GPS 信号不可用(Unavailability of GPS Signals)
情况变化,例如死亡、毕业等(Change of Circumstances)
问卷中的过滤题(Filter Questions),例如只有已婚者才需要回答某组问题。
缺失值不一定都是“错误”。有些缺失是合理的,例如未婚者没有配偶相关信息;但有些缺失会影响分析,需要判断原因和机制。
10.2 为什么缺失数据是问题 大多数标准统计方法默认所有变量都有完整信息。如果直接忽略或不恰当地处理缺失数据,可能导致:
偏差估计(Biased Estimation):样本均值、方差可能被高估或低估。
错误推断(Incorrect Inferences):输入数据有问题,输出结论也会有问题,即 “garbage in, garbage out”。
样本量下降:删除缺失记录可能让可用数据大幅减少。
模型不稳定:训练集信息不足或缺失机制未被考虑,会影响预测结果。
11. 缺失机制(Missing Data Mechanisms) 缺失机制描述的是: 一个值为什么会缺失,以及缺失概率和哪些变量有关 。选择缺失值处理方法前,需要先理解缺失机制。
Y = ( Y o b s ; Y m i s s ) Y = (Y_{obs}; Y_{miss}) Y = ( Y o b s ; Y mi ss ) :完整数据可以分为已观测部分和缺失部分。 Y o b s Y_{obs} Y o b s :已观测到的数据。 Y m i s s Y_{miss} Y mi ss :缺失的数据。
11.1 MAR:随机缺失(Missing at Random) MAR 指的是: 某个变量是否缺失,与其他已观测变量有关,但不直接取决于该变量本身的缺失值 。
p ( B ∣ Y o b s , Y m i s s ) = p ( B ∣ Y o b s , η ) p(B \mid Y_{obs}, Y_{miss}) = p(B \mid Y_{obs}, \eta) p ( B ∣ Y o b s , Y mi ss ) = p ( B ∣ Y o b s , η ) 意思是:缺失概率可以 由已观测数据解释,而不需要依赖缺失值本身 。
可以这样理解:如果工作表现评分是否缺失,可能和已经观测到的 IQ、年龄、组别等有关,而不是和缺失的评分本身直接有关,这就接近 MAR。
实际问题是:我们通常无法完全证明缺失只和已观测变量有关,所以 MAR 在实践中往往是一种合理假设,而不是可以直接确认的事实。
11.2 MCAR:完全随机缺失(Missing Completely at Random) MCAR 指的是: 缺失概率既不依赖已观测变量,也不依赖缺失变量本身 。
p ( B ∣ Y o b s , Y m i s s ) = p ( B ∣ η ) p(B \mid Y_{obs}, Y_{miss}) = p(B \mid \eta) p ( B ∣ Y o b s , Y mi ss ) = p ( B ∣ η ) 意思是:数据缺失与数据内容没有关系, 只是随机发生 。
MCAR 是比 MAR 更严格的条件。它比较理想,但现实中不一定常见。课件指出,MAR 和 MCAR 在某些情况下可以被视为可忽略缺失机制(Ignorable Missingness),但仍要谨慎验证。
11.3 MNAR:非随机缺失(Missing Not at Random) MNAR 指的是: 缺失概率与变量自身的真实值有关,即使控制了其他变量后仍然如此 。
p ( B ∣ Y o b s , Y m i s s , η ) p(B \mid Y_{obs}, Y_{miss}, \eta) p ( B ∣ Y o b s , Y mi ss , η ) 可以这样理解:如果收入越高的人越不愿意填写收入,或者成绩越差的人越不愿意提交成绩,那么缺失本身就和真实值有关,这就是 MNAR。
11.4 三种缺失机制对比
12. 缺失数据模式(Missing Data Patterns) 缺失数据模式指的是数据集中观测值和缺失值的排列方式。课件列出三种模式:
理解缺失模式有助于选择处理方法。例如单变量缺失可能适合用其他字段预测;一般模式可能需要更复杂的插补策略。
13. 缺失数据处理方法 本周课件重点讲了删除法和单一插补(Single Imputation)。
14. 删除法(Deletion Methods)
14.1 列表删除(List-wise Deletion / Complete-case Analysis) 列表删除指的是:只要一条记录有一个或多个缺失值,就删除整条记录。
简单方便;
所有分析使用同一批完整样本;
实现成本低。
假设数据是 MCAR,否则可能产生偏差;
缺失率越高、变量越多,样本量减少越严重;
可能删除大量仍然有用的信息。
14.2 成对删除(Pairwise Deletion / Available-case Analysis) 成对删除指的是:不同分析使用不同的可用样本。例如计算变量 A 和 B 的相关时,只删除 A 或 B 缺失的记录,而不删除其他变量缺失的记录。
15. 插补法(Imputation Methods)
15.1 单一插补(Single Imputation) 单一插补为每个缺失点生成一个替代值,使数据集变得完整。
可能产生有偏参数估计;
往往低估标准误;
容易让数据看起来比真实情况更确定。
15.2 均值插补(Mean Imputation) μ c o m p l e t e = 10.35 , μ m i s s = 11.7 , μ i m p u t e = 11.7 \mu_{complete}=10.35,\quad \mu_{miss}=11.7,\quad \mu_{impute}=11.7 μ co m pl e t e = 10.35 , μ mi ss = 11.7 , μ im p u t e = 11.7
15.3 回归插补(Regression Imputation) 用完整记录估计一个回归方程;
用方程为缺失记录生成预测值。
课件中的例子是用 IQ 预测 Job Performance:
J P i = β ^ 0 + β ^ 1 I Q i JP_i = \hat{\beta}_0 + \hat{\beta}_1 IQ_i J P i = β ^ 0 + β ^ 1 I Q i J P i = − 2.065 + 0.123 ( I Q i ) JP_i = -2.065 + 0.123(IQ_i) J P i = − 2.065 + 0.123 ( I Q i ) 相比均值插补,回归插补能利用变量之间的关系,因此通常更合理。但它也不一定是最优方法,因为真实关系可能不是线性的。
15.4 随机回归插补(Stochastic Regression Imputation) 随机回归插补 在回归预测值的基础上加入随机残差,用来恢复数据中原本的变异性 。
用完整变量建立回归模型;
生成缺失变量的预测值;
给每个预测值加入服从正态分布的残差项。
P i = β ^ 0 + β ^ 1 I Q i + z i P_i = \hat{\beta}_0 + \hat{\beta}_1 IQ_i + z_i P i = β ^ 0 + β ^ 1 I Q i + z i z i ∼ N o r m a l ( 0 , σ J P ∣ I Q 2 ) z_i \sim Normal(0, \sigma^2_{JP|IQ}) z i ∼ N or ma l ( 0 , σ J P ∣ I Q 2 ) 课件指出,在本章介绍的方法中,随机回归插补是在 MAR 缺失机制下能够给出无偏参数估计的方法。
可以这样理解:普通回归插补只给“预测线上的点”,随机回归插补则承认真实数据会围绕预测线波动,因此更能保留原始数据的自然变异。
16. 如何评价缺失数据处理方法
16.1 最小化偏差(Minimise Bias)
16.2 最大化使用可用信息(Maximise the Use of Available Information) 好的方法应尽量避免丢弃数据,同时充分利用已观测信息来提高估计效率。
16.3 给出合理的不确定性估计(Yield Good Estimates of Uncertainty) 好的方法不仅要估计数值,还要给出合理的标准误、置信区间和 p 值。只填一个看起来合理的值,但低估不确定性,并不是好方法。
课堂中老师补充:在 Assessment 2 中,缺失值通常“容易找到,但不容易修正确”。需要用已观测部分训练和测试模型,不能用真正缺失的部分做测试,因为那里没有 ground truth。老师还提到,如果使用模型预测缺失值,应关注测试表现,例如 R²,低于要求时应换方法或重新设计特征。
17. 异常点(Outliers)
17.1 异常点的定义 课件引用 Hawkins 的定义:异常点是明显偏离其他观测值的记录,以至于让人怀疑它可能由不同机制生成。
更直观地说:异常点是 在一个数据集合中,与大多数点的正常行为明显不一致的数据点 。
真实但罕见的事件;
数据录入或测量错误;
系统异常;
欺诈或攻击行为;
需要重点分析的特殊案例。
17.2 异常点可能有价值 入侵检测系统(Intrusion Detection Systems):异常系统调用、网络流量或用户行为可能表示攻击。
信用卡欺诈(Credit-card Fraud):异常大额交易或异常地点消费可能表示盗刷。
医学分析(Medical Analysis):MRI、PET、ECT 中的异常模式可能反映疾病。
执法与金融监管(Law Enforcement):异常交易、保险理赔或金融活动可能表示欺诈。
所以,异常点处理 不能简单等同于删除。要先判断它是错误数据,还是有业务意义的异常信号 。
17.3 异常点的影响 课堂中特别强调:均值和标准差对异常点非常敏感。一个极端值可能让均值和标准差明显改变,因此很多基于均值和标准差的方法也会受影响。
18. 异常点类型
18.1 单变量异常点(Univariate Outlier) 单变量异常点只涉及一个变量的分布。例如一个字段大多数值在 5 到 10 之间,但突然出现 500,就可能是单变量异常点。
18.2 多变量异常点(Multivariate Outlier) 多变量异常点发生在多维空间中。 单独看每个字段可能都正常,但组合起来不合理 。
课堂中老师提醒:Assessment 2 的异常点不能只看单个字段。很多异常需要结合多个属性判断。
19. 单变量异常点检测(Univariate Outlier Detection)
19.1 基本形式 给定观测序列 { x k } \{x_k\} { x k } 、参考值 x 0 x_0 x 0 、变异尺度 ζ \zeta ζ 和阈值 t t t ,如果满足下面条件,就可视为异常点候选:
∣ x k − x 0 ∣ > t ζ |x_k - x_0| > t\zeta ∣ x k − x 0 ∣ > tζ
19.2 参考值和变异尺度的选择 MAD(Median Absolute Deviation)标度估计为:
S = 1.4826 × m e d i a n ( ∣ x k − x † ∣ ) S = 1.4826 \times median(|x_k - x^\dagger|) S = 1.4826 × m e d ian ( ∣ x k − x † ∣ ) 四分位距(Interquartile Range, IQR)为:
I Q R = Q 3 − Q 1 IQR = Q3 - Q1 I QR = Q 3 − Q 1
20. 常见异常点检测规则
20.1 3σ 编辑规则(The 3σ Edit Rule) 如果数据近似服从独立同分布的高斯分布(Gaussian Distribution),均值为 μ \mu μ ,标准差为 σ \sigma σ ,那么距离均值超过 3 个标准差的点出现概率约为 0.3%。
∣ x k − x ˉ ∣ > 3 σ |x_k - \bar{x}| > 3\sigma ∣ x k − x ˉ ∣ > 3 σ 问题是:如果数据中已经有异常点,均值和标准差本身会被异常点拉偏,所以 3σ 规则可能不够稳健。
20.2 Hampel 标识器(The Hampel Identifier) Hampel 方法用中位数和 MAD 替代均值和标准差:
x 0 = x † x_0 = x^\dagger x 0 = x † ζ = S = 1.4826 × m e d i a n ( ∣ x k − x † ∣ ) \zeta = S = 1.4826 \times median(|x_k - x^\dagger|) ζ = S = 1.4826 × m e d ian ( ∣ x k − x † ∣ ) ∣ x k − x † ∣ > t S |x_k - x^\dagger| > tS ∣ x k − x † ∣ > tS 中位数比均值更不容易被极端值拉偏 ;
MAD 比标准差更稳健
缺点是:如果超过 50% 的观测值完全相同,MAD 可能等于 0,从而导致方法失效或难以使用。
20.3 基于四分位数和箱线图的检测(Quartile-based Detection and Boxplots) I Q R = Q 3 − Q 1 IQR = Q3 - Q1 I QR = Q 3 − Q 1 x † = Q 3 + Q 1 2 x^\dagger = \frac{Q3 + Q1}{2} x † = 2 Q 3 + Q 1 Q 3 = x † + I Q R 2 Q3 = x^\dagger + \frac{IQR}{2} Q 3 = x † + 2 I QR Q 1 = x † − I Q R 2 Q1 = x^\dagger - \frac{IQR}{2} Q 1 = x † − 2 I QR ∣ x k − x † ∣ > t × I Q R |x_k - x^\dagger| > t \times IQR ∣ x k − x † ∣ > t × I QR x k > Q 3 + t × I Q R ⇒ x k is an upper outlier x_k > Q3 + t \times IQR \Rightarrow x_k \text{ is an upper outlier} x k > Q 3 + t × I QR ⇒ x k is an upper outlier x k < Q 1 − t × I Q R ⇒ x k is a lower outlier x_k < Q1 - t \times IQR \Rightarrow x_k \text{ is a lower outlier} x k < Q 1 − t × I QR ⇒ x k is a lower outlier 课堂中特别提醒:箱线图(Boxplot)主要用于可视化异常点候选。它可以帮助你发现可疑点,但不能只凭箱线图直接断定最终异常点。Assessment 中如果只用箱线图报告异常点,很容易失败,因为它只是 candidate set,不是最终证明。
21. 多变量异常点检测(Multivariate Outlier Detection) 多变量异常点不能只看一个字段,需要看多个属性之间的联合关系。课件介绍了两类方法。
21.1 线性模型(Linear Models) 线性模型认为数据大致服从某种线性关系。异常点可以通过残差(Residuals)衡量,也就是数据点到模型预测超平面的距离。
y = ∑ i = 1 d w i x i + w d + 1 + ϵ j y = \sum_{i=1}^{d} w_i x_i + w_{d+1} + \epsilon_j y = i = 1 ∑ d w i x i + w d + 1 + ϵ j ∑ j ϵ j 2 = ∑ j ( ( ∑ i = 1 d w i x j , i + w d + 1 ) − y j ) 2 = ∣ ∣ D w − y ∣ ∣ 2 \sum_j \epsilon_j^2 = \sum_j \left(\left(\sum_{i=1}^{d} w_i x_{j,i} + w_{d+1}\right) - y_j\right)^2 = ||Dw-y||^2 j ∑ ϵ j 2 = j ∑ ( ( i = 1 ∑ d w i x j , i + w d + 1 ) − y j ) 2 = ∣∣ D w − y ∣ ∣ 2 w = ( D T D + α I ) − 1 D T y w = (D^T D + \alpha I)^{-1}D^T y w = ( D T D + α I ) − 1 D T y D D D 是 N × ( d + 1 ) N \times (d+1) N × ( d + 1 ) 的数据矩阵; 残差越大,越可能是异常点。
课件图中展示了“有异常点”和“无异常点”时回归线的差异:异常点会明显改变回归线的方向,因此会影响模型估计。
21.2 基于邻近性的方法(Proximity-based Models) 基于邻近性的方法把异常点定义为“不在高密度区域中的点”。常见思路包括:
可以这样理解:线性模型看“点是否偏离预测关系”,密度/聚类方法看“点是否远离大多数数据点”。
22. Assessment 2 相关提醒 课堂中老师多次把本周内容和 Assessment 2 联系起来,重点提醒如下。
22.1 Assessment 2 的数据会故意有质量问题 老师提到 Assessment 2 会涉及三类文件和三类任务:
这样设计是为了把任务拆开,避免所有问题混在一起无法下手。
22.2 需要先理解数据逻辑,再修复 不要只看某个字段是否在合法范围内,还要看字段之间是否逻辑一致。例如:
22.3 修复顺序会影响最终答案 如果用错误字段作为基准去修另一个字段,可能会制造更多错误。建议:
先找最容易确认的问题;
先处理最有把握、最稳定的字段;
对关键字段做交叉检查;
团队内部先达成一致,再提交一个最终方案。
22.4 缺失值容易找,但不容易正确填补 老师强调:缺失值通常很容易发现,但难点在于选择正确的插补方法。均值插补只是 baseline,通常不是好方案。更复杂的方法可能更准确,但需要通过测试表现证明。
22.5 异常点是最难的任务之一 老师提醒:异常点检测不能只看单变量,尤其是 Assessment 中可能需要结合多个属性。箱线图只能用于可视化候选点,不能作为最终唯一依据。检测到异常点后,还要从输出文件中删除,否则输出仍然包含异常记录。
22.6 代码、引用和 AI 使用记录要可追踪 课堂中还提醒:Assessment 中如果使用参考代码、外部资料或 AI 辅助,需要保留引用和使用记录。尤其是如果声称某段思路或代码来自 AI,那么提交的 AI history 中必须能找到对应内容。
23. 本周内容的学习重点整理
23.1 数据清洗不是单纯删数据 清洗的目标是提高数据质量,而不是让数据变少。能修复的信息应尽量修复;不能可靠修复或确实无关的数据才考虑删除。
23.2 自动化工具不能替代业务理解 工具可以帮助发现重复、缺失和格式问题,但很多不一致问题需要业务逻辑判断。例如跨字段矛盾、实体关系异常、时间顺序不合理等。
23.3 缺失值处理要考虑缺失机制
23.4 异常点要先判断意义 异常点可能是错误,也可能是重要信号。处理前要判断:
它是否由录入错误或测量错误产生?
它是否代表真实但罕见的现象?
它是否会严重影响模型或统计分析?
是否有足够理由删除?
23.5 任何清洗都要验证 是否改对;
是否误删;
是否引入新错误;
是否满足输出格式和任务要求;
是否能被别人复现。
Summary Week 8 的核心是 Data Cleansing 。本周从数据质量出发,讲解了清洗流程、数据审计、清洗目标、清洗计划、备份、重复数据处理、缺失数据处理和异常点检测。整体逻辑是:先理解数据和业务背景,再识别质量问题,选择合适方法修复,最后通过验证确认清洗是否真正提高了数据质量。
重复数据处理 :可以通过排序、SQL、哈希、透视表、Python 或机器学习方法识别,复杂重复需要考虑相似度和实体匹配。
缺失数据处理 :必须先理解 MCAR、MAR、MNAR 等缺失机制,再选择删除法、均值插补、回归插补或随机回归插补等方法。
异常点检测 :要区分单变量和多变量异常点,理解 3σ、Hampel、IQR / Boxplot、线性模型和密度 / 聚类方法的作用与局限。
对 Assessment 2 来说,本周内容非常关键。老师强调:不要只机械运行代码;要理解字段逻辑、修复顺序、模型选择和验证方法。缺失值和异常点尤其需要谨慎处理,箱线图只能作为可视化候选,不能作为最终唯一判断依据。最终目标不是“做过清洗”,而是提交一个结构正确、问题修复正确、过程可解释、结果可验证的数据集。
Data Discovery
↓
Data Collection
↓
Data Cleaning / Data Pre-processing
↓
Data Transformation
↓
Data Enrichment
↓
Data Validation
↓
Data Storing-- 识别重复组合 SELECT FirstName, LastName, Email, SignupDate, COUNT(*) AS duplicate_count FROM Customers GROUP BY FirstName, LastName, Email, SignupDate HAVING COUNT(*) > 1; -- 查看具体重复记录 SELECT * FROM Customers WHERE (FirstName, LastName, Email, SignupDate) IN ( SELECT FirstName, LastName, Email, SignupDate FROM Customers GROUP BY FirstName, LastName, Email, SignupDate HAVING COUNT(*) > 1 ); -- 删除重复项,只保留每组中 CustomerID 最小的一条 DELETE FROM Customers WHERE CustomerID NOT IN ( SELECT MIN(CustomerID) FROM Customers GROUP BY FirstName, LastName, Email, SignupDate );