資料預處理 歸一化

2021-09-12 17:59:42 字數 1347 閱讀 3851

由於進行分類器或模型的建立與訓練時,輸入的資料範圍可能比較大,同時樣本中各資料可能量綱不一致,這樣的資料容易對模型訓練或分類器的構建結果產生影響,因此需要對其進行歸一化處理。

那就是將該樣本(樣本集中第i行資料)歸一到範圍(0,1)之間。

一種簡單而快速的標準歸一化處理演算法是線性轉換演算法,最為常見的是如下形式:

假設x為樣本,y歸一化後資料,則有

y=(x-min)/(max-min)

因此如果乙個樣本集s=[x1,x2,…,xi,…,xn],i=(1,2,…,n)。

即該樣本集共有n個樣本,其中每個樣本都是這樣的資料:

xi=[x(i,1), x(i,2), …, x(i,j), …, x(i,m)],j=(1,2,…,m)。

即每個樣本都由m個資料構成。

因此對於該樣本集的歸一化處理應該是這樣的:

遍歷該樣本集, yi = ( xi -min(xi) )/( max(xi) -min(xi))

由於陣列的加和乘運算子均為拼接符號,因此需要將其轉換為矩陣陣列,利用矩陣的基本運算。

即:numpy.array()

**如下:

import numpy as np;

a=np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]);

def mnmx(arr):

arr=np.array(arr); #將輸入樣本集轉換為矩陣,以便做矩陣基本運算

mnmx=;

for i in range(len(arr)):

maxi,mini=max(arr[i]),min(arr[i]); #得到第i行資料(即第i個樣本)的最大值和最小值

temp=(arr[i]-mini)/(maxi-mini); #將該樣本資料進行歸一化處理

mnmx=np.array(mnmx);

return mnmx;

print(mnmx(a));

結果如下:

#a=

[[1 2 3 4]

[2 3 4 5]

[3 4 5 6]

[4 5 6 7]]

#print

[[0. 0.33333333 0.66666667 1. ]

[0. 0.33333333 0.66666667 1. ]

[0. 0.33333333 0.66666667 1. ]

[0. 0.33333333 0.66666667 1. ]]

資料預處理 歸一化

歸一化是一種資料預處理方法,就是要把你需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內,為了後面資料處理的方便,其次是保正程式執行時 收斂加快 歸一化的三種方法 1 線性函式轉換 表示式如下 y x minvalue maxvalue minvalue 說明 x y分別為轉換前 後...

資料預處理 歸一化

1 公式 x numpy array格式的資料 n samples,n features n samples 樣本數 n features 特徵數 列 返回值 形狀相同的array 3 缺點 由於歸一化使用最大值最小值進行計算,若最大值 最小值缺失或錯誤,歸一化結果的準確性就會大大降低,為此可採用標...

歸一化(資料預處理)

一 資料標準化 歸一化 首先,資料標準化處理主要包括資料同趨化處理 中心化處理 和無量綱化處理。同趨化處理主要解決不同性質資料問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考慮改變逆指標資料性質,使所有指針對測評方案的作用力同趨化,再加總才能得出正確結果。無量綱化處理主要為了消除...