數據百問系列:「未知」數據該如何處理?

  • 2019 年 10 月 8 日
  • 筆記

數據百問系列:「未知」數據該如何處理?

0x00 前言

本次討論的主題是:數據維度分類中,習慣將無法歸類或者數據模糊的歸為「未知」,那麼對於這些未知數據, 我們應該怎麼處理呢?

問題:

  • 1、「未知」對數據分析和可視化有什麼影響?好處和壞處是什麼?
  • 2、需求方經常回饋看不懂「未知」數據,認為「未知」數據量級過大,你會怎麼處理這種情況的?
  • 示例:比如每個城市的用戶數 北京 123 上海 123 …… 未知:234

補充:為什麼會出現未知的數據?原因多種多樣,如果你沒有遇到是最好的。現在可以假設的確遇到了這個問題,然後繼續後面的討論。

分析:

本話題是一個發散性的話題,並沒有限制太多的內容,主要是想跟大家討論一下當我們遇到未知數據的時候,我們應該怎麼處理它們才是合適的。這個現象,在實際工作中我們可能也會遇到的, 大家也可以將它當成是一道面試題或者假設你現在就是遇到了這樣的問題的場景來進行思考。

0x01

討論一:

在用戶畫像分析的時候經常會遇到未知數據,主要有兩個原因:

  • 1、數據採集時埋點未採集到該欄位數據,上報空值;
  • 2、沒有收集到用戶該欄位資訊,無法判斷

討論二:

我是做數據底層的 在數據日誌上報端,或者已經生成標籤端我們通常不回給你們這些數據,我們都會處理好,統一交付

  • 1、數據發生未知的時候,如果按照城市來說,我們會補上
  • 2、重點欄位無法補上的數據,我們剔除到問題庫,2次清洗在補,如果無法補上,我們將放在問題庫里。

討論三

數據展示要完整 沒有未知就是不完整的數據,可以觀察數據分類和統籌情況,隱瞞未知雖然不會暴露問題,但是很多分析要建立在真實現有數據情況下才能成立,分類表總量也要體現出來,不能避重就輕,如果未知數據量過大,可以選擇另外加一張沒有未知情況的圖形,或者另外加一張對數圖進行補充

討論四

未知問題主要是因為現有狀態類型無法覆蓋全部數據,但是為了保證數據的完整性,需要增加未知。

  • 1、在數據可視化上的影響,主要體現在數據量較大的影響上。當未知數據量是其他分類的n倍左右,數據可視化中其他數據的特徵就得不到很好的展示,可視化效果差 優點:數據全覆蓋,當出現未知時,幫助發現業務調整等因素,及時溝通調整 缺點:可視化展示問題,過多的未知會影響分析結果,
  • 2、視情況來看。如果是業務調整加入了未分類的數據,此時需要及時與業務溝通,增加分類;非業務場景變更,先看下這種數據出現的場景是否可以解決,如果可以解決,那麼增加應景的分類/按規則歸類,如果是短期無法解決的且數據量較大,那剔除未知數據展示會好一點

討論五:

回答題目前,需要達個共識 假設大家都知道「未知」的數據是長期存在的,如果數據品質很好很標準,不存在這個問題,那麼就不存在這個問題;

  • 1、「未知」對數據分析和可視化有什麼影響?好處和壞處是什麼?
    • 好處: 數據的全局完整性好,假設當天的100個訪問用戶要準確的區分來源渠道,其中20個訪問用戶的來源渠道數據不明確,那麼只給出80這個數字,顯然讓人迷糊且數據不夠真實; 數據的準確性,完整性,及時性三要素中,準確性和完整性都得到不到滿足,不就不能發現問題解決問題
    • 壞處: 多數團隊的成員水平參差不起,對數據「未知」的選項和造成「未知」的原因不了解,導致普及和溝通成本較大,如果「未知」數據量特效小,忽略這個選項有時候更佳。
  • 備註:造成「未知」的現象
    • 1、數據品質問題,因為數據上報或者採集不完整,導致數據缺失,無法準確的歸因。 只好對無法歸因的數據統一放在一個其他選項中,比如「未知」。 這個現象從底層數據就支援不到位。
    • 2、數據加工損耗,數據生成加工過程中,由於考慮不周全或是特殊場景要求,將數據過度的清洗,或者選擇不採用,不加工的捨棄方法,導致數據在加工層面缺失。
    • 3、基於數據可視化的需要,聚合數據。 以減少維度的枚舉值數量。
  • 2、需求方經常回饋看不懂「未知」數據,認為「未知」數據量級過大,你會怎麼處理這種情況的?
  • 解析: 問題的重點為,「未知」量級過大,或者說量級偶爾抖動; 然後是這個問題時常發生,比較反覆。 * 建議採納的方法為:
    • 1、歸納存在「未知」這個數據現象的數據可視化報表;
    • 2、協調推動團隊內外達成共識,每個報表選項下的「未知」比例的SLA標準,(例如,訪問用戶來源渠道的「未知」下,用戶數佔比應該處於5%以下。 )
    • 3、對超出SLA預期的「未知」現象指標 ,做數據探查和分析,實現數據問題的修復,並設置長期監控。 符合SLA標準為正常,超出預期,技術人員自主獨立完成修復(ps: 減少了內部其他職能人員的精力損耗)
    • 4、將數據品質問題的數據缺失,加工問題等,造成「未知」現象的原因,舉例形成案例,同時將第1、2步中的報表+SLA標準整理為wiki(或者可視化中小提示tip)沉澱積累。 後續運營、產品、商業分析等職能人員遇見類似問題,先丟出這個wiki,範圍內的問題,職能類人員自行消化,超標準的提交技術人員解決。 (ps: 減少了內部技術人員的精力損耗)

附圖:不同級別的人員對對於類似問題解決的要求門檻

0x02 總結

對於這個話題,我覺得群友們的討論已經很極致了,所以下面的文章中我就根據大家討論的情況及個人的一些理解對這個話題進行一個整理與總結。

首先是先弄清楚為什麼會產生未知的數據?弄清楚原因之後才能更好地對症下藥。未知數據產生的原因是多種多樣的,其中可能是:

  • 1、數據的採集問題:
    • 數據在採集到的時候就是未知的,如性別保密、生日保密等;
    • 數據在採集的時候缺少了採集的欄位;
  • 2、數據的加工問題: 在數據中間層進行加工的時候,由於考慮不周全或者特殊場景要求,在對數據進行清洗的過程中出現了數據同類合併、資訊丟失的現象,如廣州、深圳、四川、上海四個地區的用戶中,可能會將廣州、深圳合為廣東,將四川、上海都併入其他; 也有可能將四川併入其他(廣州、深圳、上海都是城市),這是數據在清洗的過程中出現的資訊損耗,這種情況也很容易出現未知數據(因為不知道這個」其他「究竟是指哪些地區);
  • 3、數據的可視化問題: 當數據在進行可視化操作的時候,可能會為了突出某一個欄位而將其他欄位都併入了其他。

其次是「未知」數據對數據分析和數據可視化會有什麼樣的影響?任何事物的存在都有其利與弊,所以對於這個問題我也是從辯證的角度來對它進行一個整理與總結:

好處:

  • 1、保障了數據的完整性。 數據分析應該建立在數據的完整性、及時性與準確性上面,隱藏了未知數據或許可以給工作帶來一些小方便,但是如果數據本身是殘缺的,那麼分析出來的結果也是值得懷疑的,畢竟缺少了數據的完整性就更別提數據的準確性了,而數據不準確的數據分析結果還可靠嗎?
  • 2、使數據分析結果更具有說服力。 其實也是完整性的一個拓展,在數據分析的過程中如果出現了問題,至少可以知道應該從哪一方面去入手解決這個問題,進而可以增加數據分析的維度,使分析報告的展示更加地飽滿。
  • 3、在數據的可視化展示中,可以減少一些維度,突出重點。 「未知」數據有時候是其他數據的合併,在數據進行可視化的時候,為了突出某一方面的重要性或者佔比,我們可能會將其他數據都合併為「其他」,這是造成未知數據的一個原因之一,而這也是「未知」數據在數據可視化方面所體現出來的優點。

壞處:

  • 1、增加了數據分析的難度。 未知數據如果只是一小部分的話就還好,但是如果未知數據達到了一個量級且無法對其進行解釋,那麼在進行數據分析的時候就很難進行下去了。 未知數據太多了,數據就會失去參考價值,進而容易加大數據分析的難度;
  • 2、數據的可讀性下降。 如果無法解決未知數據所包含的資訊有哪些這個問題,就很容易導致數據的可讀性下降。 比如說,用戶的性別中男性、女性跟未知的佔比,如果未知的佔比過大,我們很難在結果中說明用戶主要是男性居多還是女性居多。 這種情況下,由於未知數據隱藏了較多的資訊,會直接導致數據的可讀性嚴重下降。

最後講講如何處理「需求方經常回饋看不懂「未知」數據,認為「未知」數據量級過大」的情況。對於這個問題,我結合了群友們的討論,從以下四個點來進行簡單的總結:

  • 1、控制數據來源中的「未知」數據比例。 從ODS層就開始數據的把控,設置」未知「數據的比例標準,例如,訪問用戶來源渠道的「未知」下,用戶數佔比應該處於5%以下。 如果在數據接入時就出現了超標的情況,那麼就需要數據採集的技術人員去自行解決這一情況了;
  • 2、控制數據加工造成」未知「數據的比例。 當在中間層中對數據進行加工的時候,同樣也需要對產生」未知「數據進行一個比例的控制且需要對「未知」數據的比例及產生的原因使用文檔或者圖表的形式進行舉例與說明,方便後續對未知數據的追蹤;
  • 3、在數據分析報告中對「未知」數據進行解釋。 如果是數據分析中出現了「未知」數據, 那麼可以在分析報告中對數據進行解釋,向需求方說明這些「未知」數據裡面會含有哪些資訊,也可以再增加一份」未知「數據說明文檔,舉例說明是怎麼產生這些未知數據的,有時候,一份」未知「數據的可視化圖表或許就可以直觀地解釋這個現象了;
  • 4、將未知文件整理成系統性的文檔,方便後續運營、產品、商業分析等職能人員進行查詢及產生」未知「數據的人員責任追蹤。