数据归一化

数据归一化

import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
data = np.arange(36)
data = data.reshape(6,6)
data = pd.DataFrame(data)
data
0 1 2 3 4 5
0 0 1 2 3 4 5
1 6 7 8 9 10 11
2 12 13 14 15 16 17
3 18 19 20 21 22 23
4 24 25 26 27 28 29
5 30 31 32 33 34 35
sclar = MinMaxScaler(feature_range=(0,1)).fit(data)
result = sclar.transform(data)
result
array([[0. , 0. , 0. , 0. , 0. , 0. ],
       [0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
       [0.4, 0.4, 0.4, 0.4, 0.4, 0.4],
       [0.6, 0.6, 0.6, 0.6, 0.6, 0.6],
       [0.8, 0.8, 0.8, 0.8, 0.8, 0.8],
       [1. , 1. , 1. , 1. , 1. , 1. ]])
sclar_ = sclar.inverse_transform(result)
sclar_
array([[ 0.,  1.,  2.,  3.,  4.,  5.],
       [ 6.,  7.,  8.,  9., 10., 11.],
       [12., 13., 14., 15., 16., 17.],
       [18., 19., 20., 21., 22., 23.],
       [24., 25., 26., 27., 28., 29.],
       [30., 31., 32., 33., 34., 35.]])

使用 np 实现数据归一化#

data = np.arange(36)
data = data.reshape(6,6)
data = pd.DataFrame(data)
data
0 1 2 3 4 5
0 0 1 2 3 4 5
1 6 7 8 9 10 11
2 12 13 14 15 16 17
3 18 19 20 21 22 23
4 24 25 26 27 28 29
5 30 31 32 33 34 35
x_nor = (data - data.min(axis=0)) / (data.max(axis=0) - data.min(axis=0))
x_nor
0 1 2 3 4 5
0 0.0 0.0 0.0 0.0 0.0 0.0
1 0.2 0.2 0.2 0.2 0.2 0.2
2 0.4 0.4 0.4 0.4 0.4 0.4
3 0.6 0.6 0.6 0.6 0.6 0.6
4 0.8 0.8 0.8 0.8 0.8 0.8
5 1.0 1.0 1.0 1.0 1.0 1.0
x_nor_inverse = x_nor * (data.max(axis=0) - data.min(axis=0)) + data.min(axis=0)
x_nor_inverse
0 1 2 3 4 5
0 0.0 1.0 2.0 3.0 4.0 5.0
1 6.0 7.0 8.0 9.0 10.0 11.0
2 12.0 13.0 14.0 15.0 16.0 17.0
3 18.0 19.0 20.0 21.0 22.0 23.0
4 24.0 25.0 26.0 27.0 28.0 29.0
5 30.0 31.0 32.0 33.0 34.0 35.0

数据标准化

data = np.arange(36)
data = data.reshape(6,6)
data = pd.DataFrame(data)
data
0 1 2 3 4 5
0 0 1 2 3 4 5
1 6 7 8 9 10 11
2 12 13 14 15 16 17
3 18 19 20 21 22 23
4 24 25 26 27 28 29
5 30 31 32 33 34 35
from sklearn.preprocessing import StandardScaler
std = StandardScaler().fit(data)
result1 = std.transform(data)
result1
array([[-1.46385011, -1.46385011, -1.46385011, -1.46385011, -1.46385011,
        -1.46385011],
       [-0.87831007, -0.87831007, -0.87831007, -0.87831007, -0.87831007,
        -0.87831007],
       [-0.29277002, -0.29277002, -0.29277002, -0.29277002, -0.29277002,
        -0.29277002],
       [ 0.29277002,  0.29277002,  0.29277002,  0.29277002,  0.29277002,
         0.29277002],
       [ 0.87831007,  0.87831007,  0.87831007,  0.87831007,  0.87831007,
         0.87831007],
       [ 1.46385011,  1.46385011,  1.46385011,  1.46385011,  1.46385011,
         1.46385011]])
result1.mean()
-3.700743415417188e-17
result1.var()
1.0000000000000002
std.inverse_transform(result1)
array([[ 0.,  1.,  2.,  3.,  4.,  5.],
       [ 6.,  7.,  8.,  9., 10., 11.],
       [12., 13., 14., 15., 16., 17.],
       [18., 19., 20., 21., 22., 23.],
       [24., 25., 26., 27., 28., 29.],
       [30., 31., 32., 33., 34., 35.]])

作者:Hovey

出处:https://www.cnblogs.com/thankcat/p/17297571.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ThankCAT  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示