美文网首页
sklearn.preprocessing之数据预处理

sklearn.preprocessing之数据预处理

作者: ltochange | 来源:发表于2021-08-03 23:03 被阅读0次

sklearn.preprocessing 提供了多个数据预处理类和方法,将原始特征向量转换为更适合于下游模型的表示。

Standardization 标准化

对训练样本中的每个属性统计计算均值和方差,然后对需要标准化的数据进行处理:
x^{*}=\frac{X-\mu}{\sigma}

from sklearn import preprocessing
import numpy as np
X_train = np.array([[1., -1., 2.], [2., 0., 0.], [0., 1., -1.]])
scaler = preprocessing.StandardScaler().fit(X_train)
print(scaler)
print("均值:", scaler.mean_)
print("方差:", scaler.scale_)
X_scaled = scaler.transform(X_train)
print("转换后的数据", X_scaled)

输出:

StandardScaler(copy=True, with_mean=True, with_std=True)
均值: [1.         0.         0.33333333]
方差: [0.81649658 0.81649658 1.24721913]
转换后的数据:
 [[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]

用训练集得到的scaler ,通过transform方法来标准化测试集。用inverse_transform 可还原得到原来的数据

# 用训练得到的scaler,来标准化测试集
X_test = np.array([[4., -4., 20.], [8., 10., 10.], [10., 11., -11.]])
X_scaled = scaler.transform(X_test)
print("转换后的数据:\n", X_scaled)
# 还原数据
X_ori = scaler.inverse_transform(X_scaled)
print("还原数据:\n", X_ori)
转换后的数据:
 [[ 3.67423461 -4.89897949 15.76841327]
 [ 8.5732141  12.24744871  7.75057602]
 [11.02270384 13.47219359 -9.08688223]]
还原数据:
 [[  4.  -4.  20.]
 [  8.  10.  10.]
 [ 10.  11. -11.]]

相关文章

网友评论

      本文标题:sklearn.preprocessing之数据预处理

      本文链接:https://www.haomeiwen.com/subject/jfppvltx.html