2017-09-05 1754 views
0

我知道功能選擇可以幫助我移除可能貢獻度較低的功能。我知道PCA可以幫助減少可能的相關特徵,從而減小尺寸。我知道規範化將功能轉換爲相同的規模。做特徵選擇,主成分分析和歸一化的正確順序?

但是有沒有推薦的命令來完成這三個步驟?從邏輯上講,我認爲我應該首先通過特徵選擇去除不良特徵,然後對它們進行標準化,最後使用PCA來減小尺寸並使特徵儘可能彼此獨立。

這個邏輯是否正確?

獎金的問題 - 有沒有更多的事情要做(預處理或轉換) 功能之前餵養他們的估計?

+3

這個問題與scikit-learn沒有直接關係,而是與機器學習的理論直接相關,因此屬於[Cross Validated](https:// stats。 stackexchange.com/help/on-topic)。無論如何,正確的答案應該是:這取決於。通常情況下,特徵選擇步驟出現在PCA之後(帶有描述特徵數量的優化參數,縮放比PCA更早),但根據問題,這是我的改變,您可能希望僅將PCA應用於特徵子集。不要求數據被歸一化等等 – Quickbeam2k1

回答

3

如果我在做某種類型的分類我個人使用這個命令

  1. 正常化
  2. PCA
  3. 特徵選擇

正常化:你會做正常化率先獲得數據轉換爲合理範圍。如果您有數據(x,y),範圍爲x is from -1000 to +1000y is from -1 to +1您可以看到任何距離度量標準會自動錶示y的變化不如X中的變化大。我們不知道情況如何。所以我們想要規範化我們的數據。

PCA:使用數據的特徵值分解來查找描述數據點中的方差的正交基集。如果您有4個特徵,PCA可以告訴您,只有兩個特徵真正區分數據點,從而使我們走到最後一步

特徵選擇:一旦您有一個更好地描述數據的座標空間,您可以選擇哪些特徵突出。通常情況下,您可以使用PCA中最大的特徵值(EV)及其對應的特徵向量進行表示。由於較大的EV意味着數據方向上存在更多的差異,因此可以在隔離功能中獲得更多的粒度。這是減少問題維度數量的好方法。

當然這可能會改變問題,但這只是一個通用的指南。

+0

這是有道理的,我的邏輯完全沒有規律:D。謝謝! – shikhanshu

1

一般來說,正常化之前PCA需要。 問題的關鍵在於特徵選擇的順序,它取決於特徵選擇的方法。

簡單的特徵選擇是查看特徵的方差或標準偏差是否很小。如果這些值相對較小,則此功能可能無助於分類器。但是如果在這樣做之前進行歸一化處理,則標準偏差和方差將變小(通常小於1),這將導致不同特徵之間std或var的差異非常小。如果使用零均值歸一化,則所有特徵的均值將等於0,std等於1.此時,在特徵選擇之前進行歸一化可能會很糟糕

特徵選擇很靈活,並且有很多方法可以選擇特徵。特徵選擇的順序應根據實際情況選擇

+0

好點,我會在歸一化之前和之後嘗試特徵選擇(在PCA之後進行PCA標準化案例),看看這些數據對我的數據有何影響。謝謝你的洞察力! – shikhanshu