Help us understand the problem. What is going on with this article?

Google製可視化OSSのFacetsがめっちゃ便利だから使ってみてくれ

More than 1 year has passed since last update.

Facetsとは

Facetsとは、Google製の可視化ツールです。

データセットの可視化を素早く簡単に行うことが出来ます。
機械学習のデータセットを可視化する「Facets」で遊んでみた
Google、機械学習のデータセットを視覚化するオープンソースツール「Facets」を公開

機械学習を行う時、前処理の前にデータの可視化を一通り行うことは多いと思います。
この時用いられる可視化ツールとしては、Redash・Pandasなどが多く使われています。
上記2つのツールはとても便利ですが、RedashはSQLを、PandasはPythonを少し書かないといけません。

Facetsなら上記2つより簡単に、素早くデータの可視化を行うことが出来ます!

では、以下から導入・簡単な説明をします。


Facetsを使う前に、まずJupyterとPandasをインストールします。

pip install jupyter
pip install pandas

これだけで基本は大丈夫ですが、詳しくは以下をどうぞ↓

はじめるJupyter Notebook

追記(2017/9/28)

pipからjupiterをインストールした場合、

jupyter nbextension install facets-dist/

を行うことでjupiter上でfacets-distを動かすことが可能になります。

またラボ等の共用サーバーで動かす場合、

jupyter nbextension install facets-dist/ --user

で個別に行うことが出来ます。


次に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の画面が出てくると思います。

スクリーンショット 2017-09-18 23.00.05.png

ここで、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 を押すと動くと思います。
するとこんな画面が出てきます。

movie.gif

こんな感じ。
インタラクティブにデータを見られることがわかっていただけたと思います。

実際のデータを扱いたい場合、以下の部分で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')

追記(2017/9/28)

facets_overviewを使いたい場合、上記の内容に加えProtocol Buffersのpython runtime libraryをインストールすればOKです。
google/protobuf
ドキュメントにインストール法は記載されているため、そちらをご確認ください。
google/protobuf/python


追記(2018/02/17)

How to see large datasets in dive similar to the one in overview

Dive, since it visualizes all data of all records provided to it in the browser, cannot handle huge datasets - you would need to sample from the dataset and show a subset of data. We often use dive with tens of thousands of records, but not hundreds of thousands. And each record has a handful of features. The more features per record, the smaller number of records that could be handled before browser memory issues.

サンプルレベルのデータなら使えますがあまり大きいサイズの可視化は出来ないそうです😥

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした