練習特徵處理時所用的MinMaxScaler函式的使用時機
老師您好:
目前練習Day_10 特徵處理時,有用到MinMaxScaler函式整理數據,查了一些資料,會用到此函式的時機有兩種,一種是標準差(SD)較小時,一種想讓稀疏數據中的0值繼續為0,增加數據穩定性,我有使用另一個skilearn函式StandardScaler做比較,兩個函式都會讓數值盡量介於0, 1之間,發現兩種標準化後執行Day_10作業時,結果都差不多,以下是我的問題:
1. MinMaxScaler使用時機為何?所謂標準差較小時,是多小?有量化標準嗎?
2. 使稀疏數據中的0值繼續為0,增加數據穩定性,這句話不能理解,不是本來就是零,零乘零還是零,但大的數值卻是變小了,還請老師解惑?
3. MinMaxScaler 和 StandardScaler 兩者可有優缺點可比較?或是使用時機不同?
謝謝老師的寶貴時間解答
回答列表
-
2020/06/01 上午 00:07張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
嗨,Jerry Huang
你好,首先先說明一下這兩種方法在機器學習的領域中稱為「Normalization」。以下關於你的問題簡單回答:
1. MinMaxScaler使用時機為何?所謂標準差較小時,是多小?有量化標準嗎?
2. 使稀疏數據中的0值繼續為0,增加數據穩定性,這句話不能理解,不是本來就是零,零乘零還是零,但大的數值卻是變小了,還請老師解惑?
=> 這兩點是依據「一種是標準差(SD)較小時,一種想讓稀疏數據中的0值繼續為0,增加數據穩定性」這段而來,可以補充一下這兩段的來源嗎?
3. MinMaxScaler 和 StandardScaler 兩者可有優缺點可比較?或是使用時機不同?
=> Normalization 的使用時機是在特徵之間的範圍不同的時,避免特定欄位影響過大,因此將所有欄位都限縮在同一個區間,MinMaxScaler 和 StandardScaler 是不同的計算方式。MinMaxScaler 可以將資料等比例縮放到 0、 1 之間;StandardScaler 可以將資料縮放到平均數為 0 標準差為 1 的區間內(因此資料分布會趨近常態)。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/06/01 下午 01:48張維元 (WeiYuan)贊同數:2不贊同數:0留言數:6
嗨,關於你的問題「謝謝老師的快速回應,聽老師這麼一問,才想到網路資源很多,卻很難判斷是否正確,參考網址如下: 」回覆如下:
這的確是新手的一個盲點,不管是怎麼選擇適合的資源或者使篩選正確的參考資料都蠻苦惱的,所以我常常建議新手階段最好有讀書會或是類似學長姊的角色能夠討論。
從第二篇的內容,我們先要得知「Normalizion」的是用於將屬性縮放到一個指定範圍,目的是避免特別特徵影響成分過大,第一篇跟第三篇分別有提供幾種方法。以第一篇來說,StandardScaler 與 MinMaxScaler的差別有列出幾點,只是我自己覺得這些特性都很統計觀點,如果你對於統計沒那麼熟悉的話可能會不知道意義是什麼。那我這邊習慣這樣記,MinMaxScaler 和 StandardScaler 是不同的計算方式:
* MinMaxScaler 可以將資料等比例縮放到 0、 1 之間;
* StandardScaler 可以將資料縮放到平均數為 0 標準差為 1 的區間內(因此資料分布會趨近常態)。
通常,MinMaxScaler 可以保存原本資料的分佈與趨勢(無失真),而 StandardScaler 比較適合原本的資料就是常態分佈的情況下。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/06/03 上午 03:32Yang Wang贊同數:1不贊同數:0留言數:2
1. 正規化 (Normalization) 是將原始資料的數據按比例縮放於 [0, 1] 區間中
2. 標準化 (Standardization) 會將原始資料轉換成平均值=0、標準差=1的新資料