第2关:数据标准化
任务描述
本关任务:在第一关的基础上,对x1 ~ x6数值型变量作均值-方差标准化处理,需要注意的是x7~x15名义变量不需要作标准化处理。
相关知识
为了完成本关任务,你需要掌握:1.如何做均值-方差规范化处理;2.如何对填充后的数据做极差规范化处理。
均值-方差规范化处理
指标之间的数据差异是比较大的,需要做规范化处理。现给出经过均值填充后的数据data
,为了区分,记x=data
,x1=data
,对x做均值-方差规范化处理,对x1做极差规范化处理。
data
:
首先,对x做均值-方差规范化处理,步骤如下:
#(1)导入均值-方差规范化模块StandardScaler。
from sklearn.preprocessing import StandardScaler
#(2)利用StandardScaler创建均值-方差规范化对象scaler。
scaler = StandardScaler()
#(3)调用scaler对象中的fit()拟合方法,对待处理的数据x进行拟合训练。
scaler.fit(x)
#(4)调用scaler对象中的transform()方法,返回规范化后的数据集x(覆盖原未规范化的x)。
X=scaler.transform(x)
示例代码如下:
from sklearn.preprocessing import StandardScaler
x=data
scaler = StandardScaler()
scaler.fit(x)
x=scaler.transform(x)
输出:
极差规范化处理
其次,对填充后的数据x1做极差规范化处理,基本步骤如下:
#(1)导入极差规范化模块MinMaxScaler。
from sklearn.preprocessing import MinMaxScaler #导入极差规范化模块
#(2)利用MinMaxScaler创建极差规范化对象min_max_scaler。
min_max_scaler = MinMaxScaler()
#(3)调用min_max_scaler中的fit()拟合方法,对待处理的数据x1进行拟合训练。
min_max_scaler.fit(x1)
#(4)调用min_max_scaler中的transform()方法,返回处理后的数据集x1(覆盖原未处理的X1)。
x1=min_max_scaler.transform(x1)
示例代码如下:
from sklearn.preprocessing import MinMaxScaler
x1=data
min_max_scaler = MinMaxScaler()
min_max_scaler.fit(x1)
x1=min_max_scaler.transform(x1)
输出:
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试哦! 开始你的任务吧,祝你成功!
任务代码
#在上一关的基础上,对自变量X中的数值变量(x1~x6)作均值-方差标准化处理
# 需要注意的是x7~x15名义变量不需要作标准化处理
# 返回结果X1,数据结构为数组形式
# X1中含有标准化后的x1~x6和未标准化的x7~x15
from sklearn.preprocessing import StandardScaler
def return_values():
import numpy as np
X=np.load('X.npy')
scaler = StandardScaler()
X1 = np.copy(X)
X1[:, :6] = scaler.fit_transform(X[:, :6])
return X1
#********** End **********#
你如果想知道这个均值—方差是怎么计算的下面是很直观的代码:
#在上一关的基础上,对自变量X中的数值变量(x1~x6)作均值-方差标准化处理
# 需要注意的是x7~x15名义变量不需要作标准化处理
# 返回结果X1,数据结构为数组形式
# X1中含有标准化后的x1~x6和未标准化的x7~x15
def return_values():
import numpy as np
X=np.load('X.npy')
X1 = np.copy(X)
X1[:, :6] = (X[:, :6] - np.mean(X[:, :6], axis=0)) / np.std(X[:, :6], axis=0)
return X1
#********** End **********#