資料歸一化 MinMaxScaler

2021-10-05 18:45:41 字數 2231 閱讀 9208

classsklearn.preprocessing.minmaxscaler(feature_range=(0, 1), copy=true)

將每個元素(特徵,feature)轉換成給定範圍的值。

該估計器(estimator)分別縮放和轉換每個特徵,以使其處於訓練集的給定範圍內,例如

在區間[0,1]。

轉換原理如下:

x_std =

(x - x.

min(axis=0)

)/(x.max

(axis=0)

- x.

min(axis=0)

)x_scaled = x_std *

(max

-min)+

min

其中min,max=feature_range。

實際轉換是按照如下過程進行的:

x_scaled = scale * x +

min- x.

min(axis=0)

* scale

where scale =

(max

-min)/

(x.max

(axis=0)

- x.

min(axis=0)

)

以上內容來自scikit-learn官方文件

fit(self, x[, y]):計算給定資料集x的最大/小值用於之後的放縮(這一步沒有進行放縮)

transform(self, x):將資料集x放縮至給定區間

example:

>>

>

from sklearn.preprocessing import minmaxscaler

>>

> data =[[

-1,2

],[-

0.5,6]

,[0,

10],[

1,18]

]>>

> scaler = minmaxscaler(

)>>

>

print

(scaler.fit(data)

)minmaxscaler(

)>>

>

print

(scaler.data_max_)[1

.18.]

>>

>

print

(scaler.transform(data))[

[0.0

.][0.25

0.25][

0.50.5][

1.1.

]]>>

>

print

(scaler.transform([[

2,2]

]))[

[1.50.

]]

fit_transform(self, x[, y]):計算並將資料放縮至給定區間,相當於fit()+transform()

inverse_transform(self, x):根據給定範圍(feature_range)恢復資料

minmaxscaler()有兩個屬性:min_和scale_

可以看到,通過它們計算x_scaled也就簡化為了下面這個式子:

x_scaled = self.scale_ * x + self.min_
可逆的,將資料恢復至原來的數量級也變得非常容易了。

可見,對於乙個範圍(feature_range)內的資料,是可以用乙個minmaxscaler進行放縮的。即使他們不是同乙個陣列。所以對於ml、dl**任務而言,

可以對原始資料利用minmaxscaler放縮,加快訓練過程;

測試時,**結果可以使用同乙個minmaxscaler物件恢復到實際資料範圍。因為標準化後的資料往往很難看出有什麼實際的意義。

上次修改:2021-01-18

資料歸一化

近來,在網上搜了很多關於資料歸一化的帖子,看了太多,很雜,這裡整理總結一下 歸一化是一種資料預處理方法,就是要把你需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內,為了後面資料處理的方便,其次是保正程式執行時 收斂加快。比如說,對於奇異樣本資料 所謂奇異樣本資料資料指的是相對於其他...

資料歸一化

如果對神經網路的 輸入和 輸出數 據進行 一定的 預處理 可以加快網路的訓練速 度 matlab 中 提供的預 處理方 法有歸一化處理 將每組資料都變為 1 至 1 之 間數 所涉及 的函式有 premnmx postmnmx tramnmx 標準化處理 將每組資料都為均 值為 0,方 差 為 1 ...

資料歸一化

資料標準化 歸一化 處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。以下是兩種常用的歸一...