关于数据预处理的7个重要知识点,全在这儿了!
導(dǎo)讀:今天這篇文章是「大數(shù)據(jù)」內(nèi)容合伙人周蘿卜關(guān)于《Python數(shù)據(jù)分析與數(shù)據(jù)化運(yùn)營(yíng)》的一篇讀書筆記。在大數(shù)據(jù)公眾號(hào)后臺(tái)對(duì)話框回復(fù)合伙人,免費(fèi)讀書、與50萬「大數(shù)據(jù)」同行分享你的洞見。
作者:周蘿卜來源:大數(shù)據(jù)(ID:hzdashuju)數(shù)據(jù)預(yù)處理是數(shù)據(jù)化運(yùn)營(yíng)過程中的重要環(huán)節(jié),它直接決定了后續(xù)數(shù)據(jù)工作的質(zhì)量和價(jià)值輸出。那么數(shù)據(jù)預(yù)處理有哪些鐵則或者經(jīng)驗(yàn)?zāi)?#xff1f;我這里整理如下,與君共勉!
01 數(shù)據(jù)清洗:4種處理缺失數(shù)據(jù)的方法
所謂數(shù)據(jù)清洗,主要處理的就是缺失值、異常值和重復(fù)值。清洗,就是對(duì)數(shù)據(jù)集通過丟棄、填充、替換、去重等操作,達(dá)到去除異常、糾正錯(cuò)誤、補(bǔ)足缺失的目的。
數(shù)據(jù)缺失通常有兩種情況:
一種是數(shù)據(jù)行記錄的缺失,這通常是數(shù)據(jù)記錄丟失,很難找回;
另一種是數(shù)據(jù)列值的缺失,可能由于某些原因,導(dǎo)致的數(shù)據(jù)不完整。
這里主要討論數(shù)據(jù)列植的缺失情況,通常有如下4種處理思路:
1. 丟棄
這種方法最簡(jiǎn)單明了,直接刪除整行或者整列帶有缺失值的記錄。但是這種丟棄意味著會(huì)減少數(shù)據(jù)特征,弊端也十分明顯。
如下情況,不宜直接使用丟棄的方法:
數(shù)據(jù)集總體存在大量數(shù)據(jù)記錄不完整情況而且比例較大,比如超過10%,此時(shí)刪除這些缺失值,就意味著會(huì)損失過多的有用信息。
帶有缺失值的數(shù)據(jù)記錄大量存在著明顯的數(shù)據(jù)分布規(guī)律或特征,比如帶有缺失值的數(shù)據(jù)記錄是我們的目標(biāo)標(biāo)簽主要集中在一類或者幾類中,如果此時(shí)刪除這些數(shù)據(jù)記錄,將會(huì)使得對(duì)應(yīng)類別的數(shù)據(jù)樣本丟失大量數(shù)據(jù),導(dǎo)致模型過擬合或者分類不準(zhǔn)確。
2. 補(bǔ)全
相對(duì)于丟棄而言,補(bǔ)全則是一種更加合理的處理方法。通過一定的方法將缺失的數(shù)據(jù)補(bǔ)上,從而形成完整的數(shù)據(jù)記錄。
常用的補(bǔ)全方法有:
統(tǒng)計(jì)法:對(duì)于數(shù)值型數(shù)據(jù),可以使用均值、加權(quán)平均值、中位數(shù)等方法補(bǔ)全;而對(duì)于分類型數(shù)據(jù),一般會(huì)是用類別眾數(shù)最多的數(shù)值補(bǔ)足。
模型法:更多的時(shí)候,我們會(huì)基于其他字段,將缺失字段作為目標(biāo)變量進(jìn)行預(yù)測(cè),從而達(dá)到最為可能的補(bǔ)全值。
專家補(bǔ)全:對(duì)于一些專業(yè)性非常強(qiáng)的數(shù)據(jù),可以通過自學(xué)業(yè)界專家,來補(bǔ)全缺失數(shù)據(jù),這種方法在很多情況下也是一種非常重要的補(bǔ)全途徑。
其他方法:例如隨機(jī)法、特殊值法,多重填補(bǔ)法等。
3. 真值轉(zhuǎn)換法
在某些情況下,我們可能無法得知缺失值的分布規(guī)律,而且也無法應(yīng)用上面的方法進(jìn)行補(bǔ)全;或者我們認(rèn)為當(dāng)前的缺失記錄也是數(shù)據(jù)的一種規(guī)律,不應(yīng)該輕易的對(duì)缺失數(shù)據(jù)進(jìn)行處理,那么此時(shí)就可以使用真值轉(zhuǎn)換法來處理。
這種方法的觀點(diǎn)是,我們承認(rèn)缺失值的存在,并且把數(shù)據(jù)缺失也作為數(shù)據(jù)分布規(guī)律的一部分看待,將變量的實(shí)際值和缺失值都作為輸入維度參與后續(xù)的數(shù)據(jù)處理和模型計(jì)算中。但是真實(shí)值是可以直接參與計(jì)算的,缺失值通常無法參與運(yùn)算,因此需要對(duì)缺失值進(jìn)行真值轉(zhuǎn)換。
例如對(duì)于性別一列,現(xiàn)在存在男、女和未知(空值)三個(gè)狀態(tài),我們就可以把該列轉(zhuǎn)換為性別_男(0),性別_女(1)和性別_未知(2)。
4.不處理
對(duì)于缺失值,不做任何處理,也是一種處理缺失值的思路。這種方式主要取決于后續(xù)的模型運(yùn)算,很多模型對(duì)于缺失值有容忍度或靈活的處理方法,因此在數(shù)據(jù)預(yù)處理階段可以不作處理。
02 數(shù)據(jù)轉(zhuǎn)換
分類數(shù)據(jù)和順序數(shù)據(jù)是常見的數(shù)據(jù)類型,需要很好的轉(zhuǎn)換這兩種類型數(shù)據(jù)。
分類數(shù)據(jù):分類數(shù)據(jù)是值某些數(shù)據(jù)屬性只能歸于某一類別的非數(shù)值型數(shù)據(jù),例如性別中的男,女就是分類數(shù)據(jù)。
順序數(shù)據(jù):順序數(shù)據(jù)只能歸于某一類有序類別的非數(shù)值型數(shù)據(jù),例如用戶的價(jià)值度分為高、中、低等。
分類數(shù)據(jù)和順序數(shù)據(jù)要參與模型運(yùn)算,通常都會(huì)轉(zhuǎn)化為數(shù)值類數(shù)據(jù)。而將非數(shù)值型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)的最佳方法是:將所有分類或順序變量的值域從一列多值的形態(tài)轉(zhuǎn)換為多列只包含真值的形態(tài),其中國(guó)真值可以用 True、False 或0、1的方式來表示。
比如:
| 01 | 男 |
| 02 | 女 |
轉(zhuǎn)換后:
| 01 | 1 | 0 |
| 02 | 0 | 1 |
而之所以不能直接用數(shù)字來表示不同的分類和順序數(shù)據(jù),是因?yàn)槲覀儫o法準(zhǔn)確還原不同類別信息之間的信息差異和相互關(guān)聯(lián)性。
03 數(shù)據(jù)降維
數(shù)據(jù)降維就是降低數(shù)據(jù)的維度數(shù)量,從而簡(jiǎn)化我們的訓(xùn)練難度和減小特征之間的關(guān)聯(lián)性產(chǎn)生的影響。
1. 基于特征選擇的降維
基于特征選擇的降維指的是根據(jù)一定規(guī)則和經(jīng)驗(yàn),直接選取原有維度的一部分參與后續(xù)的計(jì)算和建模過程,用選擇的維度代替所有的維度,整個(gè)過程不產(chǎn)生新的維度。
經(jīng)驗(yàn)法:根據(jù)業(yè)務(wù)專家或數(shù)據(jù)專家的以往經(jīng)驗(yàn)、實(shí)際數(shù)據(jù)情況、業(yè)務(wù)理解程度等進(jìn)行綜合考慮,從而達(dá)到降低數(shù)據(jù)維度的目的。
測(cè)算法:通過不斷測(cè)試多種維度選擇參與計(jì)算,通過結(jié)果來反復(fù)驗(yàn)證和調(diào)整,并最終找到最佳特征方案。
基于統(tǒng)計(jì)分析的方法:通過相關(guān)性分析不同維度間的線性相關(guān)性,在相關(guān)性高的維度中進(jìn)行人工去除或篩選;或通過計(jì)算不同維度間的互信息量,找到具有較高互信息量的特征集,然后去除或留下其中的一個(gè)特征。
機(jī)器學(xué)習(xí)算法:通過機(jī)器學(xué)習(xí)算法得到不同特征的特征值或權(quán)重,然后再根據(jù)權(quán)重來選擇較大的特征。
2. 基于特征轉(zhuǎn)換的降維
基于特征轉(zhuǎn)換的降維是按照一定的數(shù)學(xué)變換方法,把給定的一組相關(guān)變量通過數(shù)學(xué)模型將高緯空間的數(shù)據(jù)點(diǎn)映射到低維度空間中,然后利用映射后變量的特征來表示原有變量的總體特征,最主要的方法就是主成分分析法。
PCA(主成分分析):主成分分析的基本方法是按照一定的數(shù)學(xué)變換方法,把給定的一組相關(guān)變量通過線性變換轉(zhuǎn)成另一組不相關(guān)的變量,這些新的變量按照方差依次遞減的順序排列。
3. 基于特征組合的降維
基于特征組合的降維,實(shí)際上是將輸入特征與目標(biāo)預(yù)測(cè)變量做擬合的過程,它將輸入特征經(jīng)過運(yùn)算,并得出能對(duì)目標(biāo)變量做出很好解釋的復(fù)合特征,這些特征不是原有的單一特征,而是經(jīng)過組合和變換后的新特征。
但是其實(shí)特征組合的方法,很多時(shí)候并不能減少特征的數(shù)量,反而可能會(huì)增加特征。因此從嚴(yán)格意義上講,特征組合不屬于降維的過程,而是特征工程中與降維并行的模塊。
04 解決樣本分布不均衡
所謂的不均衡指的是不同類別的樣本量差異非常大,樣本類別分布不均衡主要出現(xiàn)再與分類相關(guān)的建模問題上。
樣本類別分布不均衡從數(shù)據(jù)規(guī)模上可以分為大數(shù)據(jù)分布不均衡和小數(shù)據(jù)分布不均衡兩種。
大數(shù)據(jù)分布不均衡:這種情況下整體數(shù)據(jù)規(guī)模不大,只是其中的小樣本類的占比較少。但是從每個(gè)特征的分布來看,小樣本也覆蓋了大部分或全部的特征。
小數(shù)據(jù)分布不均衡:這種情況下整體數(shù)據(jù)規(guī)模小,并且占據(jù)少量樣本比例的分類數(shù)量也少,這會(huì)導(dǎo)致特征分布的嚴(yán)重不均衡。
可以通過過抽樣和欠抽樣的方法來解決樣本不均衡的問題:
過抽樣:又稱為上采樣,其通過增加分類中少數(shù)類樣本的數(shù)量來實(shí)現(xiàn)樣本均衡,最直接的方法是簡(jiǎn)單復(fù)制少數(shù)類樣本以形成多條記錄。
欠抽樣:又稱為下采樣,其通過減少分類中多數(shù)類樣本的數(shù)量來實(shí)現(xiàn)樣本均衡,最直接的方法是隨機(jī)去掉一些多數(shù)類樣本來減少多數(shù)類的規(guī)模。
05 解決數(shù)據(jù)的共線性問題
所謂共線性問題指的就是輸入的自變量之間存在較高的線性相關(guān)度,共線性問題會(huì)導(dǎo)致回歸模型的穩(wěn)定性和準(zhǔn)確性大大降低。此外過多無關(guān)的維度參與計(jì)算也會(huì)浪費(fèi)大量的計(jì)算資源。
解決共線性的常用方法有如下幾種:
1. 增大樣本量
通過增加樣本量來消除由于數(shù)據(jù)量不足而出現(xiàn)的偶然共線性現(xiàn)象,在可行的前提下這種方法是需要優(yōu)先考慮的。
2. 嶺回歸法
嶺回歸分析是一種專用于共線性問題的有偏估計(jì)回歸方法,實(shí)質(zhì)上是一種改良的最小二乘估計(jì)法。它通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價(jià)來獲得更實(shí)際和可靠性更強(qiáng)的回歸系數(shù)。
3. 逐步回歸法
逐步回歸法是每次引入一個(gè)自變量并進(jìn)行統(tǒng)計(jì)檢驗(yàn),然后逐步引入其他變量,同時(shí)對(duì)所有變量的回歸系數(shù)進(jìn)行檢驗(yàn)。如果原理引入的變量由于后面變量的引入而變得不再顯著,那么就將其剔除,逐步得到最優(yōu)回歸方程。
4. 主成分回歸
通過主成分分析,將原始參與建模的變量轉(zhuǎn)換為少數(shù)幾個(gè)主成分,每個(gè)主成分是原變量的線性組合,然后基于主成分做回歸分析,這樣也可以在不丟失重要數(shù)據(jù)特征的前提下避開共線性問題。
5. 人工去除
直接結(jié)合人工經(jīng)驗(yàn),進(jìn)行去除操作。
06 標(biāo)準(zhǔn)化數(shù)據(jù)
數(shù)據(jù)標(biāo)準(zhǔn)化是一個(gè)常用的數(shù)據(jù)預(yù)處理操作,目的是處理不同規(guī)模和量綱的數(shù)據(jù),使其縮放到相同的數(shù)據(jù)區(qū)間和范圍,以減少規(guī)模、特征、分布差異等對(duì)模型的影響。
1. Z-Score 標(biāo)準(zhǔn)化
Z-Score 標(biāo)準(zhǔn)化是基于原始數(shù)據(jù)的均值和標(biāo)準(zhǔn)差進(jìn)行的標(biāo)準(zhǔn)化。這種方法適合大多數(shù)數(shù)據(jù)類型的數(shù)據(jù),也是很多工具的默認(rèn)標(biāo)準(zhǔn)化方法。標(biāo)準(zhǔn)化之后的數(shù)據(jù)是以0為均值,方差為1的正態(tài)分布。
2. Max-Min 標(biāo)準(zhǔn)化
Max-Min 標(biāo)準(zhǔn)化方法是對(duì)原始數(shù)據(jù)進(jìn)行線性變換,這種標(biāo)準(zhǔn)化的方法應(yīng)用廣泛,得到的數(shù)據(jù)會(huì)完全落入[0,1]區(qū)間內(nèi)。
07 數(shù)據(jù)離散化
數(shù)據(jù)離散化就是把無限空間中有限的個(gè)體映射到有限的空間中。數(shù)據(jù)離散化操作大多是針對(duì)連續(xù)數(shù)據(jù)進(jìn)行的,處理之后的數(shù)據(jù)值域分布將從連續(xù)屬性變?yōu)殡x散屬性,這種屬性一般包含2個(gè)或2個(gè)以上的值域。
1. 針對(duì)時(shí)間數(shù)據(jù)
針對(duì)時(shí)間數(shù)據(jù)的離散化主要用于以時(shí)間為主要特征的數(shù)據(jù)集中粒度轉(zhuǎn)換,離散化處理后將分散的時(shí)間特征轉(zhuǎn)換為更高層次的時(shí)間特征。
比如:?
將時(shí)間戳轉(zhuǎn)換為分鐘、小時(shí)或上下午等
將日期轉(zhuǎn)換為周數(shù)、月或工作日休息日等
2. 針對(duì)多值離散數(shù)據(jù)
針對(duì)多值離散數(shù)據(jù)的離散化指的是要進(jìn)行離散化處理的數(shù)據(jù)本身不是數(shù)值型數(shù)據(jù),而是分類或順序數(shù)據(jù)。
例如可以將用戶的收入劃分為10個(gè)區(qū)間等。
3. 針對(duì)連續(xù)數(shù)據(jù)
針對(duì)連續(xù)數(shù)據(jù)的離散化是主要的離散化應(yīng)用,在分類或關(guān)聯(lián)分析中應(yīng)用尤其廣泛。主要分為兩種,一類是將連續(xù)數(shù)據(jù)劃分為特定區(qū)間的集合,一類是將連續(xù)數(shù)據(jù)劃分為特定類。
以上就是今天的分享,希望對(duì)于正在學(xué)習(xí)數(shù)據(jù)分析的伙伴兒們有所幫助。
關(guān)于作者:周蘿卜,目前就職于一家大數(shù)據(jù)人工智能公司,喜歡爬蟲和數(shù)據(jù)分析,樂于總結(jié)和分享!微信公眾號(hào)「蘿卜大雜燴」運(yùn)營(yíng)者。
延伸閱讀《Python數(shù)據(jù)分析與數(shù)據(jù)化運(yùn)營(yíng)》(第2版)轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData推薦語:這是一本將數(shù)據(jù)分析技術(shù)與數(shù)據(jù)使用場(chǎng)景深度結(jié)合的著作,從實(shí)戰(zhàn)角度講解了如何利用Python進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)化運(yùn)營(yíng)。本書與同類書大的不同在于,并不只有純粹的關(guān)于數(shù)據(jù)分析技術(shù)和工具的講解,而且還與數(shù)據(jù)使用場(chǎng)景深度結(jié)合,在業(yè)務(wù)上真正可指導(dǎo)落地。此外,本書作者提供微信、郵箱等,可通過實(shí)時(shí)和離線兩種方式及時(shí)為讀者在線傳道、受業(yè)、解惑。
有話要說?Q:這些知識(shí)點(diǎn),你已經(jīng)get了多少?歡迎留言與大家分享猜你想看?轉(zhuǎn)載 / 投稿請(qǐng)聯(lián)系:baiyu@hzbook.com更多精彩,請(qǐng)?jiān)诤笈_(tái)點(diǎn)擊“歷史文章”查看
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的关于数据预处理的7个重要知识点,全在这儿了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能驾驶系统是怎样看懂交通标志的?3张流
- 下一篇: Numpy统计计算、数组比较,看这篇就够