1. 程式人生 > >谷歌開源機器學習視覺化工具 Facets:從全新角度觀察資料

谷歌開源機器學習視覺化工具 Facets:從全新角度觀察資料

近日,出於支援 PAIR initiative的目的,谷歌釋出了 Facets,一款開源的視覺化工具。它可以幫助你理解、分析和除錯 ML 資料集。Facets 包含兩個部分——Facets Overview 和 Facets Dive——允許使用者從不同的粒度觀看資料的全景圖,還可以輕易地被用在 Jupyter notebooks 之內,或者嵌入網頁之中。除了開放 Facets 原始碼,谷歌還建立了演示網站,Github 和網站地址見文中。

  • Github:https://github.com/pair-code/facets
  • 演示網站:https://pair-code.github.io/facets/

從機器學習(ML)模型中取得最佳結果需要你對有資料有真正的理解。然而,ML 資料集的資料點一般有數百萬種,每種包含數百個(甚至數千個)特徵,致使不可能直觀地理解整個資料集。視覺化有助於解決大型資料集的這一難題。一圖勝千言,而一個互動式視覺化不止勝千言。

出於支援 PAIR initiative,我們釋出了 Facets,一款開源的視覺化工具,幫助你理解和分析 ML 資料集。Facets 包含兩個部分——Facets Overview 和 Facets Dive——允許使用者從不同的粒度觀看其資料的全景圖。你可以使用 Facets Overview 視覺化資料每一個特徵,或者使用 Facets Dive 探索個別的資料觀察集。這些視覺化允許你除錯資料,這在機器學習中和除錯模型一樣重要;還可以輕易地被用在 Jupyter notebooks 之內,或者嵌入網頁之中。我們除了開放 Facets 原始碼,還建立了演示網站,允許任何人在瀏覽器中直接視覺化資料集而無需安裝任何軟體或設定,也無需資料離開你的計算機。

Facets Overview

Facets Overview 自動地幫助使用者快速理解資料集中所有特徵的值分佈。多個數據集(比如訓練集和測試集)可在同一個視覺化中進行比較。束縛機器學習的一般性資料難題被推向最前端,比如出乎意料的特徵值、具有高比例遺失值的特徵、帶有不平衡分佈的特徵,資料集之間的特徵分佈偏態(distribution skew)。


加州大學爾灣分校(UCI)人口普查資料集 [1] 的 6 個數字特徵的 Facets Overview。

特徵按照不均勻性排序,帶有最大不均勻性分佈的特徵排在頂部。標紅的數字表示可能的問題點,在這種情況下,帶有高比例值的數字特徵設定為 0。右邊的柱狀圖允許你比較訓練集(藍色)和測試集(橙色)之間的分佈。


Facets Overview 展示了加州大學爾灣分校人口普查資料集 9 個分類特徵中的 2 個。

這些特徵通過分佈間距被排序,把訓練集(藍色)和測試集(橙色)之間帶有最大偏態的特徵排在頂部。由於測試集中的尾隨時段(「<=50K」vs「<=50K.」),「目標」特徵中標籤值在訓練和測試集中有所不同。這可在特徵的圖表中檢視,也可在表中「頂部」列的條目中看到。該標籤不匹配將導致對該資料進行訓練和測試的模型不能被正確評估。

Facets Dive

Facets Dive 提供了一個易於定製的直觀介面,用於探索資料集中不同特徵資料點之間的關係。通過 Facets Dive,你可以控制位置、顏色和視覺表現。如果資料點有與其相關的影象,則影象可以用作視覺表示。


Facets Dive 視覺化顯示了加州大學爾灣分校人口普查測試資料集中的 16281 個數據點。

動圖展示了通過對資料點顏色不同特徵「關係」進行分別著色,連續特徵「年齡」為一個維度,離散特徵「婚姻狀況」為另一個維度進行排列。


Facets Dive 從「Quick Draw」資料集中生成的視覺化效果,它顯示了「Quick Draw」圖片中筆畫和點被正確地分類為人臉。

Quick Draw 資料集:https://github.com/googlecreativelab/quickdraw-dataset

Fun Fact:在大資料集中(如 CIFAR-10 資料集),一個小小的標籤錯誤是很容易被忽視的。我們利用 Dive 檢查了 CIFAR-10 資料集,並發現了一隻青蛙貓——一隻被標記為貓的青蛙。


使用 Facets Dive 探索 CIFAR-10 資料集。在這裡,基本分類標籤為行,預測分類標籤為列。

這種組合就產生了混淆矩陣檢視,我們可以在其中找到特定型別的錯誤分類。在上面的例子中,我們可以看到機器學習模型錯誤地將一些貓的圖片分類為青蛙。把真實圖形放在混淆矩陣中讓我們發現的一個有趣現象是:這些「真貓」中的一隻被模型預測為青蛙是因為它在視覺檢查中被定義為青蛙,這是由於模型訓練的資料集中它被人為地錯誤分類了。


你能區分出貓和青蛙嗎?

在谷歌內部,Facets 已經展現出了巨大價值。現在,谷歌希望將這份便利分享到全世界,通過發現數據中更有趣的新特徵來創造更加強大和準確的機器學習模型。因為 Facets 已經開源,你可以根據自己的需求自定義視覺化內容,或為專案作出貢獻。


參考文獻

[1] Lichman, M. (2013). UCI Machine Learning Repository 

[http://archive.ics.uci.edu/ml/datasets/Census+Income]. Irvine, CA: University of California, School of Information and Computer Science

[2] Learning Multiple Layers of Features from Tiny Images , Alex Krizhevsky, 2009:https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf