43:代码完成标准归一化
43:代码完成标准归一化
以下是根据课程录音整理的标准规范化(Standard Scaling)实战教学文档,已修正文字识别错误并优化表述:
机器学习特征工程 - 标准化(StandardScaler)实战
一、标准化原理
标准化(Z-Score规范化)通过对数据进行线性变换,使结果符合均值为0、标准差为1的正态分布。计算公式:
[ z = \frac{x - \mu}{\sigma} ]
其中:
• (\mu) 为特征列的均值
• (\sigma) 为特征列的标准差
二、代码实战演示
- 基础数据标准化
# 导入必要库
import numpy as np
from sklearn.preprocessing import StandardScaler
# 创建示例数据(列向量)
data = np.array([1, 2, 3, 5, 5]).reshape(-1, 1)
# 初始化标准化器
scaler = StandardScaler()
# 拟合数据并转换
scaler.fit(data)
normalized_data = scaler.transform(data)
print("原始数据:\n", data)
print("标准化结果:\n", normalized_data)
print("均值:", scaler.mean_)
print("标准差:", scaler.scale_)
- 含异常值数据对比
# 创建含异常值的数据
data_with_outlier = np.array([1, 2, 3, 5, 50000]).reshape(-1, 1)
# 标准化处理
scaler_outlier = StandardScaler()
normalized_outlier = scaler_outlier.fit_transform(data_with_outlier)
print("异常数据标准化结果:\n", normalized_outlier)
print("异常数据均值:", scaler_outlier.mean_)
print("异常数据标准差:", scaler_outlier.scale_)
三、关键特性验证
- 验证标准化后数据特性:
print("标准化数据均值:", normalized_data.mean()) # 应接近0
print("标准化数据标准差:", normalized_data.std()) # 应接近1
- 对比MinMax归一化结果:
from sklearn.preprocessing import MinMaxScaler
minmax_data = MinMaxScaler().fit_transform(data_with_outlier)
print("MinMax归一化结果:\n", minmax_data)
四、训练集与测试集处理规范
正确处理流程
- 训练阶段:
# 训练集处理
scaler_train = StandardScaler()
train_normalized = scaler_train.fit_transform(X_train)
- 测试阶段:
# 测试集处理(使用训练集的参数)
test_normalized = scaler_train.transform(X_test)
注意事项
• 必须使用训练集计算的均值和标准差处理测试集
• 禁止对测试集单独执行fit操作,防止数据泄露
• 生产环境中应对scaler对象进行持久化存储:
import joblib
joblib.dump(scaler_train, 'scaler.pkl') # 保存
loaded_scaler = joblib.load('scaler.pkl') # 加载
五、标准化 vs 归一化对比
特征 | StandardScaler | MinMaxScaler |
---|---|---|
适用场景 | 存在异常值/数据近似正态分布 | 数据范围固定(如图像处理) |
输出范围 | 无固定范围(可能有负值) | [0,1]固定范围 |
异常值影响 | 相对稳健 | 会导致正常值压缩 |
数据分布 | 保持原始分布形态 | 改变原始分布形态 |
六、数学验证
对示例数据 [1, 2, 3, 5, 5] 进行手工验证:
- 计算均值:( \mu = \frac{1+2+3+5+5}{5} = 3.2 )
- 计算标准差:( \sigma = \sqrt{\frac{(1-3.2)^2 + ... + (5-3.2)^2}{5}} ≈ 1.6 )
- 标准化计算:( \frac{1-3.2}{1.6} ≈ -1.375 )
(与代码输出结果一致)
七、重要理论强调
• 数据同分布假设:训练集与测试集必须来自相同概率分布
• 特征工程一致性:所有预处理操作都应基于训练集参数
• 信息泄露防范:测试集参与fit操作会导致模型评估失真
通过本教程,学习者可掌握标准化处理的正确实施方法,理解其数学原理,并避免实际应用中的常见错误。
44:正则化的目的防止过拟合
以下是整理后的课程文档,已修正文字错误并优化内容结构:
机器学习正则化课程讲义
一、正则化基本概念
- 定义与作用:
• 正则化(Regularization)是防止模型过拟合(Overfitting)的重要技术手段
• 在经济学领域也被称为"Regularization"
• 核心目标:增强模型泛化能力(推广能力),提高鲁棒性(Robustness)
- 相关概念辨析:
• 正则化 ≠ 正则表达式(两者无直接关联)
• 鲁棒性(Robustness):模型面对异常输入/数据扰动时的抗干扰能力
• 泛化能力:模型对未见数据的预测能力
二、过拟合与欠拟合
- 三种模型状态对比
状态类型 | 训练集表现 | 测试集表现 | 示意图特征 | 现实类比 |
---|---|---|---|---|
欠拟合(Underfit) | 较差 | 较差 | 简单线性分界(直线) | 学习不充分,知识掌握差 |
适度拟合(Just Right) | 良好 | 良好 | 适度弯曲的分界(平滑曲线) | 举一反三的学习能力 |
过拟合(Overfit) | 极好 | 较差 | 复杂曲折的分界(剧烈波动) | 死记硬背的学习方式 |
- 关键特征分析
• 过拟合典型表现:
• 训练准确率持续上升,测试准确率开始下降
• 对训练数据中的噪声/异常值过度敏感
• 决策边界呈现不合理的复杂形态
• 工程实践建议:
• 应朝着过拟合方向调试模型
• 选择过拟合发生前的模型状态作为最终模型
三、正则化原理与示例
- 参数控制示例
比较两组模型参数:
模型A:y = 0.3 + 0.5x₁ + 0.4x₂
模型B:y = 3 + 5x₁ + 4x₂
结论分析:
• 模型A更优(参数绝对值较小)
• 小参数优势:
• 增强模型容错能力
• 降低对单个特征的过度依赖
• 缓解维度诅咒的影响
- 正则化实现方式
(注:此处为课程后续内容预告,实际讲解应包含具体方法如L1/L2正则化、Dropout等)
四、重要概念总结
过拟合防止三要素:
• 合理的模型复杂度• 充足且具代表性的训练数据
• 正则化技术的应用
模型评估准则:
• 以测试集(新数据)表现为最终评判标准• 追求适度的拟合程度(Just Right)
性能提升方向:
• 提高模型鲁棒性 → 增强泛化能力 → 防止过拟合 → 正则化技术应用
注:文档已修正原始录音中的术语错误(如"under feat"→"underfit"),优化了表述结构,并补充了对比表格增强理解。建议后续课程可结合具体算法(如岭回归、Lasso)展开正则化方法的数学推导和代码实现。
45:正则化通过损失函数加入惩罚项使得W越小越好
(以下是经过整理和校正的课程文档)
机器学习模型正则化原理详解
一、正则化的核心目的
正则化的核心目的是防止模型过拟合,通过提高模型在测试集上的预测能力,增强其泛化能力和容错性,使模型能够更好地适应新数据。
二、权重参数W的影响机制
2.1 W的容错性作用
当测试数据存在偏差时,权重参数W会将输入误差按比例放大:
• 设原始输入X=100,误差数据X'=101(误差ΔX=1)
• 预测值ŷ = W^T X,误差传递公式为:Δŷ = W * ΔX
• 当W=5时,误差放大5倍(Δŷ=5)
• 当W=0.5时,误差仅放大0.5倍(Δŷ=0.5)
这表明较小的W值能有效降低输入误差对预测结果的影响,从而提高模型的容错能力。
2.2 W的正确率约束
W值并非越小越好,存在两个关键限制:
- 模型有效性限制:当W趋近于0时,模型将失去特征表达能力,无法进行有效预测
- 精度平衡需求:需要找到W的平衡点,既保证训练集上的预测精度,又具备足够的容错能力
三、正则化的实现方法
3.1 损失函数改造
通过在原损失函数中加入正则化项实现权衡:
改造后的损失函数 = 原始损失函数 + λ·正则化项
其中:
• 原始损失函数:衡量训练集上的预测误差(如MSE、交叉熵)
• 正则化项:约束模型复杂度(常用L1/L2范数)
• 超参数λ:控制正则化强度
3.2 典型应用形式
任务类型 | 原始损失函数 | 正则化形式 |
---|---|---|
回归任务 | 均方误差(MSE) | MSE + λ· |
分类任务 | 交叉熵(CrossEntropy) | CrossEntropy + λ· |
3.3 实现效果
- 通过参数λ控制模型复杂度
- 在训练误差和泛化能力间建立平衡
- 防止权重参数W过大导致的过拟合
四、关键结论
权重约束原则:
• W越小 → 容错性越好• W过小 → 模型失效
• 需要寻找最优折中
正则化本质:
• 通过损失函数改造实现• 牺牲部分训练精度换取泛化能力
• 增强模型抵抗数据扰动的能力
实践意义:
• 必须通过交叉验证确定λ值• 不同正则化方法(L1/L2)适用不同场景
• 需结合具体任务调整正则化强度
五、教学示例解析
假设回归模型:ŷ = w0 + w1x1 + w2x2 + ... + wnxn
• 当某特征x_i存在测量误差Δx_i时
• 误差传递量Δŷ = wi·Δx_i
• 若wi=5,误差放大5倍
• 若wi=0.5,误差仅放大0.5倍
该示例直观展示了权重参数对误差传播的影响,验证了正则化通过约束W值来提高模型鲁棒性的有效性。
46:常用的L1和L2正则项以及数学意义
以下是经过整理校正后的课程文档:
机器学习中的正则化:L1与L2正则项详解
一、正则化基本概念
- 正则化作用
• 在损失函数中添加正则项,提高模型泛化能力
• 用于防止模型过拟合,控制模型复杂度
- 应用形式
• 回归任务:MSE(均方误差) + 正则项
• 分类任务:交叉熵损失 + 正则项
二、L1/L2正则项数学定义
- L1正则项(Lasso正则)
• 公式:λΣ|w_i| (i=0到n)
• 特征:权重参数的绝对值之和
• 对应L1范数:||w||₁ = Σ|w_i|
- L2正则项(Ridge正则)
• 公式:λΣw_i² (i=0到n)
• 特征:权重参数的平方和
• 对应L2范数:||w||₂ = √(Σw_i²)
三、数学意义与几何解释
- 范数概念
• 属于LP范数体系(P∈[0,+∞])
• L1:曼哈顿距离(直角路径距离)
• L2:欧氏距离(直线距离)
- 几何空间解释
• 参数空间中的距离度量:
• L1范数:菱形等高线(当P=1时)
• L2范数:圆形等高线(当P=2时)
• 优化目标:在损失函数等高线与正则项等高线的切点处取得平衡解
- 正则化效果
• 约束参数空间范围
• 引导模型参数趋向原点(零值区域)
四、在回归任务中的应用
- 岭回归(Ridge Regression)
• 损失函数:MSE + L2正则项
• 特点:
• 参数趋向小而分散的数值
• 适用于特征相关性较高的情况
- Lasso回归(Least Absolute Shrinkage)
• 损失函数:MSE + L1正则项
• 特点:
• 产生稀疏解(部分参数归零)
• 适用于特征选择场景
五、正则化效果对比
- 几何图示对比
• 左图(L2正则):
• 圆形约束区域
• 最优解在等高线切点处
• 参数普遍缩小但非零
• 右图(L1正则):
• 菱形约束区域
• 切点常出现在坐标轴上
• 产生稀疏参数矩阵
- 实际应用差异
• L1正则:
• 特征选择能力
• 对异常值更鲁棒
• 计算复杂度较高
• L2正则:
• 防止过拟合效果稳定
• 可解析求解
• 保持特征间的平衡
六、核心知识点总结
- 正则化本质
• 在经验风险最小化的基础上增加结构风险约束
• 通过参数衰减(weight decay)控制模型复杂度
- 范数选择原则
• 需要特征选择时优先L1正则
• 需要稳定泛化时优先L2正则
• 可结合使用(Elastic Net)
- 超参数λ的作用
• 控制正则化强度
• 需通过交叉验证确定最优值
注:文中已修正原始转录中的术语错误(如"MICE"→"MSE","LASO"→"Lasso","range"→"Ridge"等),并规范了数学符号表示。本整理文档保留了教师的口语化讲解风格,同时确保技术表述的准确性。
47:L1稀疏性和L2平滑性
以下是课程内容的规范化整理文档(已纠正文字错误并优化表达结构):
L1与L2正则化特性对比课程文档
一、核心特性对比
L1正则化(Lasso)
• 稀疏性:通过L1正则项的约束,部分权重参数会被压缩至0,形成稀疏特征矩阵• 特性表现:
• 产生稀疏解(部分特征权重归零)
• 保留重要特征的较大权重值
• 适用于特征选择场景
L2正则化(Ridge)
• 平滑性:通过L2正则项的约束,所有权重参数会被整体压缩但保持非零• 特性表现:
• 获得稠密解(所有权重趋近于非零)
• 参数整体缩小但保持分布连续性
• 适用于缓解多重共线性问题
二、几何空间解释
损失函数可视化
• 蓝色等高线:原始损失函数(MSE)的等值线• 红色约束区域:
◦ L1:菱形区域(曼哈顿距离约束)
◦ L2:圆形区域(欧式距离约束)
最优解形成机制
• 解空间交点规律:• L1倾向于在坐标轴交点(参数归零)
• L2倾向于在圆周切点(参数整体压缩)
• 数学表达式:
◦ L1:Σ|w_i| ≤ t(菱形边界)
◦ L2:Σw_i² ≤ t(圆形边界)
三、梯度下降视角分析
正则化项的梯度影响
• 参数更新公式:w_{t+1} = w_t - η[∇J(w) + λ∇R(w)]
• 正则项梯度差异:◦ L1梯度:±λ(符号函数)
◦ L2梯度:2λw(线性衰减)
参数更新动态
• L1特性:• 绝对值项产生恒定调整量
• 小权重参数被快速归零
• 大权重保持稳定更新
• L2特性:
• 梯度与权重值成正比
• 所有参数持续衰减
• 参数分布趋于均衡
四、超参数λ的作用机制
正则化强度控制:
• λ增大 → 正则项主导优化方向• λ减小 → 数据拟合项主导优化
典型取值策略:
• L1常用较小λ值(0.01-0.1)• L2常用较大λ值(0.1-1.0)
• 交叉验证确定最优λ
五、工程实践启示
L1适用场景:
• 高维特征选择(文本分类、基因分析)• 解释性要求高的模型
• 内存/计算资源受限环境
L2适用场景:
• 防止过拟合的通用方法• 处理特征共线性问题
• 需要稳定预测的场景
混合策略(ElasticNet):
• 结合L1+L2双重约束• 公式:λ₁Σ|w| + λ₂Σw²
• 平衡特征选择与参数稳定
本文档已修正原文中存在的术语错误(如"MIC"→"MSE","拉 so"→"Lasso"等),优化了口语化表达,并补充了完整的数学表达式体系。可作为机器学习正则化理论的标准教学参考资料使用。
48:通过L1和L2的导函数理解区别的本质原因
以下是课程录音整理后的详细文档(已修正错别字并优化内容结构):
机器学习正则化本质解析:L1稀疏性与L2平滑性的梯度下降视角
一、正则化的梯度更新机制
在梯度下降过程中,当在损失函数中加入L1或L2正则项时,参数更新公式可表示为:
[ w_{t+1} = w_t - \eta (\nabla Loss + \lambda \nabla Reg) ]
其中正则项导数对参数更新产生直接影响:
• L1正则项导数:(\frac{\partial L1}{\partial w_i} = sign(w_i))
• L2正则项导数:(\frac{\partial L2}{\partial w_i} = w_i)
二、L1正则化的稀疏性本质
导数特性
L1正则项((\sum |w_i|))对参数(w_i)的导数为符号函数:
[
sign(w_i) =
\begin{cases}
1 & w_i > 0 \
-1 & w_i < 0
\end{cases}
]
这意味着每次参数更新会固定减去(\eta \lambda)量级,与参数当前值无关。更新特征
• 所有参数以相同幅度向零点逼近• 小权重参数更快趋近于零(如(w_2=0.3)经数次更新即归零)
• 大权重参数保持有效更新直至接近零点
几何解释
损失函数等高线与L1菱形约束域的交点更容易出现在坐标轴上,导致部分参数精确为零,产生特征选择效果。
三、L2正则化的平滑性本质
导数特性
L2正则项((\frac{1}{2}\sum w_i^2))导数为参数本身:
[
\frac{\partial L2}{\partial w_i} = w_i
]
更新幅度与参数值成正比例关系。更新特征
• 大权重参数获得更强衰减(如(w_1=5)更新幅度远大于(w_2=0.3))• 所有参数同步按比例缩小,保持相对大小关系
• 参数渐进趋近于零但不会精确归零
几何解释
损失函数等高线与L2圆形约束域的切点通常不在坐标轴上,形成各参数协同缩小的等比例衰减效果。
四、核心差异对比
特性 | L1正则化 | L2正则化 |
---|---|---|
导数依赖 | 参数符号 | 参数绝对值 |
更新幅度 | 固定步长 | 动态步长(与值正比) |
解空间特征 | 稀疏解(坐标轴交点) | 稠密解(非轴交点) |
计算复杂度 | 不可导需特殊处理 | 处处可导易优化 |
应用场景 | 特征选择/高维稀疏数据 | 防止过拟合/通用正则化 |
五、现实类比与工程实践
税收隐喻
• L1类似"人头税":统一税率,促进财富再分配• L2类似"所得税":累进税率,保持财富比例
特征选择机制
L1的稀疏性可自动过滤不相关特征:
• 零值参数对应特征可安全移除• 适用于高维数据(如文本TF-IDF特征)
• 提升模型可解释性
实践建议
• 优先L2:大多数防止过拟合场景• 特定用L1:特征数量>样本量/需模型压缩时
• 组合使用:Elastic Net(L1+L2)平衡特性
六、数学本质总结
通过梯度下降视角可清晰理解:
• L1的等量更新导致参数快速归零,形成特征稀疏性
• L2的等比更新维持参数相对关系,实现平滑收缩
• 正则化强度(\lambda)控制约束域大小,平衡拟合与泛化
注:本文已修正原始转写中的术语错误(如"CA"→"w","THEA"→"θ"),优化了公式表达与技术表述的准确性,采用结构化呈现提升可读性。