numpy 归一化_归一化(MinMax)和标准化(Standard)的区别
生活随笔
收集整理的這篇文章主要介紹了
numpy 归一化_归一化(MinMax)和标准化(Standard)的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此文參考https://blog.csdn.net/u010947534/article/details/86632819
定義上的區別
歸一化:將數據的值壓縮到0到1之間,公式如下
標準化:將數據所防偽均值是0,方差為1的狀態,公式如下:
歸一化、標準化的好處:
在機器學習算法的目標函數(例如SVM的RBF內核或線性模型的l1和l2正則化),許多學習算法中目標函數的基礎都是假設所有的特征都是零均值并且具有同一階數上的方差。如果某個特征的方差比其他特征大幾個數量級,那么它就會在學習算法中占據主導位置,導致學習器并不能像我們說期望的那樣,從其他特征中學習。舉一個簡單的例子,在KNN中,我們需要計算待分類點與所有實例點的距離。假設每個實例點(instance)由n個features構成。如果我們選用的距離度量為歐式距離,如果數據預先沒有經過歸一化,那么那些絕對值大的features在歐式距離計算的時候起了決定性作用。
從經驗上說,歸一化是讓不同維度之間的特征在數值上有一定比較性,可以大大提高分類器的準確性。
歸一化和標準化的對比分析:
首先明確,在機器學習中,標準化是更常用的手段,歸一化的應用場景是有限的。我總結原因有兩點:
- 1、標準化更好保持了樣本間距。當樣本中有異常點時,歸一化有可能將正常的樣本“擠”到一起去。比如三個樣本,某個特征的值為1,2,10000,假設10000這個值是異常值,用歸一化的方法后,正常的1,2就會被“擠”到一起去。如果不幸的是1和2的分類標簽還是相反的,那么,當我們用梯度下降來做分類模型訓練時,模型會需要更長的時間收斂,因為將樣本分開需要更大的努力!而標準化在這方面就做得很好,至少它不會將樣本“擠到一起”。
- 2、標準化更符合統計學假設
對一個數值特征來說,很大可能它是服從正態分布的。標準化其實是基于這個隱含假設,只不過是略施小技,將這個正態分布調整為均值為0,方差為1的標準正態分布而已。
我們可以先畫三個圖來試驗一下
先畫標準正態分布形成的圖import numpy as np from sklearn.preprocessing import StandardScaler,MinMaxScaler import matplotlib.pyplot as plttest_arr = numpy.random.randn(10000) * 100 + 500 std_sca = StandardScaler() mmx_sca = MinMaxScaler()test_std = std_sca.fit_transform(test_arr.reshape(-1,1)) test_mmx = mmx_sca.fit_transform(test_arr.reshape(-1,1))fig,axes = plt.subplots(1,3,figsize=(20,5))plt.suptitle('Original Array ===> After Standard Transform ===> After MinMax TransForm',fontsize=20) for idx, array in enumerate([test_arr,test_std,test_mx]):axes[idx].hist(array,bins=10)接下來看看偏態數據形成的圖test_arr = np.concatenate((test_arr,np.linspace(5000,100000,num=30)),axis=0) std_sca = StandardScaler() mmx_sca = MinMaxScaler()test_std = std_sca.fit_transform(test_arr.reshape(-1,1)) test_mmx = mmx_sca.fit_transform(test_arr.reshape(-1,1))fig,axes = plt.subplots(1,3,figsize=(20,5)) plt.suptitle('Original Array ===> After Standard Transform ===> After MinMax TransForm',fontsize=20) for idx, array in enumerate([test_arr,test_std,test_mx]):axes[idx].hist(array[:10010],bins=50)可以看到標準化沒有改變原始數據的極值例子,而歸一化則將所有數據都壓縮到了01區間內,改變了數據的分布。
總結
以上是生活随笔為你收集整理的numpy 归一化_归一化(MinMax)和标准化(Standard)的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我在17173上传的视频找不到。
- 下一篇: 成都大熊猫基地停车收费