資料探勘 資料標準化 python實現

2021-10-19 09:45:53 字數 4494 閱讀 3461

# -*-coding:utf-8-*-

""" author: thinkgamer

desc:

**4-1 python實現標準化方法

"""import numpy as np

import math

class

datanorm

:def

__init__

(self)

: self.arr =[1

,2,3

,4,5

,6,7

,8,9

] self.x_max =

max(self.arr)

# 最大值

self.x_min =

min(self.arr)

# 最小值

self.x_mean =

sum(self.arr)

/len

(self.arr)

# 平均值

self.x_std = np.std(self.arr)

# 標準差

defmin_max

(self)

: arr_ =

list()

for x in self.arr:

# round(x,4) 對x保留4位小數

round

((x - self.x_min)

/(self.x_max - self.x_min),4

))print

("經過min_max標準化後的資料為:\n{}"

.format

(arr_)

)def

z_score

(self)

: arr_ =

list()

for x in self.arr:

round

((x - self.x_mean)

/ self.x_std,4)

)print

("經過z_score標準化後的資料為:\n{}"

.format

(arr_)

)# 有點問題,改為如下這樣

# def decimalscaling(self):

# arr_ = list()

# j = self.x_max // 10 if self.x_max % 10 == 0 else self.x_max // 10 + 1

# for x in self.arr:

# print("經過decimal scaling標準化後的資料為:\n{}".format(arr_))

defdecimalscaling

(self)

: arr_ =

list()

j =1 x_max =

max(

[abs

(one)

for one in self.arr]

)while x_max /

10>=

1.0:

j +=

1 x_max = x_max /

10for x in self.arr:

round

(x / math.

pow(

10, j),4

))print

("經過decimal scaling標準化後的資料為:\n{}"

.format

(arr_)

)def

mean

(self)

: arr_ =

list()

for x in self.arr:

round

((x - self.x_mean)

/(self.x_max - self.x_min),4

))print

("經過均值標準化後的資料為:\n{}"

.format

(arr_)

)def

vector

(self)

: arr_ =

list()

for x in self.arr:

round

(x /

sum(self.arr),4

))print

("經過向量標準化後的資料為:\n{}"

.format

(arr_)

)def

exponential

(self)

: arr_1 =

list()

for x in self.arr:

round

(math.log10(x)

/ math.log10(self.x_max),4

))print

("經過指數轉換法(log10)標準化後的資料為;\n{}"

.format

(arr_1)

) arr_2 =

list()

sum_e =

sum(

[math.exp(one)

for one in self.arr]

)for x in self.arr:

round

(math.exp(x)

/ sum_e,4)

)print

("經過指數轉換法(softmax)標準化後的資料為;\n{}"

.format

(arr_2)

) arr_3 =

list()

for x in self.arr:

round(1

/(1+ math.exp(

-x)),4

))print

("經過指數轉換法(sigmoid)標準化後的資料為;\n{}"

.format

(arr_3)

)if __name__ ==

"__main__"

: dn = datanorm(

) dn.min_max(

) dn.z_score(

) dn.decimalscaling(

) dn.mean(

) dn.vector(

) dn.exponential(

)

經過min_max標準化後的資料為:

[0.0

,0.125

,0.25

,0.375

,0.5

,0.625

,0.75

,0.875

,1.0

]經過z_score標準化後的資料為:[-

1.5492,-

1.1619,-

0.7746,-

0.3873

,0.0

,0.3873

,0.7746

,1.1619

,1.5492

]經過decimal scaling標準化後的資料為:

[0.1

,0.2

,0.3

,0.4

,0.5

,0.6

,0.7

,0.8

,0.9

]經過均值標準化後的資料為:[-

0.5,

-0.375,-

0.25,-

0.125

,0.0

,0.125

,0.25

,0.375

,0.5

]經過向量標準化後的資料為:

[0.0222

,0.0444

,0.0667

,0.0889

,0.1111

,0.1333

,0.1556

,0.1778

,0.2

]經過指數轉換法(log10)標準化後的資料為;

[0.0

,0.3155

,0.5

,0.6309

,0.7325

,0.8155

,0.8856

,0.9464

,1.0

]經過指數轉換法(softmax)標準化後的資料為;

[0.0002

,0.0006

,0.0016

,0.0043

,0.0116

,0.0315

,0.0856

,0.2326

,0.6322

]經過指數轉換法(sigmoid)標準化後的資料為;

[0.7311

,0.8808

,0.9526

,0.982

,0.9933

,0.9975

,0.9991

,0.9997

,0.9999

]

python 資料標準化

def datastandard from sklearn import preprocessing import numpy as np x np.array 1.1.2.2.0.0.0.1.1.print 原始資料為 n x print method1 指定均值方差資料標準化 預設均值0 方差 ...

Python 資料標準化

定義 將資料按照一定的比例進行縮放,使其落入乙個特定的區間。好處 加快模型的收斂速度,提高模型 精度 常見的六種標準化方法 class datanorm def init self self.arr 1 2,3 4,5 6,7 8,9 self.x max max self.arr self.x m...

Python資料標準化

z score標準化 1.產生隨機數 import numpy as np 產生隨機數 data 1 np.random.randn 3,4 從標準正態分佈中返回乙個或多個樣本值.data 2 np.random.rand 3,4 產生 0,1 的數 print randn產生的隨機數 n data...