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