赞
踩
在机器学习中,数据标准化是一项关键的预处理步骤。标准化(Standardization)是将数据转换为具有均值为0和标准差为1的分布。这样可以确保特征在相同的尺度上,有助于提升某些机器学习算法的性能和稳定性。
Scikit-learn提供了一个简单易用的工具来进行数据标准化,即StandardScaler
。
标准化的过程是对每个特征进行如下变换:
其中:
经过标准化后,数据将具有均值为0和标准差为1的分布,这样不同特征的尺度差异被消除。
标准化在以下情况中特别有用:
以下是使用Scikit-learn进行数据标准化的详细步骤和示例代码。
导入库:
导入必要的库,如StandardScaler
、numpy
等。
加载数据:
创建或加载一个示例数据集。实例化StandardScaler:
创建StandardScaler
对象。拟合并转换数据:
使用fit_transform
方法对训练数据进行标准化,对测试数据使用transform
方法进行标准化(使用在训练数据上计算的均值和标准差)。- import numpy as np
- from sklearn.preprocessing import StandardScaler
- from sklearn.model_selection import train_test_split
-
- # 生成示例数据
- X = np.array([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11]])
- y = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
-
- # 分割数据为训练集和测试集
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
-
- # 创建StandardScaler对象
- scaler = StandardScaler()
-
- # 对训练数据进行拟合并转换
- X_train_scaled = scaler.fit_transform(X_train)
-
- # 对测试数据进行转换(使用在训练数据上计算的均值和标准差)
- X_test_scaled = scaler.transform(X_test)
-
- # 输出标准化后的数据
- print("Standardized Training Data:\n", X_train_scaled)
- print("Standardized Testing Data:\n", X_test_scaled)

在上面的代码中,生成了一些示例数据,并将其分割为训练集和测试集。然后使用StandardScaler
对数据进行标准化处理。注意,在对测试数据进行标准化时,使用了在训练数据上计算的均值和标准差,这一点非常重要,确保测试数据的标准化过程与训练数据一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。