你會(huì)用Python做數(shù)據(jù)預(yù)處理嗎?

2021-02-08    分類: 網(wǎng)站建設(shè)

在拿到一份數(shù)據(jù)準(zhǔn)備做挖掘建模之前,首先需要進(jìn)行初步的數(shù)據(jù)探索性分析(你愿意花十分鐘系統(tǒng)了解數(shù)據(jù)分析方法嗎?),對(duì)數(shù)據(jù)探索性分析之后要先進(jìn)行一系列的數(shù)據(jù)預(yù)處理步驟。因?yàn)槟玫降脑紨?shù)據(jù)存在不完整、不一致、有異常的數(shù)據(jù),而這些“錯(cuò)誤”數(shù)據(jù)會(huì)嚴(yán)重影響到數(shù)據(jù)挖掘建模的執(zhí)行效率甚至導(dǎo)致挖掘結(jié)果出現(xiàn)偏差,因此首先要數(shù)據(jù)清洗。數(shù)據(jù)清洗完成之后接著進(jìn)行或者同時(shí)進(jìn)行數(shù)據(jù)集成、轉(zhuǎn)換、歸一化等一系列處理,該過程就是數(shù)據(jù)預(yù)處理。一方面是提高數(shù)據(jù)的質(zhì)量,另一方面可以讓數(shù)據(jù)更好的適應(yīng)特定的挖掘模型,在實(shí)際工作中該部分的內(nèi)容可能會(huì)占整個(gè)工作的70%甚至更多。

01、缺失值處理

由于人員錄入數(shù)據(jù)過程中或者存儲(chǔ)器損壞等原因,缺失值在一份數(shù)據(jù)中或多或少存在,所以首先就需要對(duì)缺失值進(jìn)行處理,缺失值處理總的原則是:使用最可能的值代替缺失值,使缺失值與其他數(shù)值之間的關(guān)系保持大。具體的常用方法如下:

  • 刪除缺失值(缺失值占比很小的情況)
  • 人工填充 (數(shù)據(jù)集小,缺失值少)
  • 用全局變量填充(將缺失值填充一常數(shù)如“null”)
  • 使用樣本數(shù)據(jù)的均值或中位數(shù)填充
  • 用插值法(如拉格朗日法、牛頓法)

Python缺失值處理實(shí)例代碼:

a、判斷刪除缺失值- -isnull,notnull

  • 判斷缺失值可以用來計(jì)算缺失值占比整個(gè)數(shù)據(jù)的大小,如果占比很小可以刪除缺失值。

b、填充替換缺失值--fillna

  • 如果缺失值不可以占比很多,就不能能夠輕易的刪除缺失值,可以用上述的插值方法填充缺失值。

c、核心代碼和結(jié)果圖:

02、異常值處理

異常值是數(shù)據(jù)集中偏離大部分?jǐn)?shù)據(jù)的數(shù)據(jù)。從數(shù)據(jù)值上表現(xiàn)為:數(shù)據(jù)集中與平均值的偏差超過兩倍標(biāo)準(zhǔn)差的數(shù)據(jù),其中與平均值的偏差超過三倍標(biāo)準(zhǔn)差的數(shù)據(jù)(3σ原則),稱為高度異常的異常值。

  • 異常值分析方法
  • 3σ原則 (數(shù)據(jù)分布為正態(tài)分布)
  • 箱型圖分析(內(nèi)限or外限)。

常用處理方法如下:

  • 直接刪除 (異常值占比小)
  • 暫且保留,待結(jié)合整體模型綜合分析
  • 利用現(xiàn)有樣本信息的統(tǒng)計(jì)量填充(均值等)

Python異常值處理實(shí)例代碼:

  • 檢驗(yàn)是否符合正態(tài)分布,符合用3σ原則判斷并處理,核心代碼結(jié)果如下:

2. 當(dāng)不符合正態(tài)分布時(shí)可用箱型圖分析處理,核心結(jié)果代碼如下:

你會(huì)用Python做數(shù)據(jù)預(yù)處理嗎?

你會(huì)用Python做數(shù)據(jù)預(yù)處理嗎?

03、數(shù)據(jù)標(biāo)準(zhǔn)化處理

數(shù)據(jù)的標(biāo)準(zhǔn)化(normalization)是將數(shù)據(jù)按比例縮放,使之落入一個(gè)小的特定區(qū)間。在某些比較和評(píng)價(jià)的指標(biāo)處理中經(jīng)常會(huì)用到,去除數(shù)據(jù)的單位限制,將其轉(zhuǎn)化為無量綱的純數(shù)值,便于不同單位或量級(jí)的指標(biāo)能夠進(jìn)行比較和加權(quán),最典型的就是數(shù)據(jù)歸一化處理就是將數(shù)據(jù)統(tǒng)一映射到[0,1]區(qū)間上 。

常用數(shù)據(jù)標(biāo)準(zhǔn)化方法:

  • MIN- MAX標(biāo)準(zhǔn)化(x - x_min)/(x_max-x_min)
  • z-score標(biāo)準(zhǔn)化(x-x_mean)/x_std
  • 小數(shù)定標(biāo)標(biāo)準(zhǔn)化
  • 向量歸一化
  • 線性比例變換法
  • 平均值法
  • 指數(shù)轉(zhuǎn)換法

歸一化的目的:

  • 使得預(yù)處理的數(shù)據(jù)被限定在一定的范圍
  • 消除奇異樣本數(shù)據(jù)導(dǎo)致的不良影響

在大佬Ng的視頻課中聽過一句話,歸一化會(huì)加快梯度下降的求解速度。

應(yīng)用場(chǎng)景說明:

  • SVM、線性回歸之類的最優(yōu)化問題需要?dú)w一化,是否歸一化主要在于是否關(guān)心變量取值;
  • 神經(jīng)網(wǎng)絡(luò)需要標(biāo)準(zhǔn)化處理,一般變量的取值在-1到1之間,這樣做是為了弱化某些變量的值較大而對(duì)模型產(chǎn)生影響。一般神經(jīng)網(wǎng)絡(luò)中的隱藏層采用tanh激活函數(shù)比sigmod激活函數(shù)要好些,因?yàn)閠anh雙曲正切函數(shù)的取值[-1,1]之間,均值為0;
  • 在K近鄰算法中,如果不對(duì)解釋變量進(jìn)行標(biāo)準(zhǔn)化,那么具有小數(shù)量級(jí)的解釋變量的影響就會(huì)微乎其微。

注意:沒有一種數(shù)據(jù)標(biāo)準(zhǔn)化的方法,放在每一個(gè)問題,放在每一個(gè)模型,都能提高算法精度和加快算法的收斂速度。所以對(duì)于不同的問題可能會(huì)有不同的歸一化方法。在分類、聚類算法中,需要使用距離來度量相似性的時(shí)候、或者使用PCA技術(shù)進(jìn)行降維的時(shí)候,Z-score standardization表現(xiàn)更好。

04、數(shù)據(jù)連續(xù)屬性離散化

一些數(shù)據(jù)挖掘算法,特別是分類算法,要求數(shù)據(jù)是分類屬性形式。常常需要將連續(xù)屬性變換成分類屬性,即連續(xù)屬性離散化。 常用的離散化方法:

  • 等寬法:將屬性值域分成具有相同寬度的區(qū)間,區(qū)間的個(gè)數(shù)由數(shù)據(jù)本身的特點(diǎn)決定,或者由用戶指定,類似于制作頻率分布表。
  • 等頻法:將相同數(shù)量的記錄放進(jìn)每個(gè)區(qū)間。
  • 基于聚類分析的方法。 通過分箱離散化、通過直方圖分析離散化、通過聚類、決策樹和相關(guān)分析離散化、標(biāo)稱數(shù)據(jù)的概念分層產(chǎn)生。

05、總結(jié)

本文是筆者在學(xué)習(xí)數(shù)據(jù)分析過程中記錄下來的一些通用的數(shù)據(jù)預(yù)處理步驟,并且用Numpy、Pandas、Matplotlib等實(shí)現(xiàn)了每一種處理方法并可視化了處理結(jié)果。

網(wǎng)頁名稱:你會(huì)用Python做數(shù)據(jù)預(yù)處理嗎?
本文地址:http://www.muchs.cn/news6/99756.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站制作、軟件開發(fā)營銷型網(wǎng)站建設(shè)、云服務(wù)器品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化