【机器学习7】特征缩放

简介: 【机器学习7】特征缩放

🍀特征缩放的重要性

特征缩放数据预处理中一个容易被遗忘的步骤。

决策树和随机森林是两种维数不多的不需要特征缩放的机器学习算法,这些算法不受特征缩放的影响。梯度下降优化算法的实现,如果将特征缩放到同一尺度,大多数机器学习和优化算法将会表现得更好。

可以通过一个简单的例子,来说明特征缩放的重要性

假设有两个特征,一个特征的值为在1到10之间,另一个特征的值在1到100000之间。

例如使用Adaline的平方差损失函数,可以说算法主要根据第二个特征优化权重,因为第二个特征主导平方差损失函数值。

另一个例子是k近邻算法,k近邻算法使用欧式距离度量样本间的距离,这样样本间的距离将由第二个特征轴控制。

标准化归一化是两种常见的可以将特征值调整到同一尺度的方法。

🌱归一化

通常,归一化指的是将特征缩放到**[0,1]范围内,是最小最大缩放(min-max scaling)的一种特殊情况。
为了是数据归一化,可以简单地对每一个特征进行
最大最小缩放**。

在下面式子中,使用最大最小缩放方法归一化一个样本的第i个特征:

image.png

image.png

要注意的是,只能训练数据拟合MinMaxScaler类,再用拟合后的参数转换测试数据集或任何新的数据样本,这一点非常重要。

🌱标准化

但对许多机器学习算法,尤其是梯度下降类型的算法,标准化更加实用,因为许多线性模型,如逻辑回归和支持向量机,将权重初始化为0或者接近0的随机数。

标准化将特征列的中心值设置为0,标准差设置为1,这样,特征列的参数与标准正态分布(零均值和单位方差)的参数相同,从而使模型更容易学习权重。

然而,应该强调,标准化不会改变特征列的分布形状,也不会将非正态分布的特征列转换为正态分布。

除了将数据进行平移缩放使其具有零均值和单位方差之外,标准差保留了特征列的其他信息,包括异常值等。

这样,学习算法对异常值的敏感度会降低,而最小最大缩放则将数据放到有限的范围从而丢失了异常值的信息

标准化可以用以下表达式表示:

image.png

image.png

对于由数字0到5组成的简单样本数据集,下面展示标准化和归一化两种特征缩放方法之间的差异:

输入 标准化 最大最小归一化
0.0 -1.46385 0.0
1.0 -0.87831 0.2
2.0 -0.29277 0.4
3.0 0.29277 0.6
4.0 0.87831 0.8
5.0 1.46385 1.0

同样,要注意的是,只能训练数据拟合StandardScaler类,再用拟合后的参数转换测试数据集或任何新的数据样本,这一点非常重要。

🌱更高级的缩放方法

Scikit-Learn还提供了其他更高级的特征缩放方化,例如RobustScaler。如果数据集是包含许多异常值的小数据集,那么RobustScaler尤其有用,并推荐使用。

类似地,如果机器学习算法很容易过拟合该数据集,那么RobustScaler也是一个不错的选择。RobustScaler独立处理数据的每个特征列。具体来讲,RobustScaler调整中位数为0,并根据数据集的第1和第3四分位数对数据进行缩放,以减小极值和异常值的影响。

🌸导入数据集&将数据集划分为训练集和测试集

import pandas as pd
df=pd.read_excel("D:\A_data\Data_wine数据\wine.xlsx")
from sklearn.model_selection import train_test_split
X,y=df.iloc[:,1:].values,df.iloc[:,0].values
X_train,X_test,y_train,y_test=train_test_split(X,y,train_size=0.3,random_state=0,stratify=y)

🌸Sklearn-Learn算法实现归一化

from sklearn.preprocessing import MinMaxScaler
mms=MinMaxScaler()
X_train_norm=mms.fit_transform(X_train)
X_test_norm=mms.transform(X_test)

7c96403781944a33880ea1a4509f7410.png

🌸Sklearn-Learn算法实现标准化

from sklearn.preprocessing import StandardScaler
stdsc=StandardScaler()
X_train_std=stdsc.fit_transform(X_train)
X_test_std=stdsc.transform(X_test)

d9677024338d499b89c510c92d5abe21.png

相关文章
|
2月前
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
232 3
|
6月前
|
机器学习/深度学习 人工智能 并行计算
人工智能平台PAI产品使用合集之机器学习PAI中特征重要性的原理不知道如何解决
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 人工智能 JSON
人工智能平台PAI产品使用合集之创建特征视图时遇到报错,该如何排查
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
4月前
|
存储 机器学习/深度学习 人工智能
人工智能平台PAI使用问题之特征平台是否可以与Java进行对接
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之选择使用Hologres作为在线特征存储,响应延时大概在多久
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 数据采集 存储
人工智能平台PAI产品使用合集之FeatureStore是否支持推荐场景下的session特征
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 人工智能 前端开发
人工智能平台PAI产品使用合集之创建了实时特征视图,里面的数据是通过什么传入的
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 算法 C++
机器学习归一化特征编码(二)
这篇文档讨论了机器学习中的特征编码,特别是独热编码(OneHotEncoder)在处理离散变量时的作用。它指出,对于多分类变量,独热编码是常用方法,但对二分类变量通常不需要。在Python的`sklearn`库中,`OneHotEncoder`可以用来实现这一过程,并可以通过设置`drop='if_binary'`来忽略二分类变量。文档还提到了逻辑回归,解释了正则化参数`C`和`penalty`,并列举了不同的优化算法,如`liblinear`、`lbfgs`等。
|
5月前
|
机器学习/深度学习 API Python
机器学习特征降维
这篇内容概述了特征降维在机器学习中的重要性,包括三个主要方法:低方差过滤法、PCA(主成分分析)和相关系数法。低方差过滤法通过删除方差低于阈值的特征来减少无关信息;PCA通过正交变换降低数据的维数,保留大部分信息;相关系数法(如皮尔逊和斯皮尔曼相关系数)用于评估特征间的相关性,去除高度相关的特征以简化模型。这些技术有助于提高模型效率和泛化能力。
|
5月前
|
机器学习/深度学习 算法 数据处理
机器学习归一化特征编码(一)
特征缩放是机器学习预处理的关键步骤,它包括归一化和标准化。归一化通过最大最小值缩放,将数据转换到[0,1]区间,有助于梯度下降算法更快收敛,减少数值较大特征的影响。标准化则通过减去均值并除以标准差,确保数据具有零均值和单位方差,适用于关注数据分布情况的算法。例如,欧氏距离计算时,未归一化的特征可能导致模型偏向数值较大的特征。归一化能提升模型精度,尤其是当距离度量如欧式距离时。常见的实现方法有`MinMaxScaler`,它将每个特征值缩放到用户指定的范围,如[0,1]。而`StandardScaler`执行Z-Score标准化,数据分布符合标准正态分布。
下一篇
无影云桌面