之前我們使用 knn 演算法來完成分類這個任務的時候,其實少做了非常重要的一步就是資料歸一化(feature scaling)。
首先,我們來看看,為什麼我們需要做資料歸一化?我依然舉出腫瘤這個例子,假設我們有兩個特徵,乙個是腫瘤大小(單位是cm),乙個是發現天數(單位是天)。樣本1中腫瘤大小為1cm,已經發現200天了,樣本二中腫瘤大小為5cm,已經發現100天了。
那麼這兩個樣本之間的距離是怎樣的呢?如果我們使用尤拉距離,就是sqrt( (1-5)^2 + (200-100)^2 )
。可以很容易的發現,這個距離被發現時間所主導了,我們發現的時間間隔為100天,而腫瘤的大小只相差了4cm,所以導致樣本間的距離被發現時間所主導了。
但是,如果我們把發現時間的單位用年來表示,如下圖。此時,樣本間的距離又被腫瘤的大小所主導了。
所以我們發現,如果我們不進行一些資料的基本處理,我們這樣直接計算出兩個樣本之間的距離很有可能是有偏差的,不能非常好的同時反映每乙個特徵的重要程度。正是因為如此,我們要對資料進行歸一化處理。
所謂的資料歸一化處理,它的作用就是將我們所有的資料對映到同一尺度。通常這種對映方式,最簡單就是把所有的資料對映到 0-1 之間,叫做最值歸一化(normalization)。可以用下列表示式表示。
這種方式其實是比較簡單的一種做法,它適用於分布有明顯邊界的情況(比如考試成績有明顯的分數邊界:0-100),但是最值歸一化也有乙個缺點,就是受 outlier 影響較大(比如說收入是沒有明顯邊界的)。
相應的乙個改進方式是使用均值方差歸一化(standardization),就是把所有資料歸一到均值為0,方差為1的分布中。換句話說,使用這種方法的結果是我們的資料不保證在0-1之間,但是所有的資料它的均值都在0的位置,整體資料的方差為1。這種方式適用於資料分布沒有明顯邊界。換句話說,我們的資料有可能存在極端資料值 outlier,使用這種方式相對比較好。如果我們的資料有明顯邊界的話,使用這種方式也是比較好的,所以在這裡建議,除非像之前舉的例子,學生的考試分數或者影象的畫素(0-255)這種特徵分布是有明確邊界的這些情況,那麼一般情況我們都是用均值方差歸一化的方式。這種方式計算方法如下。(xmean 為均值, s 方差)
下面,我們具體實現這兩種歸一化的過程。
使用這種均值方差歸一化的方法,它的本質是將我們所有的資料的均值(中心值)放在0這個位置,而它分布的幅度(方差)分布在1這樣的位置。即使我們的資料中有 outlier 這樣的極端值存在,我們資料整體依然滿足均值為0,方差為1,也就是說它不會形成乙個有偏差的資料,這也是相比於最值歸一化來說它的優點。具體**見 07 資料歸一化.ipyn
資料歸一化
近來,在網上搜了很多關於資料歸一化的帖子,看了太多,很雜,這裡整理總結一下 歸一化是一種資料預處理方法,就是要把你需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內,為了後面資料處理的方便,其次是保正程式執行時 收斂加快。比如說,對於奇異樣本資料 所謂奇異樣本資料資料指的是相對於其他...
資料歸一化
如果對神經網路的 輸入和 輸出數 據進行 一定的 預處理 可以加快網路的訓練速 度 matlab 中 提供的預 處理方 法有歸一化處理 將每組資料都變為 1 至 1 之 間數 所涉及 的函式有 premnmx postmnmx tramnmx 標準化處理 將每組資料都為均 值為 0,方 差 為 1 ...
資料歸一化
資料標準化 歸一化 處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。以下是兩種常用的歸一...