溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python做數據預處理

發布時間:2021-10-28 18:01:10 來源:億速云 閱讀:271 作者:柒染 欄目:編程語言

這篇文章給大家介紹怎么用Python做數據預處理,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

前戲

在拿到一份數據準備做挖掘建模之前,首先需要進行初步的數據探索性分析(你愿意花十分鐘系統了解數據分析方法嗎?),對數據探索性分析之后要先進行一系列的數據預處理步驟。因為拿到的原始數據存在不完整、不一致、有異常的數據,而這些“錯誤”數據會嚴重影響到數據挖掘建模的執行效率甚至導致挖掘結果出現偏差,因此首先要數據清洗。數據清洗完成之后接著進行或者同時進行數據集成、轉換、歸一化等一系列處理,該過程就是數據預處理。一方面是提高數據的質量,另一方面可以讓數據更好的適應特定的挖掘模型,在實際工作中該部分的內容可能會占整個工作的70%甚至更多。

01   缺失值處理

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

  1. 刪除缺失值(缺失值占比很小的情況)

  2. 人工填充 (數據集小,缺失值少)

  3. 用全局變量填充(將缺失值填充一常數如“null”)

  4. 使用樣本數據的均值或中位數填充

  5. 用插值法(如拉格朗日法、牛頓法)

Python缺失值處理實例代碼

  1. 判斷刪除缺失值- -isnull,notnull

    判斷缺失值可以用來計算缺失值占比整個數據的大小,如果占比很小可以刪除缺失值。

  2. 填充替換缺失值--fillna

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

  3. 核心代碼和結果圖

怎么用Python做數據預處理
怎么用Python做數據預處理


02   異常值處理

異常值是數據集中偏離大部分數據的數據。從數據值上表現為:數據集中與平均值的偏差超過兩倍標準差的數據,其中與平均值的偏差超過三倍標準差的數據(3σ原則),稱為高度異常的異常值。

異常值分析方法

  1. 3σ原則 (數據分布為正態分布)

  2. 箱型圖分析(內限or外限)。

常用處理方法如下:

  • 直接刪除  (異常值占比?。?/p>

  • 暫且保留,待結合整體模型綜合分析

  • 利用現有樣本信息的統計量填充(均值等)

Python異常值處理實例代碼

  1. 檢驗是否符合正態分布,符合用3σ原則判斷并處理,核心代碼結果如下:

怎么用Python做數據預處理
怎么用Python做數據預處理

     2. 當不符合正態分布時可用箱型圖分析處理,核心結果代碼如下:

怎么用Python做數據預處理
怎么用Python做數據預處理

03   數據標準化處理

數據的標準化(normalization)是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便于不同單位或量級的指標能夠進行比較和加權,最典型的就是數據歸一化處理就是將數據統一映射到[0,1]區間上 。

常用數據標準化方法:

  • MIN- MAX標準化(x - x_min)/(x_max-x_min)

  • z-score標準化(x-x_mean)/x_std

  • 小數定標標準化

  • 向量歸一化

  • 線性比例變換法

  • 平均值法

  • 指數轉換法

歸一化的目的

  1. 使得預處理的數據被限定在一定的范圍

  2. 消除奇異樣本數據導致的不良影響

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

應用場景說明

  1. SVM、線性回歸之類的最優化問題需要歸一化,是否歸一化主要在于是否關心變量取值;

  2. 神經網絡需要標準化處理,一般變量的取值在-1到1之間,這樣做是為了弱化某些變量的值較大而對模型產生影響。一般神經網絡中的隱藏層采用tanh激活函數比sigmod激活函數要好些,因為tanh雙曲正切函數的取值[-1,1]之間,均值為0;

  3. 在K近鄰算法中,如果不對解釋變量進行標準化,那么具有小數量級的解釋變量的影響就會微乎其微。

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

04   數據連續屬性離散化

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

  1. 等寬法:將屬性值域分成具有相同寬度的區間,區間的個數由數據本身的特點決定,或者由用戶指定,類似于制作頻率分布表。 

  2.  等頻法:將相同數量的記錄放進每個區間。 

  3. 基于聚類分析的方法。 通過分箱離散化、通過直方圖分析離散化、通過聚類、決策樹和相關分析離散化、標稱數據的概念分層產生。

筆者在學習數據分析過程中記錄下來的一些通用的數據預處理步驟,并且用Numpy、Pandas、Matplotlib等實現了每一種處理方法并可視化了處理結果。

關于怎么用Python做數據預處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女