在計算歐氏距離的過程中,數值較大的屬性對結果的貢獻大,如果認為不同屬性權重應該相同的話,就需要將數值歸一化處理。
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倍。如果將這種不同種類 不同量綱 數值大小差別很大的資料組合在一...