机器学习-数据归一化方法(Normalization Method)

数据归一化是机器学习中重要的预处理步骤,它可以加速梯度下降并提高精度。常见的归一化方法包括min-max标准化和0均值标准化。min-max将数据映射到0-1之间,而0均值标准化则使数据服从均值0、标准差1的正态分布。在涉及距离度量或PCA分析时,0均值标准化更为适用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的个人微信公众号:Microstrong

微信公众号ID:MicrostrongAI

公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!

知乎专栏:https://zhuanlan.zhihu.com/Microstrong

个人博客:https://blog.csdn.net/program_developer

一、出现背景:

从左至右来看,第一个模型是一个线性模型,拟合度很低,也称作欠拟合(Underfitting),不能很好地适应我们的训练集;第三个模型是一个高次方的模型,属于过度拟合,虽然能很好的适应我们的训练数据集,但是在新输入变量进行预测的时候,可能效果会很差。第二个模型可能是刚刚适合我们数据的模型。

那么问题来了,如果我们发现这样过度拟合的情况,如何处理呢?

有两种方式:

1. 丢弃一些不能帮助我们正确预测的特征。采用的方法如下:

  •  手工选择保留哪些特征。
  • 使用一些模型选择算法来帮忙降维。(例如PCA等)

2. 归一化处理

  •  保留所有的特征,但是减少参数的大小(或者是说:减少参数的重要性)

二、定义:

不同的评价指标往往具有不同的量纲(例如:对于评价房价来说量纲指:面积、房价数、楼层等;对于预测某个人患病率来说量纲指:身高、体重等。)和量纲单位(例如:面积单位:平方米、平方厘米等;身高:米、厘米等),这样的情况会影响到数据分析的结果,为了消除指标之间量纲的影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

三、优点:

(1)归一化后加快了梯度下降求最优解的速度。

(2)归一化有可能提高精度(归一化是让不同维度之间的特征在数值上有一定的比较性)。

解释(1)加快梯度下降求最优解的速度:

例子:

### Matlab 中的数据预处理与归一化 #### 使用 `mapminmax` 函数进行线性变换归一化 为了使数据适应特定范围,MATLAB 提供了内置函数 `mapminmax` 来执行最小最大缩放。此方法会将原始数值映射到指定区间内,默认情况下是从 -1 到 1 的范围。 ```matlab % 加载外部 Excel 文件中的数据表作为输入矩阵 A A = xlsread('D:\文件名.xlsx'); % 应用 mapminmax 进行归一化操作并保存结果至变量 F [F, settings] = mapminmax(A); % 将经过转换后的矩阵写回到新的 Excel 文档中去 xlswrite('D:\新文件名.xlsx', F); ``` 上述代码片段展示了如何利用 MATLAB 自带工具完成基本的归一化进程[^3]。 #### L1 和 L2 范数归一化的实现 除了简单的线性变换外,在某些应用场景下可能更适合采用基于范数的方式来进行标准化: 对于给定的一组特征向量 X ,可以通过下面两种方式进行单位长度规范化: - **L1 归一化**:使得绝对值之和等于 1; - **L2 归一化**:让平方和开根号的结果变为 1; 下面是具体的 MATLAB 实现例子: ```matlab function normalized_X = normalize_vector(X, method) switch lower(method) case 'l1' sum_abs_values = sum(abs(X), 2); % 计算每行元素绝对值总和 normalized_X = bsxfun(@rdivide, X, sum_abs_values); case 'l2' euclidean_norms = sqrt(sum(power(X, 2), 2)); % 求解欧几里得距离(即二范数) normalized_X = bsxfun(@rdivide, X, euclidean_norms); otherwise error('Unsupported normalization method'); end end ``` 这段自定义函数可以根据传入参数选择不同的归一策略来调整输入数组 X 。通过这种方式能够灵活应对多种类型的机器学习任务前的数据准备阶段[^4]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值