2017-09-04 28 views
0

何時進行數據預處理,建議進行縮放或歸一化。當你手上有數據時很容易做到這一點。你有所有的數據,並可以馬上做到。但是在模型建立並運行之後,第一個需要進行縮放或歸一化的數據是否需要進行縮放或歸一化?如果需要,它只有一個單行如何縮放或規範化它?我們如何知道每個功能的min/max/mean/stdev是什麼?傳入的數據如何是最小/最大/平均每個功能?數據科學縮放/歸一化實例

請告知

回答

1

是的,你需要應用規範化輸入數據,否則模型將預測廢話。

您還必須保存訓練期間使用的歸一化係數或訓練數據。然後你必須對輸入數據應用相同的係數。

例如如果使用最小 - 最大歸一化:

F_N =(F - 分鐘(F))/(最大(F) - min_(F))

然後,你需要保存min(f)和max(f),以便對新數據執行標準化。

0

首先您應該知道何時使用縮放和標準化。

  1. 縮放 - 比例也不過是改變你的功能,以媲美magnitudes.Let說,如果你有一個像人的收入功能和君不見有些人的順序10^3的值,部分10^6 。現在,如果您使用此功能爲您的問題建模,那麼諸如KNN,Ridge Regression等算法將爲此類屬性的較高數量級賦予更高的權重。要防止出現這種情況,您需要首先縮放您的功能.Min-Max定標器是最常用的縮放比例之一。

  2. 平均規範化 - 如果檢查功能的分佈後,你發現該功能不會是以零爲中心,然後像SVM,其中目標函數已經假設零均值和相同的順序變化的算法,我們可以有建模中的問題。所以在這裏你應該做平均標準化。

  3. 標準化 - 對於像SVM,神經網絡算法,邏輯迴歸就必須具有以下特徵:在同一order.So方差我們爲什麼不讓它在標準化one.So,我們使特徵分佈爲零均值和單位方差。

現在讓我們嘗試在培訓和測試集方面回答您的問題。 假設您正在訓練您的模型在50k數據集上並在10k數據集上進行測試。 對於上述三種轉換,標準方法表示您應該將任何標準化器或縮放器僅適用於訓練數據集,並且僅對測試數據集使用轉換。 在我們的例子中,如果我們想要使用標準化,那麼我們首先將我們的標準化器適用於50k的訓練數據集,然後用它來轉換它50k的訓練數據集並測試數據集。

注意 - 我們不應該使用我們的標準器來測試數據集,而是使用已經合適的標準器來轉換測試數據集。