Week 2:学生 1 和学生 4 的距离几乎全来自 Score
Week 2 讲欧氏距离时用了一张五个学生的表,每人有 Height、Score、Age 三列。学生 1 是 (64, 580, 19),学生 4 是 (69, 660, 24)。两人的欧氏距离是根号下 25 + 6400 + 25,等于 80.31。
根号下的 6400 来自 Score 相差的 80 分,身高差 5、年龄差 5 加起来只贡献 50。Score 的取值在几百,另外两列在几十,三列按差的平方直接相加,数值大的那一列就决定了谁和谁近。课上写明欧氏距离假设所有变量 equally weighted,原始数据不满足这个假设,所以聚类前要对所有输入做 feature scaling。
feature scaling 有两种做法。normalisation 把每列压到 0 到 1,standardisation 把每列变成均值 0、标准差 1。一列值是 -100 1 2 3 4 1 2 3 100 时,normalisation 会把 1 到 4 挤在一起,几乎分不开;以后来的新数据超出原来的最大值或最小值,normalisation 的公式也要重算。有离群值,或者上下限不确定,就选 standardisation。
Week 4:OLS 换单位,预测值不变
Week 4 用 y = β0 + x1β1 + x2β2 做例子,x1 是面积。把面积从平方英尺换成平方米,x1 的数值约变成原来的 0.093 倍。OLS 估出来的 β1 相应放大约 10.76 倍,x1β1 这一项的乘积不变,所以预测值和拟合效果都和换单位前一样。
Week 3 读 statsmodels 的 OLS 输出时,area 的系数 1.135e+04 是按原单位解读的:其他变量不变,面积每多 1 平方米,价格平均多约 11,350。OLS 的系数跟着单位变,解读时要带上单位。
LASSO 和 Ridge 换单位,解会变
LASSO 和 Ridge 在 OLS 的损失后面加了一项罚项:LASSO 罚的是 α 乘以各系数绝对值之和,Ridge 罚的是 α 乘以各系数平方和的一半。罚项只看系数的大小,系数背后是什么单位它不管。
还是面积这一列。把 x1 缩小,β1 要变大才能保持乘积,变大的 β1 挨的罚更重,LASSO 可能直接把它压成 0;把 x1 放大十亿倍,β1 会小到几乎不挨罚。所以面积这个变量会不会被 LASSO 留下,和选了哪个单位有关。
处理办法是在 LASSO 和 Ridge 之前对每个输入做 standardisation,公式是 (x − μ) / σ。面积均值 50 平方米、标准差 10 平方米时,70 平方米标准化后是 2,表示比平均大 2 个标准差。这个数不再带单位,罚项比较的是同一尺度下的系数。
三类方法放在一起
| 方法 | 换单位以后 | 原因 |
|---|---|---|
| K-means、层次聚类 | 分组可能变 | 欧氏距离把各列差的平方直接相加 |
| OLS | 预测不变,系数按单位缩放 | 系数反向缩放,抵消单位变化 |
| LASSO、Ridge |






