新手村:数据预处理-特征缩放
特征缩放(Feature Scaling)是数据预处理中的一个紧张步调,特别是在应用某些呆板学习算法时。特征缩放可以使不同标准的特征具有雷同的量级,从而进步模型训练的效率和性能。常见的特征缩放方法包罗标准化(Standardization)和归一化(Normalization)。
常见的特征缩放方法
- 标准化(Standardization)
- 将特征转换为均值为0,标准差为1的标准正态分布。
- 公式: x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x′=σx−μ
- x ′ x' x′ 是缩放后的特征值
- x x x 是原始特征值
- μ \mu μ 是特征的均值
- σ \sigma σ 是特征的标准差
- 归一化(Normalization)
- 将特征缩放到一个特定范围(通常是[0, 1]或[-1, 1])。
- 最常用的归一化方法是Min-Max缩放:
- 公式: x ′ = x − x min x max − x min x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} x′=xmax−xminx−xmin
- x ′ x' x′ 是缩放后的特征值
- x x x 是原始特征值
- x min x_{\text{min}} xmin 和 x max x_{\text{max}} xmax 分别是特征的最小值和最大值
特征缩放的应用场景
- 必要特征缩放的算法:
- 线性回归、逻辑回归、支持向量机(SVM)、K近邻(KNN)、神经网络等。
- 这些算法对特征的标准敏感,特征缩放可以加速收敛速度并进步模型性能。
- 不必要特征缩放的算法:
- 决议树、随机森林等基于树的算法,这些算法不依靠于特征的标准。
示例代码
以下是一个使用Python和scikit-learn库举行特征缩放的示例代码:
- import pandas as pd
- import numpy as np
- from sklearn.preprocessing import StandardScaler, MinMaxScaler
- # 创建一个示例数据集
- data = {
- 'A': [1, 2, 3, 4, 5],
- 'B': [100, 200, 300, 400, 500],
- 'C': [0.1, 0.2, 0.3, 0.4, 0.5]
- }
- df = pd.DataFrame(data)
- print("原始数据:")
- print(df)
- # 标准化
- scaler_standard = StandardScaler()
- df_standardized = pd.DataFrame(scaler_standard.fit_transform(df), columns=df.columns)
- print("\n标准化后的数据:")
- print(df_standardized)
- # 归一化(Min-Max缩放)
- scaler_minmax = MinMaxScaler()
- df_normalized = pd.DataFrame(scaler_minmax.fit_transform(df), columns=df.columns)
- print("\n归一化后的数据:")
- print(df_normalized)
复制代码 输出结果解释
原始数据
- 原始数据:
- A B C
- 0 1 100 0.1
- 1 2 200 0.2
- 2 3 300 0.3
- 3 4 400 0.4
- 4 5 500 0.5
复制代码 标准化后的数据
- 标准化后的数据:
- A B C
- 0 -1.414214 -1.414214 -1.414214
- 1 -0.707107 -0.707107 -0.707107
- 2 0.000000 0.000000 0.000000
- 3 0.707107 0.707107 0.707107
- 4 1.414214 1.414214 1.414214
复制代码 归一化后的数据
- 归一化后的数据:
- A B C
- 0 0.0 0.0 0.0
- 1 0.25 0.25 0.25
- 2 0.5 0.5 0.5
- 3 0.75 0.75 0.75
- 4 1.0 1.0 1.0
复制代码 总结表格
方法描述适用场景长处缺点标准化将特征转换为均值为0,标准差为1的标准正态分布。线性回归、逻辑回归、SVM、KNN、神经网络等。不受数据范围影响,适用于大多数算法。对非常值较为敏感,大概导致非常值的影响被放大。归一化(Min-Max缩放)将特征缩放到一个特定范围(通常是[0, 1])。必要将数据限制在特定范围内的情况。数据范围固定,适用于必要严酷控制输出范围的场景。受数据范围影响较大,对非常值敏感,大概导致信息丢失。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |