#coding=utf-8
__author__ = 'whf'
import numpy
from knn import file2matrix
from numpy import *
def autonorm(dataset):
#將每列的最小值放在minvals中
minvals = dataset.min(0)
#將每列的最大值放在maxvals中
maxvals = dataset.max(0)
#計算可能的取值範圍
ranges=maxvals-minvals
#建立新的返回矩陣
normdataset = zeros(shape(dataset))
#得到資料集的行數 shape方法用來得到矩陣或陣列的維數
m = dataset.shape[0]
#tile:numpy中的函式。tile將原來的乙個陣列minvals,擴充成了m行1列的陣列
#矩陣中所有的值減去最小值
normdataset = dataset - tile(minvals,(m,1))
#矩陣中所有的值除以最大取值範圍進行歸一化
normdataset = normdataset/tile(ranges,(m,1))
#返回歸一矩陣 取值範圍 和最小值
return normdataset,ranges,minvals
機器學習 歸一化數值
在計算歐氏距離的過程中,數值較大的屬性對結果的貢獻大,如果認為不同屬性權重應該相同的話,就需要將數值歸一化處理。from numpy import def autonorm dataset minvals dataset.min 0 取每列的最小值,返回陣列 print minvals maxval...
機器學習 歸一化數值
1.為什麼要歸一化?表示乙個事物有不同的維度 即 屬性 每個屬性的取值範圍不同,導致計算時此屬性占用的權重不同,即資料的量綱不同,量綱小的資料容易受到量綱大的資料影響。如 兩個人的屬性對比 屬性a person b persion 身高1.75 1.81 年齡41 26收入 40000 10000 ...
數值歸一化
當資料報含不同量綱的多種變數時,數值間的差別可能很大,例如有些有機酸的離解常數 pka 數值大約為個位數或為負數,沸點資料則約為幾十攝氏度或數百攝氏度。再如所採用的單位不同,資料的大小也會有很大的差別,如毫摩爾濃度與摩爾濃度相差1000倍。如果將這種不同種類 不同量綱 數值大小差別很大的資料組合在一...