機器學習 歸一化數值

2022-04-13 07:56:26 字數 1235 閱讀 4022

在計算歐氏距離的過程中,數值較大的屬性對結果的貢獻大,如果認為不同屬性權重應該相同的話,就需要將數值歸一化處理。

from numpy import *

def autonorm(dataset):

minvals=dataset.min(0) #取每列的最小值,返回陣列

print(minvals)

maxvals=dataset.max(0)

print(maxvals)

ranges=maxvals-minvals #ranges是每列的最大值與最小值之差組成的陣列

print(ranges)

normdataset=zeros(shape(dataset))

print(normdataset)

m=dataset.shape[0] #取dataset的行數

normdataset=dataset-tile(minvals,(m,1))

print(normdataset)

normdataset=normdataset/tile(ranges,(m,1))

print(ranges)

return normdataset

minvals=dataset.min(0)    #取資料集每列的最小值,返回陣列

from numpy import *

dataset=array(([6,5],

[3,1000],

[10,300]))

print(dataset.min()) #返回所有元素中的最小值

print(dataset.min(0)) #返回每列的最小值組成的陣列

print(dataset.min(1)) #返回每行的最小值組成的陣列

輸出:3

[3 5]

[ 5 3 10]

m=dataset.shape[0] #取dataset的行數

from numpy import *

dataset=array(([6,5],

[3,1000],

[10,300]))

print(dataset.shape) #返回資料集的「形狀」,行數和列數

print(dataset.shape[0]) #返回行數

print(dataset.shape[1]) #返回列數

輸出:(3, 2)

32

機器學習 歸一化數值

1.為什麼要歸一化?表示乙個事物有不同的維度 即 屬性 每個屬性的取值範圍不同,導致計算時此屬性占用的權重不同,即資料的量綱不同,量綱小的資料容易受到量綱大的資料影響。如 兩個人的屬性對比 屬性a person b persion 身高1.75 1.81 年齡41 26收入 40000 10000 ...

機器學習演算法 歸一化數值

coding utf 8 author whf import numpy from knn import file2matrix from numpy import def autonorm dataset 將每列的最小值放在minvals中 minvals dataset.min 0 將每列的最大...

數值歸一化

當資料報含不同量綱的多種變數時,數值間的差別可能很大,例如有些有機酸的離解常數 pka 數值大約為個位數或為負數,沸點資料則約為幾十攝氏度或數百攝氏度。再如所採用的單位不同,資料的大小也會有很大的差別,如毫摩爾濃度與摩爾濃度相差1000倍。如果將這種不同種類 不同量綱 數值大小差別很大的資料組合在一...