開源在線工具 Facets 使用詳解——助你直觀了解數據 · 機器學習 AIA 系列教程

開源在線工具 Facets 使用詳解——助你直觀了解數據 · 機器學習 AIA 系列教程

來自專欄 機智如你

在機器學習中,我們的數據通常是凌亂的:它們常常會不協調、出現偏差,甚至會夾雜著很多奇奇怪怪的數據以至於讓分析過程或者訓練半途夭折。

Better data leads to better models,只有對數據有足夠的了解,才能構建出好的模型,Facets 是一個用於幫助理解和分析機器學習數據集的開放源代碼可視化工具。Facets 包含兩個可視化選擇,讓用戶能夠以不同粒度查看其數據的整體情況。可使用 Facets Overview 了解數據的每個具體特性,或使用 Facets Dive 探究個別觀察的數據集。

請看視頻,聽聽 Yufeng 為你介紹一下這個工具吧:

https://www.zhihu.com/video/964432035285213184

數據可視化

對你的數據有一個整體認識,是構建良好機器學習數據集的第一步。但是這樣做可能會很棘手,尤其是在處理一些可以一般化的問題的時候。

一款來自 Google Research 的開源項目 Facets 能把數據可視化展現出來,並且可以通過各種方式來剖析展現。這有助於我們窺探數據集結構的究竟。

Facets 通過幫我們找到數據當中不符合預期的地方,來減少意外發生的幾率。

先看看 Facets 長什麼樣。團隊給出了一個樣例展示頁,這樣你就能直接在 chrome 上嘗試操作 Facets 而不許自己安裝。並且,Facets 使用 TypeScript 編寫的 Polymer Web Component,所以它能夠輕易嵌入 Jupyter 筆記本或是 Web 頁面中。

要認識 Facets,我們從 Facets Overview 及 Facets Dive 著手開始。我們挨著多多了解一些。

Facets Overview

顧名思義,Facets Overview 會讓你對數據集有一個直觀總覽。之前幾期的視頻/文章中,我們了解了一些工具,比如 pandas,這些工具可以讓我們清楚數據是怎樣分布的。而使用 Facets Overview,則可以在它們的基礎上更進一步了解有關數據的信息概覽。

Facets Overview 從我們數據當中的各列提取出重要信息,包括諸如丟失的百分比、最小最大值和均值、中位數、標準差等統計量。它還會有一列專門顯示數據當中 0 值所佔的百分比,這對於尋找大多數都為 0 的情形非常有用。

上圖當中高亮框選的就是這些數據 0 的佔比,對特定列的重點排查起到了非常重要的作用。

在 Facets Overview 中還可以看到數據的不同特徵值在訓練和檢測集中的分布情況。這樣一來,我們可以確保在檢測集和訓練集中,數據各項特徵的分布情況基本一致。

但是這樣有什麼意義?

是的,確切地講,用你自己的方式來進行這個層面的分析已經是一種最佳實踐了。但是我曾忘記了要詳細檢查數據中每一列的所有指標。而這個工具就能確保我們不再遺忘這重要一步,並且將所有反常之處都標記出來。

Facets Dive

接下來聊聊 Facets Dive。從這裡開始,很多事情都會變得很有趣。Facets Dive 讓你更加清晰得洞察數據,甚至還能讓你通過縮放來查看某一特定的數據。

你可以按照行和列來擷取數據中一小個「facet」,觀察它在所有特徵值中的情況。就好比你在網購一雙鞋,然後通過過濾工具篩選大小、品牌和顏色。讓我們看看 Deep Dive 的一個例子,來深入認識一下。

https://www.zhihu.com/video/964431464259162112

界面整個被拆分成了 4 各部分。主空間中間是你的數據的一個可以縮放預覽。左側的面板是你可以調整數據篩選項、布局、顏色的各項參數。而再下面緊鄰的是數據圖例。右面遠處是某一行數據的詳細信息。你可以點擊任意一行數據,然後查看該點處數據的詳細情況。

下面,我們一起研究這些是怎麼搞的。

要實現這些操作,我們會用到人口普查數據集。這是一個由 Barry Becker 從 1994 美國人口普查中提取的經典數據集。它的目標是根據一些普查數據預測一家人的年收入是在 5 萬美金以上還是以下。

按行解讀

首先我們把數據依據年齡劃分,然後根據目標值為數據點著色。這裡藍色代表低於 5 萬,紅色代表高於 5 萬。

https://www.zhihu.com/video/964431505669545984

按列解讀

然後我們再看這個根據數據另一特徵變數按照年齡劃分的結果。是否不同的每周工作天數會對不同年齡段產生不同影響呢?我們可以通過選出每周工作時間這個分片規則來篩選數據。

https://www.zhihu.com/video/964431723120025600

可見,大批 17 至 26 歲的年輕人每周工作 15 到 29 小時,也許這是因為孩子們在做假期兼職。另外,還可以從中發現一個趨勢:越來越少的人在年齡增長時每周工作 29 到 43 小時,而工作 43 到 57 小時的仍然保持一個相對穩定的水平。

排布方式

但是上面的這些仍然不足以為我們展示我們所需要的信息。讓我們試試改變圖形的排布方式來顯示更多細節。我們會把定位排布方式改為「分散」,然後通過年齡來分片。然後我會選擇「每周工作時間」作為垂直排序依據,這樣就能夠清晰看到每周工時在各年齡段的排布情況了。現在,可以看到每周工作時間在整個圖標的中斷有所上升,然後在兩側都處於較低水準。

你應該繼續探索這些數據,這樣才能找到你需要了解的趨勢或者關係。舉個例子,如果按照原國籍分布,則可以發現數據嚴重偏向一側。也就是說,你需要獲得更多的數據來形成一個更加平衡的數據集。

載入你自己的數據集

如果你認為上面的這些功能特性很有趣,那你可以考慮把自己的數據集載入 Facets。這裡你會有兩個選項。

你可以選擇 Web 方式來直接上傳,這樣就能在瀏覽器使用了;也可以根據頁面的指示安裝 Jupyter 筆記本的庫來使用。

Facets 是一款洞悉數據內部特徵的極佳工具。它幫助你窺視不同特徵量之間的關係,同時還確保你的數據中沒有缺失或是不符合期望的數據。


感謝閱讀本期 Cloud AI Adventures,如果有任何對文章內容的建議,請在文末的評論框中提出和交流。

▏原文出處:Medium - Visualize your data with Facets

▏封面來源:YouTube 視頻縮略圖

▏視頻出處:YouTube - Visualize your Data with Facets

▏字幕翻譯:谷創字幕組

▏文章編輯: @楊棟


這不是廣告:

我們創建了一個交流本系列文章和 TensorFlow 技術的 Slack 群組,歡迎讀者加入交流。


推薦閱讀:

C++運行TensorFlow模型
調試TensorFlow的過程中用到的一些PyCharm技巧——將2空格縮進改成4空格縮進,
cs20si: tensorflow for research 學習筆記1
如何使用最流行框架Tensorflow進行時序預測和時間序列分析
[框架安裝趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet

TAG:TensorFlow | 開源軟體 | 數據集 |