本文由 沈慶陽(yáng) 所有,轉(zhuǎn)載請(qǐng)與作者取得聯(lián)系!
在特征工程(上)窗轩,我們提到了壞數(shù)據(jù)對(duì)整個(gè)數(shù)據(jù)集的危害苹丸,那么我們有什么方法去挑選出并剔除壞數(shù)據(jù)呢?
縮放
縮放包归,顧名思義锨推,將特征值從自然范圍(比如0到1000)轉(zhuǎn)換到標(biāo)準(zhǔn)范圍(0到1或-1到1)。
對(duì)于多特特征公壤,縮放可以幫助提升梯度下降法的收斂速度换可;避免因訓(xùn)練時(shí)超出數(shù)值范圍(如大于float型最大值的范圍)而造成的NaN而產(chǎn)生的后果(即NaN陷阱);幫助模型為特征確定合適的權(quán)重厦幅。
除了將[min,max]以線性方式縮放到諸如[0,1]范圍之內(nèi)沾鳄,還有另一種縮放策略——計(jì)算每個(gè)數(shù)值的Z得分。
Z得分的計(jì)算公式如下:
縮放值=(原始數(shù)值-平均值)/標(biāo)準(zhǔn)偏差
scaled=(value-mean)/stddev
極端離群值
通過(guò)將totalRooms/population得到roomsPerPerson特征确憨。
california_housing_dataframe["rooms_per_person"] = (
california_housing_dataframe["total_rooms"] / california_housing_dataframe["population"])
使用pyplot繪制其概率分布如下:
我們可以看到译荞,人均房間數(shù)大部分分布在1到2之間。但是在圖的右側(cè)我們不難觀察到甚至于人均55個(gè)房間休弃,可以說(shuō)該分布具有很長(zhǎng)的尾巴吞歼。由于右側(cè)的這些分布偏離我們的主要分布很遠(yuǎn),因此需要降低這些極端離群值對(duì)數(shù)據(jù)集的影響塔猾。
其中一個(gè)處理極端離群值的方法就是取對(duì)數(shù)浆熔。
roomsPerPerson=log((totalRooms / population) + 1)
我們可以看到在對(duì)數(shù)據(jù)進(jìn)行取對(duì)數(shù)處理過(guò)后,最遠(yuǎn)的離群值到了4左右,相比最遠(yuǎn)到55少了不少医增,但是仍然有很多離群值慎皱。即使用對(duì)數(shù)縮放之后仍存在部分離群值。如果這時(shí)候我們將roomsPerPerson的最大值限制為4呢叶骨?也就是所有大于4的值都會(huì)變?yōu)?茫多。
roomsPerPerson = min(totalRooms / population, 4)
可以看到,由于將特征值最大值限制為了4忽刽,因此所有大于4的值都會(huì)變成4天揖,因此在4的地方會(huì)出現(xiàn)激增。盡管這個(gè)地方出現(xiàn)了一個(gè)峰值跪帝,但也比原始數(shù)據(jù)有用的多今膊。
分箱
假設(shè)我們存在一個(gè)特征值分布在從32到44范圍之內(nèi)的特征。
可以看出伞剑,跟隨緯度的變化斑唬,房?jī)r(jià)的變化不再是線性關(guān)系。為了將緯度特征變成一個(gè)實(shí)用的預(yù)測(cè)指標(biāo)黎泣,則需要對(duì)緯度進(jìn)行分箱恕刘。
即對(duì)32到44之間的內(nèi)容等分為11份。如第一個(gè)箱(Bin)是從32到34抒倚,第二個(gè)箱是從34到36...
我們使用一個(gè)具有11個(gè)元素的矢量來(lái)表示褐着,即33緯度坐落在第一個(gè)箱內(nèi),則該緯度表示為:
[1,0,0,0,0,0,0,0,0,0]
清查
有時(shí)托呕,在進(jìn)行數(shù)據(jù)集準(zhǔn)備的時(shí)候含蓉,我們獲取的數(shù)據(jù)往往存在不可靠的情況。其具體表現(xiàn)有如下幾種:
不良標(biāo)簽:將鋼筆誤標(biāo)記為茶杯
重復(fù)樣本:一個(gè)樣本存在兩次(同時(shí)存在訓(xùn)練集和驗(yàn)證集/測(cè)試集中项郊,相當(dāng)致命)
不良特征值:特征值錯(cuò)誤谴餐,如將房?jī)r(jià)錯(cuò)誤地多大了一個(gè)0
遺漏值:如某個(gè)房屋的價(jià)格忘記輸入了,導(dǎo)致該樣本的特征值為NaN
在同上面的一些對(duì)數(shù)據(jù)的處理過(guò)程中呆抑,直方圖是可視化數(shù)據(jù)集中的數(shù)據(jù)的一種很直觀的方法岂嗓。同時(shí),了解數(shù)據(jù)的最大值最小值鹊碍、均值和中間值和標(biāo)準(zhǔn)偏差(方差)都是很有作用的厌殉。
最后請(qǐng)記住,良好的機(jī)器學(xué)習(xí)依賴(lài)于良好的數(shù)據(jù)侈咕。
覺(jué)得寫(xiě)的不錯(cuò)的朋友可以點(diǎn)一個(gè) 喜歡? ~
謝謝你的支持公罕!