2019年12月1日日曜日

Dataikuを使ってみよう #1 : データをDataikuに取り込む

データをDataikuに取り込んでみよう



#0でも説明したように、Dataikuでは様々なデータソースからデータを取得することができます。Editionによって取得できるデータソースがことなります。ローカルPCのデータやMySQL、Postgres、Cloud Storage(AWS S3 等)、HTTP(S) 、同一Dataikuインスタンス中からはFreeEditionからも取得することができます。

それ以外のEnterprise系のOracleやTeradata、Greenplum、Amazon RedshiftなどはEnterprise Editionで利用が可能です。


ローカルファイル以外のデータを取り込む際には、事前に接続設定が必要なのでお忘れなく。
(右上の□が9つあるアイコン中の) Administration > Connectionsで設定が可能です。



ローカルからのファイルアップロードは他のツールでもできるので、
今回はHTTP(S)経由で取得してみましょう。

HTTP(S)経由でデータを取り込む

こちらのチュートリアルにあるデータを取り込んでみましょう。
ページ中頃にURLがあるので、ローカルに”ダウンロードせずに”直接URLからデータを取り込んでみます。(ダウンロードURL * 40MBぐらいあるので注意)
データ列が同じで複数URLに分かれている場合は、一行一URLで入力をしてくれれば、一つのデータセットとして作成してくれます。
URL(s) のボックスに該当するURLを入力、右上のデータセット名を入力して、左下の「TEST」ボタンをクリックすると、URL先のデータを取りに行き、「Preview」でデータ型を推定した画面が表示されます。




必要に応じて、データ型を変更してください。また、右側にカラムの意味などを入力できるBoxがあるので、データのValue値の定義等を書いておくと、後々参考になるかと思います。
それ以外でも「Format/Preview」でデータの数行が見れたり、区切りなどを設定するでき、「Partitioning」でデータをパーティションに分けることができます。(FreeEditionでは残念ながら利用できませんが…)。また、「Advanced」でちょっと高度なこと(例:一貫性のチェック等)が可能です。

諸々設定が終わったり、右上のCREATE(すでに作成済みデータセットを変更する場合はSAVEと書いてあります)をクリックして、データ作成完了です。

Flowに戻ってみると、このようなアイコンで表示されます。
まだ何も他の操作を行っていないので、まだこれだけです。

データの概要を知る

さて、データの準備ができました。おそらく次のステップはインポートしたデータの内容確認を行うでしょう。値で入っているカラムの値の分布をチェックしたり、テキストで入っているカラムであれば、パターンをチェックしたり… まずはデータを機械学習などに入れる前に分析対象をよく知ることが必要です。

SQLではカウントや分布などの関数を使ってカラムの状況をを確認したり、RではSummary() 関数を使って各カラムの様子を知ることができました。
Dataikuでは、そのようなコードを書かなくてもマウス一つで知ることができます。

Flowに戻り、データセットのアイコンをダブルクリックすると、以下のようにデータ内容が表示されます。

このカラム名をクリックすると、以下のようなメニューが出てきます。
カラムの内容を見る際には、この「Analyze...」を選択しましょう。
このカラムの値の概要が表示されます。

このカラムは「空港3レターコード」を表しています。どの値がどのように分布しているのかがひと目でわかります。また、左側にはValid = 適正な値になっているか、またユニークがどのぐらいがあるかをSummaryとして表示してくれています。
上記はテキスト形式のカラムのサマリでしたが、今度は数値型の数字のAnalyze...を選んでみると、上記のようなヒストグラム、箱ひげ図、分布が表示されます。
これを既存のコードで書こうとするとそれなりに時間がかかりますが、Dataikuでは、マウス一つでここまで表示をしてくれます。

また、ひとつずつのカラム分布をみても大変なので、一気にヒストグラムを見ることもDataikuでは準備されています。
データ表示画面のトップツールバーの右上にあるアイコンのQuick Column Stats を選択すると、すべてのカラムのヒストグラムが表示されます。




もう少し各カラムの特徴をビジュアルで知りたい方はこちらの方法ではいかがでしょうか。
カテゴリカルなデータを色をつけて知りたいことがあるかと思います。(よくみなさんがExcelでやってるやつです)同じことをDataikuでは対応をしています。

この Columns values ~ を設定すると、以下のようなデータ表示(各カラムに値でグルーピングの色わけ)がされます。


また、これまではカラム+データで表示をしていましたが、カラム数が多くなるとスクロールでも見にくい場合が出てきます。そのため、カラム名のみ表示するというオプションもあります。

少し注意なのが、Analyze... の2画面のタイトル中のSampleというフィルタです。
このフィルタを開くと、以下のような値を選択できます。

デフォルトではサンプリングしたデータを参照してさきほどの集計をしています。サンプリングの仕方は設定が可能です。巨大なデータセットに対してWhole Dataを選択してしまった場合、ロードに時間がかかりシステムに負荷がかかるため、時間がかかることが予想されます。可能であればSampleを選んでおきましょう。

データの特徴をチャートで捉える

これまではデータを数値やカテゴリ値として概要を見てきました。ただしやはりチャート(棒グラフや線グラフ等)で視覚的に捉えたいと考える人も多いかと思います。
その部分もDataikuでは抑えており、基本的なチャートがデータセットから作り出せます。

先程はメニューの「Explore」でデータセットの傾向を見ていたのですが、その隣の「Charts」を選択すると既存のデータセットからチャートを作成できる画面になります。
チャートも基本的なものからBoxPlot(箱ひげ図)、地図、散布図など分析する際に困らない程度のチャートは準備してあります。


これらを使って、上記のデータセットをつかってチャートを作ってみるとこんな感じになります。これらは一つだけでなく、ページを追加していくつかのチャートを組み合わせて見ることが可能です。X軸に分析軸、Y軸に分析対象を置くことで作成ができます。
直感的なのでExcelのチャートや他のBIツールを使い慣れている方であれば、すぐに習得できると思います。

また、積み上げや%表示なども軸においた項目から選択ができ、わざわざデータで新しいカラムを作成しなくても良くなっています。
さらに作ったチャートを「Publish」(Chart画面内右上にあります)して、Dashboardに入れることができます。

チャートをDashboardに埋め込むことができました。Dashboardの説明についてはまた後日説明をします。

データの概要を知るためには十分な機能

これまで紹介した機能は、Dataikuが持っているデータインポート後に使える内容(FreeEditon)となります。データを機械学習にかける際にデータの中身を知る必要がありますが、データの分布やチャートを使って内容を知る場面には十分な機能ではないでしょうか。

Dataikuにはどのような機能があるかを知りたい方は、チュートリアルもありますので、ぜひ使ってみてください。

0 件のコメント: