1. 程式人生 > >機器學習演算法——歸一化數值

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

#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