<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【數(shù)據(jù)分析】數(shù)據(jù)缺失影響模型效果?是時(shí)候需要missingno工具包來(lái)幫你了!

          共 3243字,需瀏覽 7分鐘

           ·

          2021-07-04 15:44

          數(shù)據(jù)探索和預(yù)處理是任何數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)工作流中的重要步驟。在使用教程或訓(xùn)練數(shù)據(jù)集時(shí),可能會(huì)出現(xiàn)這樣的情況:這些數(shù)據(jù)集的設(shè)計(jì)方式使其易于使用,并使所涉及的算法能夠成功運(yùn)行。然而,在現(xiàn)實(shí)世界中,數(shù)據(jù)是混亂的!它可能有錯(cuò)誤的值、不正確的標(biāo)簽,并且可能會(huì)丟失部分內(nèi)容。

          丟失數(shù)據(jù)可能是處理真實(shí)數(shù)據(jù)集時(shí)最常見(jiàn)的問(wèn)題之一。數(shù)據(jù)丟失的原因很多,包括傳感器故障、數(shù)據(jù)過(guò)時(shí)、數(shù)據(jù)管理不當(dāng),甚至人為錯(cuò)誤。丟失的數(shù)據(jù)可能以單個(gè)值、一個(gè)要素中的多個(gè)值或整個(gè)要素丟失的形式出現(xiàn)。

          重要的是,在進(jìn)行數(shù)據(jù)分析或機(jī)器學(xué)習(xí)之前,需要我們對(duì)缺失的數(shù)據(jù)進(jìn)行適當(dāng)?shù)淖R(shí)別和處理。許多機(jī)器學(xué)習(xí)算法不能處理丟失的數(shù)據(jù),需要?jiǎng)h除整行數(shù)據(jù),其中只有一個(gè)丟失的值,或者用一個(gè)新值替換(插補(bǔ))。

          根據(jù)數(shù)據(jù)的來(lái)源,缺失值可以用不同的方式表示。最常見(jiàn)的是NaN(不是數(shù)字),但是,其他變體可以包括“NA”、“None”、“999”、“0”、“ ”、“-”。如果丟失的數(shù)據(jù)是由數(shù)據(jù)幀中的非NaN表示的,那么應(yīng)該使用np.NaN將其轉(zhuǎn)換為NaN,如下所示。

          df.replace('', np.NaN)

          missingno 庫(kù)

          Missingno 是一個(gè)優(yōu)秀且簡(jiǎn)單易用的 Python 庫(kù),它提供了一系列可視化,以了解數(shù)據(jù)幀中缺失數(shù)據(jù)的存在和分布。這可以是條形圖、矩陣圖、熱圖或樹(shù)狀圖的形式。

          從這些圖中,我們可以確定缺失值發(fā)生的位置、缺失的程度以及是否有缺失值相互關(guān)聯(lián)。通常,缺失的值可能被視為沒(méi)有貢獻(xiàn)任何信息,但如果仔細(xì)分析,可能有潛在的故事。

          missingno庫(kù)可以使用pip命令安裝:

          pip install missingno

          數(shù)據(jù)集

          在本教程中,我們將使用 Xeek and FORCE 2020舉辦的機(jī)器學(xué)習(xí)競(jìng)賽中公開(kāi)可用數(shù)據(jù)集的一個(gè)子集。競(jìng)賽的目的是根據(jù)現(xiàn)有的標(biāo)記數(shù)據(jù)預(yù)測(cè)巖性。數(shù)據(jù)集包括來(lái)自挪威海的118口井。

          這些數(shù)據(jù)包含了測(cè)井儀器采集的一系列電測(cè)量數(shù)據(jù)。測(cè)量結(jié)果用于描述地下地質(zhì)特征和確定合適的油氣藏。本文的數(shù)據(jù)和筆記本可以在 GitHub 中找到

          https://github.com/andymcdgeo/missingno_tutorial

          導(dǎo)入庫(kù)和加載數(shù)據(jù)

          該過(guò)程的第一步是導(dǎo)入庫(kù)。在本文中,我們將使用 pandas 來(lái)加載和存儲(chǔ)我們的數(shù)據(jù),并使用 missingno 來(lái)可視化數(shù)據(jù)完整性。

          將pandas導(dǎo)入為 pd

          import pandas as pd
          import missingno as msno
          df = pd.read_csv('xeek_train_subset.csv')

          Pandas 快速分析

          在使用 missingno 庫(kù)之前,pandas庫(kù)中有一些特性可以讓我們初步了解丟失了多少數(shù)據(jù)。

          第一種是使用.descripe()方法。這將返回一個(gè)表,其中包含有關(guān)數(shù)據(jù)幀的匯總統(tǒng)計(jì)信息,例如平均值、最大值和最小值。在表的頂部是一個(gè)名為counts的行。在下面的示例中,我們可以看到數(shù)據(jù)幀中的每個(gè)特性都有不同的計(jì)數(shù)。這提供了并非所有值都存在的初始指示。

          我們可以進(jìn)一步使用.info()方法。這將返回?cái)?shù)據(jù)幀的摘要以及非空值的計(jì)數(shù)。

          從上面的例子中我們可以看出,我們對(duì)數(shù)據(jù)的狀態(tài)和數(shù)據(jù)丟失的程度有了更簡(jiǎn)明的總結(jié)。

          我們可以使用的另一種快速方法是:

          df.isna().sum()

          這將返回?cái)?shù)據(jù)幀中包含了多少缺失值的摘要。isna()部分檢測(cè)dataframe中缺少的值,并為dataframe中的每個(gè)元素返回一個(gè)布爾值。sum()部分對(duì)真值的數(shù)目求和。

          此行返回以下信息從這個(gè)總結(jié)中,我們可以看到許多列,即WELL、DEPTH、GROUP、GR 和 LITHOFACIES  沒(méi)有空值。所有其他的都有大量不同程度的缺失值。

          使用 missingno 識(shí)別缺失數(shù)據(jù)

          在missingno庫(kù)中,有四種類(lèi)型的圖用于可視化數(shù)據(jù)完整性:條形圖、矩陣圖、熱圖和樹(shù)狀圖。在識(shí)別缺失數(shù)據(jù)方面,每種方法都有自己的優(yōu)勢(shì)。

          讓我們依次看一下這些。

          條形圖

          條形圖提供了一個(gè)簡(jiǎn)單的繪圖,其中每個(gè)條形圖表示數(shù)據(jù)幀中的一列。條形圖的高度表示該列的完整程度,即存在多少個(gè)非空值。它可以通過(guò)調(diào)用:

          msno.bar(df)

          在繪圖的左側(cè),y軸比例從0.0到1.0,其中1.0表示100%的數(shù)據(jù)完整性。如果條小于此值,則表示該列中缺少值。

          在繪圖的右側(cè),用索引值測(cè)量比例。右上角表示數(shù)據(jù)幀中的最大行數(shù)。

          在繪圖的頂部,有一系列數(shù)字表示該列中非空值的總數(shù)。

          在這個(gè)例子中,我們可以看到許多列(DTS、DCAL和RSHA)有大量的缺失值。其他列(如WELL、DEPTH_MD和GR)是完整的,并且具有最大的值數(shù)。

          矩陣圖

          如果使用深度相關(guān)數(shù)據(jù)或時(shí)間序列數(shù)據(jù),矩陣圖是一個(gè)很好的工具。它為每一列提供顏色填充。有數(shù)據(jù)時(shí),繪圖以灰色(或您選擇的顏色)顯示,沒(méi)有數(shù)據(jù)時(shí),繪圖以白色顯示。

          通過(guò)調(diào)用以下命令可以生成矩陣圖:

          msno.matrix(df)

          如結(jié)果圖所示,DTS、DCAL和RSHA列顯示了大量缺失數(shù)據(jù)。這是在條形圖中確定的,但附加的好處是您可以「查看丟失的數(shù)據(jù)在數(shù)據(jù)框中的分布情況」。繪圖的右側(cè)是一個(gè)迷你圖,范圍從左側(cè)的0到右側(cè)數(shù)據(jù)框中的總列數(shù)。上圖為特寫(xiě)鏡頭。當(dāng)一行的每列中都有一個(gè)值時(shí),該行將位于最右邊的位置。當(dāng)該行中缺少的值開(kāi)始增加時(shí),該行將向左移動(dòng)。

          熱圖

          熱圖用于確定不同列之間的零度相關(guān)性。換言之,它可以用來(lái)標(biāo)識(shí)每一列之間是否存在空值關(guān)系。

          接近正1的值表示一列中存在空值與另一列中存在空值相關(guān)。

          接近負(fù)1的值表示一列中存在空值與另一列中存在空值是反相關(guān)的。換句話說(shuō),當(dāng)一列中存在空值時(shí),另一列中存在數(shù)據(jù)值,反之亦然。

          接近0的值表示一列中的空值與另一列中的空值之間幾乎沒(méi)有關(guān)系。

          有許多值顯示為<-1。這表明相關(guān)性非常接近100%負(fù)。

          熱圖可由以下代碼生成:

          msno.heatmap(df)

          在這里我們可以看到ROP柱與RHOB、NPHI和PEF柱呈輕微的負(fù)相關(guān),與RSHA呈輕微的正相關(guān)。如果我們看一下DRHO,它的缺失與RHOB、NPHI和PEF列中的缺失值高度相關(guān)。

          熱圖方法更適合于較小的數(shù)據(jù)集。

          樹(shù)狀圖

          樹(shù)狀圖提供了一個(gè)通過(guò)層次聚類(lèi)生成的樹(shù)狀圖,并將空相關(guān)度很強(qiáng)的列分組在一起。

          如果在零級(jí)將多個(gè)列組合在一起,則其中一列中是否存在空值與其他列中是否存在空值直接相關(guān)。樹(shù)中的列越分離,列之間關(guān)聯(lián)null值的可能性就越小。

          樹(shù)狀圖可通過(guò)以下方式生成:

          msno.dendrogram(df)

          在上面的樹(shù)狀圖中,我們可以看到我們有兩個(gè)不同的組。第一個(gè)是在右側(cè)(DTS、RSHA和DCAL),它們都具有高度的空值。第二列在左邊,其余的列比較完整。

          LITHOFACIES, GR, GROUP, WELL, 和 DEPTH_MD 都?xì)w為零,表明它們是完整的。

          RDEP、Z?LOC、X?LOC和Y?LOC組合在一起,接近于零。RMED位于同一個(gè)較大的分支中,這表明該列中存在的一些缺失值可以與這四列相關(guān)聯(lián)。

          摘要

          在應(yīng)用機(jī)器學(xué)習(xí)之前識(shí)別缺失是數(shù)據(jù)質(zhì)量工作的一個(gè)關(guān)鍵組成部分。這可以通過(guò)使用missingno庫(kù)和一系列可視化來(lái)實(shí)現(xiàn),以了解有多少缺失數(shù)據(jù)存在、發(fā)生在哪里,以及不同數(shù)據(jù)列之間缺失值的發(fā)生是如何關(guān)聯(lián)的。

          往期精彩回顧




          本站qq群851320808,加入微信群請(qǐng)掃碼:

          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美色图小说 | 国产午夜精品一区二区三区四区 | 成人色天堂| 免费黄的在线观看中文字幕视频 | 日韩免费高清一区二区 |