跳到正文FIT5196 Seminar Week 9 · Jimmy Huang's BlogFIT5196 Seminar Week 9
本页目录· 70 条
ChatGPT 说›Learning Outcomes
本周 Seminar 的核心主题是数据转换(Data Transformation)。完成本周内容后,需要能够:
理解数据转换在数据预处理(Data Pre-processing)中的位置,以及它和上周数据清洗(Data Cleaning)的区别。
解释为什么“数据值已经清洗正确”并不等于“数据已经适合分析”。
掌握数据标准化 / 归一化(Data Normalisation)的主要方法,包括缩放(Scaling)和标准化(Standardisation)。
区分 Min-Max Scaling、MaxAbs Scaling、Decimal Scaling、Robust Scaling、Log Scaling 的适用场景、优点和限制。
理解线性转换(Linear Transformation)、幂转换(Power Transformation)和 Box-Cox Transformation 的作用。
理解离散化(Data Discretisation)如何把连续变量转换成分组或类别变量。
掌握分箱(Binning)的基本思想,包括等宽分箱(Equal-width Binning)和等深分箱(Equal-depth Binning)。
理解数据构造(Data Construction)中的特征工程(Feature Engineering)和数据采样(Data Sampling)。
在 Assessment 2 Task 2 中,能够根据每个属性的数据分布和后续分析目的选择合适的转换方法,并给出合理 justification。
本周在课程中的位置
本周内容位于数据整理(Data Wrangling)流程中的数据预处理阶段。整体流程可以理解为:
上周重点是数据清洗,主要处理:
缺失值(Missing Data)
异常值(Outliers)
格式错误、不一致值等数据质量问题
本周的数据转换则关注另一个问题:
即使数据已经被清洗到“值是正确的”,它也可能仍然不适合直接分析或建模。数据转换的目标是把这些正确但不够好用的数据,转换成更适合分析、比较、可视化和建模的形式。
课堂中特别强调,Assessment 2 的 Task 1 主要对应数据清洗,Task 2 会继续处理数据转换。Task 2 不是把所有方法都盲目套一遍,而是要根据数据本身和后续分析目的,选择合适的方法并解释原因。
Data Transformation 总览
什么是数据转换
数据转换(Data Transformation)是指把原始数据清理并转换成更适合分析的格式。这里的“转换”不一定意味着修正错误,而是让数据更容易被理解、比较、可视化或输入模型。
为什么需要数据转换
本周涉及的数据转换类型
数据归一化 / 标准化(Data Normalisation)缩放(Scaling)
标准化(Standardisation)
线性转换(Linear Transformation)
幂转换(Power Transformation)
数据离散化(Data Discretisation)
数据降维 / 数据缩减(Data Reduction)
Data Normalisation
数据归一化的核心思想
数据归一化(Data Normalisation)是数据准备中的重要步骤,尤其常用于机器学习和统计分析前。
它主要用于数值型数据(numeric columns),目的是把不同列的数值放到一个共同尺度(common scale)上,同时尽量不扭曲原始数据之间的差异。
一列是收入,范围可能是 0 到 200000。
一列是年龄,范围可能是 0 到 100。
一列是评分,范围可能是 1 到 5。
如果直接把这些列放进模型,数值范围大的列可能会在距离计算或参数估计中占据过高影响。归一化可以减少这种尺度差异。
Normalisation 的两大类
Scaling
缩放(Scaling)的重点是把某个特征的取值范围重新映射到指定区间。课件介绍了五种常见方法:
Min-Max Scaling
MaxAbs Scaling
Decimal Scaling
Robust Scaling
Log Scaling
课堂中特别强调:前几种 scaling 方法主要改变的是数值范围,通常会保留相对分布;但 Log Scaling 会改变相对距离和分布形状,因此不能简单地当作“只改范围”的方法。
Min-Max Scaling
Min-Max Scaling 是最简单、最常见的缩放方法之一,也常被直接称为 normalization。它会把特征值缩放到 [0, 1] 或 [-1, 1] 这样的固定区间。
xscaled=xmax−xminx−xmin xmin 是该列的最小值。 xmax 是该列的最大值。
如果要缩放到一般区间 [n, m],公式可以写成:
xscaled=xmax−xminx−xmin(m−n)+n 图示含义
课件中的散点图展示了 Min-Max Scaling 前后的变化:
原始数据点可能分布在较大的坐标范围内。
缩放后,点被映射到 [0, 1] 范围中。
数据点之间的相对位置和整体分布形状基本保持不变。
改变的是坐标轴范围,而不是数据本身的相对结构。
另一个图示展示了如果原始数据范围很小或数据点挤在一条很窄的区域里,缩放后可以让分布更容易被可视化观察。
优点与缺点
可以这样理解
Min-Max Scaling 像是把一把很长或很短的尺子重新换算成 0 到 1 的比例尺。一个点在原始尺子上处于靠前、中间还是靠后的位置,缩放后仍然保持类似的相对位置。
MaxAbs Scaling
MaxAbs Scaling 会用每个特征的最大绝对值来缩放数据,使结果落在 [-1, 1] 范围内。
xscaled=max(∣x∣)x 适用场景
MaxAbs Scaling 特别适合含有负值的数据,因为它自然保留正负方向。与 Min-Max Scaling 不同,它不会强制把所有值都变成正数范围。
优点与缺点
可以这样理解
MaxAbs Scaling 像是把所有数都除以“绝对值最大的那个数”。最大的正数或负数会被缩放到接近 1 或 -1,其他数按比例缩小。
Decimal Scaling
Decimal Scaling 通过移动小数点来缩放数据,使最大绝对值小于 1。
xscaled=10cx max(∣xscaled∣)<1 最大绝对值是 500,需要把小数点移动 3 位,因此:
优点与缺点
Robust Scaling
Robust Scaling 使用中位数(median)和四分位距(Interquartile Range, IQR)进行缩放。
xscaled=IQR(x)x−xmedian IQR(x)=Q3(x)−Q1(x) IQR 表示中间 50% 数据的范围。
图示含义
原始数据可能包含远离主体分布的异常点。
Robust Scaling 不依赖最大值和最小值,而是依赖中位数和四分位范围。
因此它对极端值没有 Min-Max Scaling 那么敏感。
缩放后,中位数会更接近 0,主体数据范围更容易比较。
优点与缺点
可以这样理解
Robust Scaling 不看最极端的最大值和最小值,而是看中间 50% 的数据。它更像是问:“大部分正常数据集中在哪个范围?”而不是被少数极端点带偏。
Log Scaling
Log Scaling 使用对数函数对数据进行转换。
xscaled=log(x) 其中 log() 可以是自然对数,也可以根据数据情况选择其他底数。
适用场景
图示含义
原始数据呈明显非线性增长,后面的点突然上升很快。
经过 log 转换后,点的增长趋势变得更接近直线。
原始散点图中大值和小值之间距离很大,log 转换会压缩大值之间的距离。
对数转换不仅改变数值范围,也改变了数据点之间的相对距离和分布形状。
课堂中特别强调,Log Scaling 和前面几种 scaling 不同:
Min-Max、MaxAbs、Decimal、Robust 更偏向改变尺度。
Log Scaling 会改变数据形状和相对距离。
因此它可能会损失一部分原始距离信息。
但这种损失有时是有意义的,因为它可以让偏态数据更适合线性模型或可视化。
优点与缺点
可以这样理解
Log Scaling 像是把“爆炸式增长”的数据压平。原来 10 和 10000 的距离非常大,但 log 之后差距会明显缩小。这可以让模型更容易捕捉趋势,但也意味着原始距离含义已经改变。
Scaling 方法对比
课堂重点:选择 scaling 方法不能只看“哪个结果好看”,而要先说明为什么该属性适合这种方法。例如:
数据有明显异常值,可以考虑 Robust Scaling。
数据全为正且高度右偏,可以考虑 Log Scaling。
模型要求输入范围 [0, 1],可以考虑 Min-Max Scaling。
数据包含负值且希望保留正负方向,可以考虑 MaxAbs Scaling。
Standardisation
标准化的核心思想
标准化(Standardisation),也叫 z-score normalisation,会把数据转换成均值为 0、标准差为 1 的形式。
μ=0,σ=1 z=σx−μ μ=n1i∑xi σ=n1i∑(xi−μ)2 与 Scaling 的区别
图示含义
优点与缺点
可以这样理解
Standardisation 不关心最大值和最小值,而是关心“这个值距离平均值有几个标准差”。转换后的 0 表示原始均值,正数表示高于平均,负数表示低于平均。
Linear Transformation
什么是线性转换
线性转换(Linear Transformation)会保持特征之间的线性关系。它可以把多个属性按权重聚合成一个新的属性。
xlinear=w0+i=1∑mwixi 摄氏度转换为华氏度。
英里转换为公里。
英寸转换为厘米。
图示含义
原始数据(Original Data)
缩放后的数据,例如 2x
平移后的数据,例如 x + 3
这说明线性转换会改变坐标位置或尺度,但原来的线性结构通常仍然保留 。
适用限制
课堂强调,线性转换的前提是数据本身或变量之间存在合理的线性关系。如果原始数据关系明显非线性,直接使用线性转换可能不合适。
Power Transformation
幂转换的核心思想
幂转换(Power Transformation)通过对变量取不同幂次,改变数据的曲线形状,使数据更接近线性关系或更接近正态分布。
Tukey and Mosteller’s Bulging Rule 提到,可以同时对 x 和 y 使用幂函数转换:
yiq=β0+β1xip+ηi 其中 p 和 q 分别控制 x 与 y 的幂次变化。
Bulging Rule 图示含义
课件中的 Bulging Rule 图展示了不同曲线形状下,应该考虑对 x 或 y 进行怎样的幂转换:
有些曲线需要提高 x 的幂次,例如使用 x2、x3。 有些曲线需要降低 x 的幂次,例如使用 x、log(x)。 对 y 也可以类似处理,例如 y2、y 目标是让原本弯曲的关系变得更接近直线。
幂转换不是随便试一个指数,而是先观察原始关系的弯曲方向,再选择可能把曲线“拉直”的转换方向。
课堂中特别提到,图形可以帮助判断方向,但不能保证找到最佳幂次。真正选择参数时,还需要结合计算,例如线性程度、相关性或其他评价指标。
Power Transformation 图示含义
原始数据存在明显曲线关系,用直线拟合并不好。
对 x 或 y 进行幂转换后,散点更接近线性排列。 转换后的数据更可能适合线性模型。
Box-Cox Transformation
Box-Cox 的目标
Box-Cox Transformation 是一种常见的幂转换方法,用来把连续变量转换得更接近正态分布。
y={λxλ−1,log(x),λ=0λ=0 图示含义
课件中的 Box-Cox 图展示了不同 λ 值下曲线形状的变化:
处理负值的情况
标准 Box-Cox 通常要求输入为正数。课件还给出了包含负值时的变体:
y={gλ(x+c)λ−1,glog(x+c),λ=0λ=0 g:用于缩放结果,通常可以理解为与几何平均有关的尺度因子。 λ:通过搜索选择,使转换后的属性尽可能接近正态分布。
Data Discretisation
什么是数据离散化
数据离散化(Data Discretisation)是把连续变量转换或划分成离散变量 / 名义变量(nominal variables)的过程。
离散化的目标是在尽量保留原始信息的情况下,用更简洁的类别表示数据。
离散化的作用
离散化就是把很多精确数值放进几个有意义的“桶”里。每个桶内的数据不再保留完全精确的原始值,而是用组别或代表值表达。
Binning
分箱的基本思想
分箱(Binning)是一种无监督算法(Unsupervised Algorithm),它不考虑因变量或标签,只根据变量本身的取值顺序,把数据划分到预先定义数量的箱(bins)中。
使用每个 bin 的均值(mean value)。
使用每个 bin 的中位数(median value)。
使用 bin 边界值(bin boundaries),即把值替换为更接近的边界。
Equal-width Binning
[xmin,xmax] 划分为 n 个 bin,则每个 bin 的宽度为:
w=nxmax−xmin 例子
使用 equal-width binning,设 n=4,可以得到:
Equal-depth Binning
等深分箱会把数据划分成若干 bin,使每个 bin 中包含大致相同数量的样本。
同样使用上面的排序数据,设 n=4,每组约 3 个样本:
Equal-width 与 Equal-depth 对比
Equal-width 保证“区间宽度”相同,但不保证每个 bin 的数据点数量相同。
Equal-depth 保证“样本数量”相近,但每个 bin 的数值范围可能不同。
分箱后使用 mean、median 还是 boundary 替换,需要根据分析目的选择。
Data Construction
数据构造(Data Construction)关注如何从现有数据中构造更有意义、更有预测能力或更高效的表示。本周主要涉及:
Feature Engineering
Feature Extraction / Generation 与 Feature Selection
生成更有意义的特征。
移除无关数据。
提高模型预测准确率。
提高学习效率。
降低模型复杂度。
提高模型可解释性。
Feature Subset Selection
特征子集选择(Feature Subset Selection)通过删除不相关或冗余特征来减少数据集大小。
目标是找到一个最小属性集合,使得使用这些属性得到的数据类别概率分布尽可能接近使用全部属性时的分布。
逐步前向选择(Stepwise Forward Selection)
逐步后向消除(Stepwise Backward Elimination)
前向选择与后向消除结合
决策树归纳(Decision Tree Induction)
图示含义
Forward Selection 从空集合开始,每次加入一个最有信息量的属性。
Backward Elimination 从完整集合开始,每次删除一个最不重要的属性。
Decision Tree Induction 会把最有区分力的属性放在树的上层节点,没有出现在树中的属性通常可以视为较不重要。
课堂补充中提到,判断属性重要性可以依赖某些度量,例如信息增益(Information Gain)、熵(Entropy)、ANOVA 或其他统计指标。关键是不能凭感觉删除特征,而要说明“为什么这个特征重要 / 不重要”。
Data Sampling
什么是数据采样
数据采样(Data Sampling)是从数据集中选择有代表性的子集。
Simple Random Sampling without Replacement (SRSWOR)
无放回简单随机抽样(Simple Random Sample Without Replacement, SRSWOR)指从数据集 D 中抽取 s 个样本,每次抽到一个样本后不放回。
每个样本最多被抽中一次。
抽样结果中不会出现重复记录。
每个原始样本在一次抽取中被选中的概率相同。
课件图示中,原始集合包含 T1 到 T8,SRSWOR 抽取 4 个样本后,结果中每个样本都不同,例如 T5、T1、T8、T6。
Simple Random Sampling with Replacement (SRSWR)
有放回简单随机抽样(Simple Random Sample With Replacement, SRSWR)指每次抽到样本后再放回原数据集,因此同一个样本可能被多次抽中。
抽样结果中可能出现重复记录。
每一次抽取时,每个样本又重新拥有被选中的机会。
适合某些需要重复抽样或数据量较小的场景。
Stratified Sample
分层抽样(Stratified Sample)适用于数据集可以被划分为互不重叠的层(strata)的情况。
分层抽样会在每一层内部进行简单随机抽样,从而让最终样本保留不同组别的信息。
课件图示中,原始数据按年龄层分组后,从每个层中抽取样本,最终样本同时包含 youth、middle_aged 和 senior,而不是被某个多数群体完全主导。
可以这样理解
普通随机抽样像是从全班直接随机点名,可能刚好点到很多同一类学生。分层抽样则是先按组分开,例如按年级或专业分组,再从每个组里抽一些人,这样代表性更稳定。
Assessment 2 Task 2 方法选择提醒
课堂中特别强调,Assessment 2 的数据转换任务不是机械地“试所有方法”。需要做到:
选择方法时要考虑后续分析。如果后续使用线性模型,需要考虑变量关系是否更接近线性。
如果模型要求输入范围固定,需要选择相应 scaling。
如果模型对正态性敏感,可以考虑 standardisation、log 或 Box-Cox 等方法。
Summary
本周 Seminar 的核心是数据转换。数据清洗解决数据错误,数据转换则让已经清洗好的数据更适合分析、可视化和建模。
数据归一化用于处理不同特征之间的尺度差异。
Scaling 主要改变数值范围,常见方法包括 Min-Max、MaxAbs、Decimal、Robust 和 Log。
Log Scaling 会改变分布形状和相对距离,适合高度偏态或指数增长数据,但不能随意使用。
Standardisation 会把数据转换为均值 0、标准差 1,更适合某些统计模型或机器学习方法。
Linear Transformation 适合保留线性关系,但要求线性假设合理。
Power Transformation 和 Box-Cox 可以让曲线关系更接近线性或让分布更接近正态。
Data Discretisation 通过分箱把连续值转换为离散类别或代表值。
Equal-width Binning 按区间宽度分箱,Equal-depth Binning 按样本数量分箱。
Feature Engineering 包括生成新特征和选择有用特征。
Data Sampling 通过选择代表性样本减少数据量、处理不平衡、构造训练 / 验证 / 测试集。
Assessment 2 中最关键的不是“用了多少方法”,而是“为什么这样转换”。每个属性都要基于数据分布、可视化、统计量和后续分析目标做出合理选择,并用清晰的 justification 支撑。
Data Discovery
↓
Data Collection
↓
Data Cleaning
↓
Data Transformation
↓
Data Enrichment / Data Validation / Data Storing
c = 3
x_scaled = x / 1000
-0.500 ≤ x_scaled ≤ 0.045
{34, 64, 88, 55, 94, 59, 10, 25, 44, 48, 69, 15}
{10, 15, 25, 34, 44, 48, 55, 59, 64, 69, 88, 94}
Bin 1: 10 到 31
Bin 2: 31 到 52
Bin 3: 52 到 73
Bin 4: 73 到 94
Bin 1: {10, 15, 25}
Bin 2: {34, 44, 48}
Bin 3: {55, 59, 64, 69}
Bin 4: {88, 94}
{10, 15, 25}, {34, 44, 48}, {55, 59, 64}, {69, 88, 94}
理解每个属性的数据分布
↓
判断是否存在单位差异、尺度差异、偏态、异常值、负值
↓
根据属性特点选择候选转换方法
↓
用可视化或统计量验证转换是否合理
↓
记录每个选择的 justification
↓
输出最终转换后的数据与说明
、
、
等。