python sklearn 中数据处理 归一化函数

您所在的位置:网站首页 归一化公式解释 python sklearn 中数据处理 归一化函数

python sklearn 中数据处理 归一化函数

2023-09-30 03:00| 来源: 网络整理| 查看: 265

MinMaxScaler()函数在sklearn包中

MinMaxScaler()函数原型为:

sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True) 其中:

feature_range:为元组类型,范围某认为:[0,1],也可以取其他范围值。

copy:为拷贝属性,默认为True,表示对原数据组拷贝操作,这样变换后元数组不变,False表 示变换操作后,原数组也跟随变化,相当于c++中的引用或指针。copy = 1 的效果 同 copy = True,copy = 0 的效果同 copy =False

函数表示的数学原型为: X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) X_scaled = X_std * (max - min) + min

#注意:上面的函数时对数组的每一列进行处理的,处理之前的数据类型为 numpy.array 或者 list(列表类型)。注意!:如果是numpy 类型,数据类型要设置成np.float64 或者 np.float32 的形式,如果是np.int 的形式会出现warning 的提醒。 如果是np.float64 ,MinMaxScaler() 函数处理之后是 数据类型是 np.float64; 如果是np.float32 ,MinMaxScaler() 函数处理之后是 数据类型是 np.float32; 如果是list ,MinMaxScaler() 函数处理之后是 数据类型是 np.float64;

处理之后是在设置范围feautre_range = (min, max) 中 min - max 这个范围内的数,并且数据的形状和原数据保持一致,处理之后的数据类型为np.float64。其中 min , max分别 默认为 0 , 1 下面是举例:

from sklearn import preprocessing import numpy as np x = np.array([[1.,-1.,2.], [2.,0.,0.], [0.,1.,-1.]]) min_max_scaler = preprocessing.MinMaxScaler()#默认为范围0~1,拷贝操作 # 其中默认的参数是 copy = True ,也就是生成新的数据,不改变原来的数据 # min_max_scaler1 = preprocessing.MinMaxScaler(feature_range = (1,3),copy = False)#范围改为1~3,对原数组操作 # min_max_scaler1 = preprocessing.MinMaxScaler(feature_range = (0,1),copy = False)#范围改为1~3,对原数组操作 # min_max_scaler1 = preprocessing.MinMaxScaler(feature_range = (0,1),copy = 0)#范围改为1~3,对原数组操作 # copy = 0 时,完全和 copy=False 时 得到的结果一样 min_max_scaler1 = preprocessing.MinMaxScaler(feature_range = (0,1),copy = 1)# copy =1 时 和 copy = True 时得到的结果一样, 其中copy=True 是系统默认的 x_minmax = min_max_scaler.fit_transform(x) print('x_minmax = \n',x_minmax) print('x = \n', x) print("--------- 我是分割线 ------------") # 原来的 x 和 现在的 min_max_scaler_copy 数值是一样的,都是fit_transform 之后的数据 min_max_scaler_copy = min_max_scaler1.fit_transform(x) print("x = \n", x) print("min_max_scaler_copy = \n", min_max_scaler_copy) print("-------- wanjie -----------") #新的测试数据进来,同样的转换 # 新的数据,列数一样,行数可以不一样 x_test = np.array([[-3,-1,4.], [0,-1,10]]) x_test_maxabs = min_max_scaler.transform(x_test) print('x_test_maxabs = ',x_test_maxabs)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3