数据标准化(拟合的时候使用非常重要)
一、函数作用这个函数是数据标准化Z-Score 标准化函数专门对两组数据x_raw自变量做标准化处理并返回标准化后的数据 记录标准化参数的对象。具体做了这 4 件事计算x_raw的均值和标准差用 Z-Score 公式对两组数据分别标准化标准化值 (原始值 - 均值) / 标准差处理标准差为 0的极端情况避免除以 0 报错返回标准化后的 x、标准化后的 beta、标准化信息对象保存均值 / 标准差方便后续还原数据二、核心好处为什么要写这个函数1. 避免除以 0 错误鲁棒性强代码里做了关键防护python运行x_scale float(np.std(x_raw)) or 1.0 if x_scale 1e-12: x_scale 1.0如果数据全是同一个数标准差 0直接把分母设为 1.0不会崩溃、不会产生无穷大数值这是工程化代码必备的容错处理2. 数据同步标准化保持一致性同时标准化x和beta适合回归模型、拟合、机器学习场景保证输入和系数在同一量纲体系下计算结果更稳定3. 保留标准化参数支持逆标准化x 的均值、x 的标准差beta 的均值、beta 的标准差自定义 u 值用途后续你可以用这些参数把标准化后的数据还原成原始数据这在模型预测、结果展示时必须用到。4. 统一量纲提升模型 / 计算效果标准化最核心的价值消除单位不同比如米和千克、数值量级差距大比如 1 和 10000的影响让梯度下降、回归、优化算法收敛更快、更稳定避免大数值变量 “主导” 计算结果5. 代码复用、简洁规范把标准化逻辑封装成函数不用重复写均值、标准差计算一处修改全局生效可读性强团队协作更方便三、适用场景这个函数最常用在线性回归 / 多项式拟合机器学习模型训练前的数据预处理数值优化、方程求解需要对输入和系数同时归一化的科学计算四、总结核心一句话这是一个安全、健壮、可还原的双变量 Z-Score 标准化函数专门用于预处理数据让计算更稳定、模型效果更好同时避免程序崩溃。关键优点防除零错误代码鲁棒性拉满同步标准化两组数据保持一致性保存标准化参数支持数据还原统一量纲优化模型 / 数值计算效果封装复用代码简洁规范五、测试import numpy as np # 定义一个简单的类用来保存标准化信息方便后续还原数据 import numpy as np # 标准化信息类保存均值、标准差方便后续还原数据 class NormalizationInfo: def __init__(self, data_mean, data_std, custom_value0.0): self.data_mean data_mean # 原始数据的均值一看就懂 self.data_std data_std # 原始数据的标准差一看就懂 self.custom_value custom_value # 自定义额外参数 def normalize_data(original_data, custom_value0.0): 【单变量数据标准化】Z-Score 标准化 作用把数据变成 均值0标准差1 的标准分布消除量纲影响 自动防止除以0错误非常稳定 参数 original_data: 原始数据列表 或 numpy数组 custom_value: 可选自定义额外值 返回 标准化后的数据 标准化信息对象 # 计算原始数据的均值和标准差 mean_val np.mean(original_data) std_val np.std(original_data) # 安全处理如果标准差接近0就设为1避免除以0报错 if std_val 1e-12: std_val 1.0 # 标准化核心公式 standardized_data (original_data - mean_val) / std_val # 返回标准化结果 记录均值和标准差用于还原数据 return standardized_data, NormalizationInfo(mean_val, std_val, custom_value) # 示例使用 if __name__ __main__: # 测试用的原始数据 test_data np.array([1, 2, 3, 4, 5]) # 执行标准化 data_after_standard, standard_info normalize_data(test_data) # 输出结果 print(原始数据, test_data) print(标准化后, np.round(data_after_standard, 4)) print(\n标准化用到的参数) print(f原始数据均值 {standard_info.data_mean:.4f}) print(f原始数据标准差 {standard_info.data_std:.4f})
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2621627.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!