Facetsとは
Facetsとは、Google製の可視化ツールです。
データセットの可視化を素早く簡単に行うことが出来ます。
機械学習のデータセットを可視化する「Facets」で遊んでみた
Google、機械学習のデータセットを視覚化するオープンソースツール「Facets」を公開
機械学習を行う時、前処理の前にデータの可視化を一通り行うことは多いと思います。
この時用いられる可視化ツール・ライブラリとしては、Redash・Pandasなどが多く使われています。
上記2つのツールはとても便利ですが、RedashはSQLを、PandasはPythonを少し書かないといけません。
Facetsなら上記2つより簡単に、素早くデータの可視化を行うことが出来ます!
では、以下から導入・簡単な説明をします。
Facetsを使う前に、まずJupyterをインストールします。
pip install jupyter
これだけで基本は大丈夫ですが、詳しくは以下をどうぞ↓
次にFacets本体をgit cloneして Facetsのディレクトリに移動します。
git clone https://github.com/PAIR-code/facets
cd facets
Facetsの中には
- facets_dive
- facets_overview
という2つのディレクトリが入っています。
facets_diveは多次元のデータををインタラクティブに探索することが、facets_overviewではデータセットの概要や、2つ以上のデータセットの比較を行うことが出来ます。
今回はよく用いるであろう、facets_diveを使ってみます。
cdでディレクトリに移動し、以下のコマンドを打ちます。
cd facets_dive
jupyter notebook
するとブラウザ上にいつものJupyterの画面が出てくると思います。
ここで、Dive_demo.ipynbを選択します。
いつも通り Shift+Enter を押します。
たぶんここでこんなエラーが出るかと思われます。
[W 22:40:58.498 NotebookApp] IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.
可視化を行う場合データが大きすぎてたまに怒られることがあります。
これを治すために一旦ターミナルに戻って以下のコマンドを打ちます。
jupyter notebook --generate-config
これでJupyterのconfigが出来ました。
以下のコマンドで.jupyter/jupyter_notebook_config.pyを開きます。(エディタはなんでも良いです。)
nvim .jupyter/jupyter_notebook_config.py
ここに書かれているc.NotebookApp.iopub_data_rate_limit = 1000000の部分をコメントアウトを消して1000000の部分をより大きな数字に変更します。
IOPub data rate exceeded when viewing image in Jupyter notebook
これを行いもう一度Jupyterを開いて Dive_demo.ipynb にて Shift+Enter を押すと動くと思います。
するとこんな画面が出てきます。
こんな感じ。
インタラクティブにデータを見られることがわかっていただけたと思います。
実際のデータを扱いたい場合、以下の部分でPandasなどを用いてデータを読み込み、JSONにパースすることで使えるようになります。
データはSQL,CSVなどなんでも大丈夫です!
ぜひ使ってみてください!
jsonstr = pd.read_csv(
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.test",
names=features,
sep=r'\s*,\s*',
engine='python',
skiprows=[0],
na_values="?").to_json(orient='records')