一.归一化
原因:
公式:
作用于每一列,max为每一列的最大值,min为每一列的最小值,mx默认区间为1,mi为0;
API:
sklearn.preprocessing
过程:
1.获取数据
2.实例化一个转换器
3.调用fit_transform
代码:
from sklearn.preprocessing import MinMaxScaler
ef data_process():
# 1.获取数据
f = pd.read_excel('202001编译耗时统计.xlsx',sheet_name='编译数据')
# print(f)
data=f['序号'].values.reshape(-1,1)#如果传入的是一个一维矩阵,直接使用.reshape(1,-1)转化为二维矩阵,如果只是一个样本数据,需要先使用numpy转化为一个一维数组,再使用reshape转化为二维数组。
print(data)
# 2.实例化一个转换器
transfor = MinMaxScaler() # 默认范围是[0,1]
# 3.调用fit_transform
new_word = transfor.fit_transform(data)
print("new_data\n", new_word)
# print("特征名字\n", transfor.get_feature_names())
if __name__=="__main__":
data_process()
结果:
缺点:
因为是根据最大值和最小值来推算,缺乏鲁棒性,适合小型数据的运算。
二.标准化
定义:
通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内。
公式:
作用域于每一列,标准差:集中程度
API:
preprocessing.StandardScaler
代码:
from sklearn.preprocessing import StandardScaler
def data_process():
# 1.获取数据
f = pd.read_excel('202001编译耗时统计.xlsx',sheet_name='编译数据')
# print(f)
data=f['序号'].values.reshape(-1,1)#如果传入的是一个一维矩阵,直接使用.reshape(1,-1)转化为二维矩阵,如果只是一个样本数据,需要先使用numpy转化为一个一维数组,再使用reshape转化为二维数组。
print(data)
# 2.实例化一个转换器
transfor = StandardScaler() # 停用词必须fang在一个列表里面
# 3.调用fit_transform
new_word = transfor.fit_transform(data)
print("new_data\n", new_word)
# print("特征名字\n", transfor.get_feature_names())
if __name__=="__main__":
data_process()
结果: