機器學習之缺失值處理

2020-12-17 桔子的算法之路

上篇對機器學習中的數據分析進行了詳細介紹,想了解的可以看上篇文章哈機器學習-數據分析,廢話不多說,正文如下:

我們先看一部分缺失值數據,以對我們要處理的內容有初步了解

缺失值數據

圖片比較小,其實這段時間的數據缺失值還是較多的(我是特意找了段缺失值多的數據,方便我們後面對比不同處理方法的結果,嘿嘿~~~),這裡面我們以temp_out欄位為例來進行下面的缺失值處理啦。

首先我們先看下原始數據的曲線圖:

缺失時段曲線圖

為了對比缺失值效果,填充後的曲線統一下移一定距離哈~~~

1:前值替換缺失值

df_show = df_show.fillna(method='ffill')

前值填充

2:後值替換

為了保證預測的一致性,我從來不使用後值替換,因為預測的時候出現缺失值只能使用已有的歷史數據進行填充,不建議使用後值替換。

3:不進行填充

這種情況需要考慮算法的適用性,比如線性回歸、支撐向量回歸等需要進行缺失值處理,否則算法無法處理;而決策樹等以樹為基準的算法則不需要進行缺失值處理;具體需要針對不同算法來確定。

4:0值或均值填充

0值填充就不說了,簡單看下均值填充效果吧

mean_v = df_show ["temp_out"].mean()

df_show = df_show.fillna(mean_v)

均值填充

5:鄰域均值填充

跟均值替換是一個道理,但鄰域均值替換會更好,因為是使用相鄰數據的均值,所以會更接近真實值(對於時序數據來說)。

mean_c = np.mean(list_v_src[k-near_num:k])

鄰域均值填充

6:插值填充

這裡使用二次多項式插值。

df_show['temp_out'] = df_show['temp_out'].interpolate(method='polynomial', order=2)

插值填充

除了這些,大家有什麼想法的也可以自己實現來替換缺失值,總之就是要依據數據來找到合適的缺失值填充方法。

當前羅列的都是一些很重要也是最常用的填充算法,對於時序數據來說,個人比較傾向於插值填充、近鄰均值填充,這些算法對連續數據有更好的擬合性。

寫了好多了,希望大家多多支持,發現有問題歡迎指出,喜歡的話可以關注下哈,桔子會持續更新更多精華內容哈~~~

相關焦點

  • 機器學習基礎:缺失值的處理技巧
    在數據分析和建模中,經常會遇到變量值缺失的情況,這是非常常見的。為了保證數據指標的完整性以及可利用性,通常我們會採取特殊的方式對其進行處理。 2、缺失處理 方式1:刪除 直接去除含有缺失值的記錄,這種處理方式是簡單粗暴的,適用於數據量較大(記錄較多)且缺失比較較小的情形,去掉後對總體影響不大。一般不建議這樣做,因為很可能會造成數據丟失、數據偏移。
  • 獨家 | 在機器學習中利用統計插補來處理缺失值(附代碼)
    本文以病馬數據集為例,幫助你了解在機器學習領域如何利用統計策略來處理缺失值,對代碼進行了較為詳細的講解。
  • 機器學習基礎:缺失值的處理技巧(附Python代碼)
    在數據分析和建模中,經常會遇到變量值缺失的情況,這是非常常見的。為了保證數據指標的完整性以及可利用性,通常我們會採取特殊的方式對其進行處理。
  • Python數據清洗(二):缺失值識別與處理
    缺失值指的是由於人為或機器等原因導致數據記錄的丟失或隱瞞,缺失值的存在一定程度上會影響後續數據分析和挖掘的結果,所以對他的處理將顯得尤為重要。缺失值的識別判斷一個數據集是否存在缺失觀測,通常從兩個方面入手,一個是變量的角度,即判斷每個變量中是否包含缺失值;另一個是數據行的角度,即判斷每行數據中是否包含缺失值。
  • 離群值與缺失值的識別與處理
    原來咱們在說數據處理的時候也曾經提到過這個情況,這裡,一起再聊聊離群值和缺失值的識別與處理。 離群值的識別與處理離群值(outlier):距離整體數據較遠的數據稱為離群值。沒有搞明白離群值產生的原因之前,不要簡單捨棄,尤其是數據較少的時候。
  • Kaggle知識點:缺失值處理
    寫在前面在進行數據競賽中,數據預處理階段經常需要對數據進行缺失值處理。關於缺失值的處理並沒有想像中的那麼簡單。以下為一些經驗分享,基本涵蓋了大部分處理方式。這樣做的好處是,D的係數可以被解釋成「在控制了其他變量的情況下,X具缺失數據的個體其Y的預測值減去具X平均數的個體於Y的預測值」缺失值插補相對丟棄而言,補全是更加常用的缺失值處理方式。通過一定的方法將缺失的數據補上,從而形成完整的數據記錄,對於後續的數據處理、分析和建模至關重要。常用的補全方法如下。
  • 樣本缺失值處理,你真的操作對了嗎?
    我在數據清理與探索性分析中遇到的最常見問題之一就是處理缺失數據。首先我們需要明白的是,沒有任何方法能夠完美解決這個問題。不同問題有不同的數據插補方法——時間序列分析,機器學習,回歸模型等等,很難提供通用解決方案。在這篇文章中,我將試著總結最常用的方法,並尋找一個結構化的解決方法。在討論數據插補方法之前,我們必須了解數據丟失的原因。
  • 數據分析|R-缺失值處理
    數據中往往會有各種缺失值,異常值,錯誤值等,今天先介紹一下如何處理缺失值,才能更好的數據分析,更準確高效的建模。一 查看數據集的缺失情況    R中使用NA代表缺失值,用is.na識別缺失值,返回值為TRUE或FALSE。由於邏輯值TRUE和FALSE分別等價於數值1和0,可用sum()和mean()來獲取數據集的缺失情況。
  • 數據的預處理基礎:如何處理缺失值
    圖片來源: thermofisher數據集缺少值? 讓我們學習如何處理:數據清理/探索性數據分析階段的主要問題之一是處理缺失值。 缺失值表示未在觀察值中作為變量存儲的數據值。 這個問題在幾乎所有研究中都是常見的,並且可能對可從數據得出的結論產生重大影響。
  • 3000字詳解四種常用的缺失值處理方法
    而以這樣數據集為基礎進行建模或者數據分析時,缺失值會對結果產生一定的影響,所以提前處理缺失值是十分必要的。對於缺失值的處理大致可分為以下三方面:不處理應該是效果最差的了,刪除雖然可以有效處理缺失值,但是會損傷數據集,好不容易統計的數據因為一個特徵的缺失說刪就刪實在說不過去。填充缺失值應該是最常用且有效的處理方式了,下面介紹四種處理缺失值的常用Tips。
  • 「統計實戰」缺失值識別與處理
    關注我的,分析數據不發愁了不信你試試後臺留言,獲取統計軟體在科學研究中,缺失值通常難以避免,但處理起來又比較麻煩,很多人選擇忽略缺失值,但有些時候它們會不知不覺給我們造成麻煩,學幾招缺失值識別和處理的技術還是很有必要的。
  • 統計分析零單系列第五期:缺失值處理(專題)
    《管理學季刊》曾經推出2篇文章關於缺失值處理的,本期內容在這基礎上加入筆者的理解,並通過軟體實操展示處理過程。
  • R語言如何檢測和處理數據缺失值?
    面對一份數據,我們會做數據的缺失值檢測和分析,根據數據的缺失程度,以知道數據的完整性和可用性。實際的數據,絕大部分會有缺失值現象。缺失值的產生與諸多因素有關聯,例如:數據採集不成功,數據採集成功了但是數據確實沒有值,數據的值受其它因素控制等。面對有缺失值的數據,我們要怎麼處理、分析和應用,是我們數據工作者要思考和實踐的命題。
  • 手把手教你用pandas處理缺失值
    pandas對象的所有描述性統計信息默認情況下是排除缺失值的。pandas對象中表現缺失值的方式並不完美,但是它對大部分用戶來說是有用的。對於數值型數據,pandas使用浮點值NaN(Not a Number來表示缺失值)。
  • 數據分析之Pandas缺失數據處理
    基礎概念首先,對缺失值分類和缺失值處理方法進行講解。【注意】:Panda讀取的數值型數據,缺失數據顯示「NaN」(not a number)。數據值的處理方法主要就是兩種方法:【注意】缺失值的插補只能用於客觀數據。由於主觀數據受人的影響,其所涉及的真實值不能保證。簡單刪除法是對缺失值進行處理的最原始方法。它將存在缺失值的個案刪除。
  • R語言數據處理 | 實戰案例:機器學習
    雖然偶然成功了,但如果不去總結成功的原因,那麼在下一次機遇來臨之時可能就無法抓住。學習的過程就是試錯的過程,不斷總結、提煉,並從中獲得新知識,應對未來的挑戰。為什麼要用機器來學習呢?因為機器與人相比具有自身的優越性。機器不會疲憊,工作效率高,出錯的概率更小。更重要的是,在數據密集型的探索中,機器能夠同時處理大規模的數據,如果這要用人工進行計算是無法想像的。
  • 如何使用python技術完成數據集缺失值多種應用場景的濾除或填充?
    比如,我們會用數據分析統計數據集中的缺失值、異常值,更直觀的也會進階到數據可視化的部分(到達該部分一般是成了文章類或匯報類的一部分),然後以統計結果為基礎再對數據進行處理。這個過程往往不是一次性過程,是循環往復的。然後數據處理的結果是有質量的,對後期的數據挖掘、機器學習、深度學習以及其他更多的應用,提供了堅實的基礎。接下來,我們就一起來梳理和總結一下,數據處理過程中,經常遇到的缺失值處理方法。
  • XGBoost缺失值引發的問題及其深度分析|CSDN博文精選
    果然,輸入數組中有好幾個0出現,會不會是因為缺失值處理的問題?快速找到兩個引擎的源碼,發現兩者對缺失值的處理真的不一致!XGBoost4j中缺失值的處理XGBoost4j缺失值的處理過程發生在構造DMatrix過程中,默認將0.0f設置為缺失值:/*** create DMatrix from dense matrix*
  • 機器學習Kaggle入門,房價預測比賽
    (有點多,要不挑幾個看看好了,比如地上面積,地下室面積,車庫大小等)5.看看數據的統計是否有缺失值欄位太多,截取了開始的部分,共1460行數據記錄,如果統計的非空記錄少於1460,說明有預設值。2.對標籤房價處理使之儘量成正太分布形式。使用log,並單獨作為y ,且從數據中移除(pop)。
  • SPSS 經典教材:基於回歸法填充缺失值
    如何能夠合理得當地處理缺失值是至關重要的。缺失值的處理方法很多,包括直接去除,對於大樣本研究來說,直接去除可能對結果造成的影響尚可接受,但是對於樣本量不多的研究來講,可能就是很大的影響。對於缺失值插補的方法也很多,最常見的包括臨近值,均值,中位數,眾數,回歸,多重插補等。前三類的填補,因為缺少隨機誤差,填補顯得比較蒼白,後兩者,尤其是多重插補,因為考慮到存在隨機誤差,在填補效率方面顯得更加優秀。