要导入StandardScaler类进行数据标准化,请使用以下语句:

要导入StandardScaler类进行数据标准化,请使用以下语句:

from sklearn.preprocessing import StandardScaler

使用步骤详解

  1. 创建实例
    scaler = StandardScaler()

  2. 拟合数据(计算均值和标准差)
    scaler.fit(X_train)
    说明:X_train是训练集特征矩阵,形状为(n_samples, n_features)

  3. 转换数据(应用标准化)

    X_train_std = scaler.transform(X_train)  # 标准化训练集
    X_test_std = scaler.transform(X_test)     # 用训练集的参数标准化测试集
    

关键特性

  • 标准化公式
    z=x−μσz = \frac{x - \mu}{\sigma}z=σxμ
    其中μ\muμ是均值,σ\sigmaσ是标准差。
  • 作用:将数据转换为均值为0、标准差为1的分布,消除量纲影响。
  • 注意事项:测试集必须使用训练集计算的μ\muμσ\sigmaσ,避免数据泄露。

示例代码

import numpy as np
from sklearn.preprocessing import StandardScaler

# 生成示例数据(3个样本,2个特征)
data = np.array([[1.0, 2.0], [3.0, 1.0], [2.0, 3.0]])

# 标准化
scaler = StandardScaler()
scaler.fit(data)                # 计算均值和标准差
transformed_data = scaler.transform(data)  # 应用转换

print("原始数据:\n", data)
print("标准化后:\n", transformed_data)
print("均值:", scaler.mean_)     # 输出: [2.0, 2.0]
print("标准差:", np.sqrt(scaler.var_))  # 输出: [0.82, 0.82] (近似)

常见问题解答

Q: 为什么测试集要使用训练集的参数?
A: 确保生产环境中的数据与训练时采用相同的转换规则,避免模型偏差。

Q: 标准化和归一化(MinMaxScaler)的区别?
A: 标准化保留异常值信息,归一化将数据压缩到[0,1]区间。标准化更适用于服从高斯分布的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值