干貨|了解機(jī)器學(xué)習(xí)常用數(shù)據(jù)預(yù)處理
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
在現(xiàn)實(shí)背景中,我們的數(shù)據(jù)集往往存在各種各樣的問題,如果不對數(shù)據(jù)進(jìn)行預(yù)處理,模型的訓(xùn)練就無法開始。
在對數(shù)據(jù)進(jìn)行預(yù)處理階段我們往往要解決一下問題
數(shù)據(jù)中存在缺失值
連續(xù)特征是否要離散化
離散特征的編碼
特征量綱不同,不具可比性
由于各種各樣原因,現(xiàn)實(shí)中的許多數(shù)據(jù)集包含缺失數(shù)據(jù),這樣的數(shù)據(jù)是無法直接用于訓(xùn)練的,因此我們需要對缺失值進(jìn)行處理。
最簡單粗暴的方法就是把含有缺失值的樣本丟棄,這樣可以避免人為填充帶來的噪聲。這樣做可能會丟失一些很重要的信息,特別是數(shù)據(jù)量不多或者數(shù)據(jù)價(jià)值很高的數(shù)據(jù)來說,直接丟棄就太浪費(fèi)了。因此我們可以旋轉(zhuǎn)某種合適的策略對缺失值進(jìn)行適當(dāng)?shù)奶畛洹?/span>
一般來說,我們可以使用平均值、中值、分位數(shù)、眾數(shù)等替代。如果想要更好的填充效果,可以考慮利用無缺失值的數(shù)據(jù)建立模型,通過模型來選擇一個(gè)最適合的填充值,但如果缺失的屬性對于模型可有可無,那么得出來的填充值也將不準(zhǔn)確。我們還可以使用KNN來選擇最相似的樣本進(jìn)行填充。除此以外,缺失信息也可以作為一種特殊的特征表達(dá),例如人的性別,男、女、不詳可能各自有著不同的含義。
特征可以被分為連續(xù)特征和離散特征,但有些時(shí)候我們可以會將連續(xù)特征離散化,例如,如果我們只關(guān)心年齡是否大于18,那么我們會將該特征二值化。這樣不僅可以使得數(shù)據(jù)變得稀疏降低過擬合的情況,還可以加快學(xué)習(xí)的速度,并且令模型對異常數(shù)據(jù)不那么敏感。離散化方法分為有監(jiān)督和無監(jiān)督兩類。
等寬、等頻的離散化方法是無監(jiān)督方法的典型代表,根據(jù)使用者給定的寬度或頻數(shù)將連續(xù)的區(qū)間劃分成小的區(qū)間的方法對分布不均勻的數(shù)據(jù)不適用,對異常點(diǎn)比較敏感。無監(jiān)督離散化方法中還有基于聚類分析的離散化,它通過對某一特征的值進(jìn)行聚類,由此得到離散區(qū)間的劃分。
有監(jiān)督離散化的方法有基于熵的離散化方法,它是一種自頂向下分裂的離散化方法,它根據(jù)信息熵在所有可能的區(qū)間斷點(diǎn)中選取最優(yōu)的劃分。
特征雖然分為連續(xù)特征和離散特征,但是計(jì)算機(jī)都是將所有特征作為連續(xù)特征處理,因此如果我們想使用離散特征,必須對離散特征進(jìn)行獨(dú)熱編碼或啞編碼。假設(shè)我們把年齡劃分為[0,20),[20,40),[40,60),[60,+∞)四個(gè)區(qū)間并用0,1,2,3表示。使用獨(dú)熱編碼特征會被編碼為
| [0,20) | 1 | 0 | 0 | 0 |
|---|---|---|---|---|
| [20,40) | 0 | 1 | 0 | 0 |
| [40,60) | 0 | 0 | 1 | 0 |
| [60,+∞) | 0 | 0 | 0 | 1 |
如果是啞編碼則會編碼為
| [0,20) | 1 | 0 | 0 |
|---|---|---|---|
| [20,40) | 0 | 1 | 0 |
| [40,60) | 0 | 0 | 1 |
| [60,+∞) | 0 | 0 | 0 |
具體選擇哪種編碼可以參照知乎中王赟的回答
如果你不使用regularization,那么one-hot encoding的模型會有多余的自由度。這個(gè)自由度體現(xiàn)在你可以把某一個(gè)分類型變量各個(gè)值對應(yīng)的權(quán)重都增加某一數(shù)值,同時(shí)把另一個(gè)分類型變量各個(gè)值對應(yīng)的權(quán)重都減小某一數(shù)值,而模型不變。在dummy encoding中,這些多余的自由度都被統(tǒng)攝到intercept里去了。這么看來,dummy encoding更好一些。
如果你使用regularization,那么regularization就能夠處理這些多余的自由度。此時(shí),我覺得用one-hot encoding更好,因?yàn)槊總€(gè)分類型變量的各個(gè)值的地位就是對等的了?!?/span>
歸一化和標(biāo)準(zhǔn)化都可以使特征無量綱化,歸一化使得數(shù)據(jù)放縮在[0,1]之間并且使得特征之間的權(quán)值相同,改變了原數(shù)據(jù)的分布,而標(biāo)準(zhǔn)化將不同特征維度的伸縮變換使得不同度量之間的特征具有可比性。同時(shí)不改變原始數(shù)據(jù)的分布。常見的歸一化方法有min-max標(biāo)準(zhǔn)化和z-score標(biāo)準(zhǔn)化。
min-max標(biāo)準(zhǔn)化根據(jù)特征的最大最小值將數(shù)據(jù)放縮到[0,1]之間

z-score標(biāo)準(zhǔn)化利用數(shù)據(jù)的均值和標(biāo)準(zhǔn)差將數(shù)據(jù)變?yōu)闃?biāo)準(zhǔn)正態(tài)分布

交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

