2020年8月23日日曜日

Dataiku DSS Ver8.0 新機能:Dataiku Applications

 

Dataiku DSS Ver8.0 がリリースされました。

今年の3月中旬にリリースされたDataiku DSS Ver7.0から、更に機能が追加された
Dataiku DSS Ver8.0が7月中旬にリリースされました。
ちょっと調べたのですが、おそらく世界でも早い方の機能レビューではないでしょうか。

詳細については、以下のリンクを参考にしていただくとして、数回に分けてVer8.0の機能をいくつかレビューをしていきます。

DSS Ver8.0 New Features

今回は作成されたFlowを使って、簡単にビジネスユーザーが利用するシンプルなアプリケーションを作成できる、Dataiku Applicationsについて説明をします。

Dataiku Applications とは

Dataiku Applicationとは、これまで作成されてきたDSS Projectをシンプルなアプリケーションに変換できる機能です。

実際のビジネス現場で利用される場合、依頼された現場の方や実際にデータを利用したい方へ分析した結果・機械学習を使った結果を提供されるかと思います。また、新しいデータセットを使って同じモデルの結果を得たいという要望も出てくるかと思います。

そういった要望を叶えるための機能がDataiku Applications になります。

使い方としては、以下のステップで作成することが可能です。

  1. Dataiku Applications 化したいプロジェクトを選択
    今回は、前回作成利用した、「キャンペーンに応募する顧客判定」のプロジェクトを利用します。

    Flowを開いて、ツールバーにあるApplication Designerを選択します。そうすると、Dataiku Applications を設定できる画面に遷移します。





  2. 利用者に行わせたいアクションを検討し、選択
    この画面で、
     -「新しいデータセットを選択できる」
     -「モデルの実行を行う」
     -「結果をDashboardで閲覧できる」
     -「アウトプットをダウンロードできる」
    の4つをユーザーが利用できるようにします。
    この画面の下の方に行くと、「ADD TILE」というボタンが表示されており、それを選択すると、選択できるアクションを見ることができます。

    ここでは、上記アクションを行うために、以下のTILEを選択します。
     -「新しいデータセットを選択できる」 → Upload file in dataset(Customer用)
                        → Upload file in dataset(Orders用)
     -「モデルの実行を行う」       → Run scenario
     -「結果をDashboardで閲覧できる」   → View dashboard
     -「アウトプットをダウンロードできる」→ Download datase


    それぞれ該当のアクションと対象となるデータセットなどの指定をしますと、準備完了です。

  3. Dataiku Applicationsの結果を確認。
    右上にある、SAVEボタンをクリックして一度保存します。その後、その隣りにあるTESTボタンをクリックすると、以下のような画面が表示されるかと思います。

    この画面のタイトルと説明はApplication Designerから自由に変更することが可能です。この画面では、先程指定した、ファイルのアップロード、シナリオの実行、Dashboardの閲覧、最終アウトプットデータのダウンロードが設置されています。

    実際にユーザーへの配布については、ログインした後のトップページにApplicationsという項目ができておりますので、こちらからアクセスしてもらってください。

今回は、Dataiku Applicationsで実際のデータを利用するユーザーに向けてのシンプルなアプリケーションを作成する方法を紹介してみました。

実際の現場では、ユーザー側から様々な要望(データを新しくしたいので、もう一度モデルを回してみてほしい、どのようにProjectを使えばよいかわからないから教えてほしい、結果のDashboardがみたい等々…)などの問い合わせをこちらのアプリケーションを上手に設定することで、一度に解決ができるようになるかと思います。ぜひ使ってみてください。

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションはずっと使えて、機能的にも十分に利用することが可能です!

[フリーエディション]

2020年8月17日月曜日

Dataiku DSS Ver8.0 新機能:Model Document Generation

 

Dataiku DSS Ver8.0 がリリースされました。

今年の3月中旬にリリースされたDataiku DSS Ver7.0から、更に機能が追加された
Dataiku DSS Ver8.0が7月中旬にリリースされました。
ちょっと調べたのですが、おそらく世界でも早い方の機能レビューではないでしょうか。

詳細については、以下のリンクを参考にしていただくとして、数回に分けてVer8.0の機能をいくつかレビューをしていきます。

DSS Ver8.0 New Features

Model Document Generation

前回はFlow Zonesを紹介しました。今回は、 モデルの結果をMS Wordドキュメントにエクスポートできる、Model Document Generationを紹介します。

データサイエンスではモデル結果を関係者にわかりやすく示す必要があります。Dataiku DSSでもモデル結果を理解しやすいように表示してくれていますが、この結果を他の人(DSSユーザー以外)にも説明をしたい場面もあるはずです。
そのときに利用できるのが、この ”Model Document Generation” です。

実際にダウンロードできるのは、Visual Analysisで結果をダウンロードしたいモデルを選択します。

モデルを選択し、画面右上の「ACTION」をクリックすると、「Export Model Documentation」が表示され、該当のモデル結果がMS Word形式でダウンロードできます。
ダウンロードした結果は以下のようなMS Word形式で表示されます。今回は、Density Chartについて比較をしてみました。

Webの結果では、こんな感じで表示されます。左ペイン中のメニューがMS Word形式にエクスポートしてくれるイメージです。

右にWeb画面のDensity Chartが見られるかと思います。左側はROCカーブでこちらもWeb版に結果が存在しています。

これら以外でも多くのモデル結果をMS Word形式でエクスポートしてくれます。

惜しむらくは、PDF、RMarkdownなど他の形式でのエクスポート機能が充実してくれると嬉しいかと思います。今後のEnhancementを待ちましょう。

ちなみに、こちらはMS Wordのテンプレートを作成してUploadしておくと、それに合わせた結果をエクスポートしてくれる便利機能もあるようです。

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションはずっと使えて、機能的にも十分に利用することが可能です!

[フリーエディション]




2020年8月15日土曜日

Dataiku DSS Ver8.0 新機能:Flow Zones

 

Dataiku DSS Ver8.0がリリースされました

今年の3月中旬にリリースされたDataiku DSS Ver7.0から、更に機能が追加された
Dataiku DSS Ver8.0が7月中旬にリリースされました。
ちょっと調べたのですが、おそらく世界でも早い方の機能レビューではないでしょうか。

詳細については、以下のリンクを参考にしていただくとして、数回に分けてVer8.0の機能をいくつかレビューをしていきます。

DSS Ver8.0 New Features

Flow Zones

まずひとつ目に紹介するのは、「Flow Zones」です。
これは、Flowに並べられた各オブジェクトが複雑化したり、長くなったりしたときに、グループ化してFlowの中で各処理がどのような意味があるのかをグループ化できる機能になります。

例えば、以下のようなFlowがあった場合、データをインポート、データ整形、機械学習(学習、スコアリング)がわかりにくい場合があります。このようなステップをFlow中に追加できる機能になります。(すでに作成されているFlowに対しても追加ができます)

実際にやってみよう

Dataiku DSSでこのようなFlowを作成してみました。このFlowは、顧客マスタと注文履歴と判定したい顧客リストを使って、キャンペーンに反応する顧客かどうかを判定するためのFlowになります。
ただ、このFlowだけだと一見してどの部分がどのような役割を果たしているのかが、少しわかりにくいのではないでしょうか。特にDSSに慣れていない方は理解するのに少し時間がかかるかと思われます。

そこで、実際にこのFlowを新機能のFlow Zonesを使って分けてみましょう。

[既存のFlow]

Flow Zones を作る際には、Flow内右上の「+ZONE」をクリックすると、以下のような画面が出てきます。ここでは、Flow Zoneの名前を決めます。この画面では、データインポートの部分のグループを作成したいので、「Data_Import」という名前をつけます。
同じように、データハンドリングのFlow Zoneの「Data_wrangling」、機械学習部分の「Machine Learning」というFlow Zoneを作成してます。

それぞれFlow Zoneを作成した後は、それぞれのオブジェクトをそれぞれのFlow Zoneに所属させます。オブジェクトを選択すると、右ペイン内に以下のようなパートが表示されます。
オブジェクトを選択した後、「Move」を選択すると、指定したFlow Zoneにオブジェクトが移動します。

この作業を今回作成した「Data_Import」、「Data_wrangling」、「Machine Learning」のそれぞれ実行します。

そうすると、これまでFlowとして一つにまとまっていたオブジェクトが、それぞれのFlow Zonesに別れたことがわかるかと思います。
これで、初めてこのProjectに触る人や、あとで修正したい人にとってもFlowがわかりやすくなったかと思います。

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションはずっと使えて、機能的にも十分に利用することが可能です!

[フリーエディション]




2020年5月13日水曜日

Dataiku で台風進路を30分で可視化


台風進路を可視化したい

季節の移り変わりは早いもので、春も過ぎ、もうすぐ初夏を迎えようとしています。そう、夏といえば、台風が今年もやってくる(はず)です。
少し前にこんなツイートを見かけてせっかくなので、Dataikuで可視化ができないかをやってみました。

Dataikuで台風進路を可視化する

では、さっそくDataikuを使って台風進路をさっくりと可視化してみましょう。

上記Tweetのリンク先ページから台風進路のCSVデータを取得してきます。ヘッダー近くの「台風位置表(CSV形式)」からCSVをダウンロードしておきます。
次に、適当な場所に保存をしておきます。私の場合は、AWS S3のバケットに配置してみました。


データインポート・データハンドリング

次にデータインポートです。新しいDataikuプロジェクトを作成して、Dataiku内で事前に設定しておいたAWS S3の接続からデータを取得します。設定したS3バケット名とファイル名を指定して、インポートします。
合わせて、カラム名も日本語から英語に変更してみます。

データが問題なくDataikuにロードできたら、次はVisual RecipeのPrepare レシピを使って加工していきます。

今回のポイントとしては、緯度・経度を使ってDataiku内で位置情報を取り扱う「Geopoint」形式に緯度・経度情報を変換して利用します。とは言っても難しいことはなく、Prepareレシピ中にある関数を適応することで変換は簡単にできます。
画面中左下の「Add A New Step」をクリックすると以下の画面が出てきます。サーチボックスに「Geopoint」と入力すると、いくつかの候補が出てきますので、「Create Geopoints from lat / lon」を選択します。


そうすると、左ペイン中に関数が出てくるので、インポートしたデータのLatituteとLongtitudeを入力します。
結果がすぐに右側の列に表示されます。設定が終わったら、左下の「Run」をクリックして実行をします。
ここまでくれば後は可視化のみです。


Chartで可視化

Flowに戻るとこんな結果が表示されているはずです。この右側の四角のアイコンをクリックしてください。(*)
クリックした後はデータが見えてくるかとおもいます。
このツールバー内の「Chart」をクリックして台風進路のチャートを作成していきます。

Chartsを開き、チャート選択のアイコンで「Map」を選択して、今回はScatterを選択します。

選択したら軸をドラッグアンドドロップできる画面が表示されますので、必要な軸に必要な項目を入れてみてください。
そうすると、以下のような台風進路のチャートが作成できます。

一番上のShow Geo と書いてあるところに作成したGeopointの項目をおくと台風移動経路が見えます。
ちなみに、全部見せると非常に見にくいので、月・台風名称・上陸したかどうかを選択項目にして、台風の大きさのクラスを色に、中心気圧をバブルの大きさにしてみました。
これを見て、台風がどのぐらいの大きさで、どの月に、どのように推移しているかがわかるかが可視化できます。

ここまでおおよそ30分未満でできます!

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションはずっと使えて、機能的にも十分に利用することが可能です!

[フリーエディション]

2020年4月18日土曜日

Dataiku Version7 新機能 : Individual explanations / 解釈可能な機械学習

3月中旬にリリースされた、Dataiku Version7でリリースされた機能紹介の3つ目です。
今回は、「Interpretable Machine Learning = 解釈可能な機械学習」についてです。

機械学習の結果解釈

少し前までは、「機械学習はブラックボックスだ。(でも精度は良い)」という話が多く聞かれました。全体的なモデルの精度と予測はできるが、個別の結果(例えばユーザーごと)でどの変数が効いているのかを説明するのは難しい状態でした。

ただ、一昨年、昨年あたりから潮目が変わってきており、こちらのドキュメントが公開されてから機械学習の結果解釈について議論が進められているようです。
Interpretable Machine Learning
https://christophm.github.io/interpretable-ml-book/
日本語では、Interpretable Machine Learning についてはわかりやすいかと思います。

機械学習と解釈可能性
https://speakerdeck.com/line_developers/machine-learning-and-interpretability

Dataikuでの機械学習結果の解釈

Dataikuでの機械学習結果の解釈については、個別の対象(例:ユーザーIDや端末番号)など予測をしたい対象に対して、どのような変数が影響があったのか?というアプローチでUIを構成されています。では、実際の画面を見ていきましょう。

どこから確認するか

機械学習のモデルを作成したVisual Recipeから確認ができます。

Visual Recipeをクリックして、左上のView Original Recipeをクリックします。Original Recipeを表示すると、作成したモデル一覧が表示されています。

今回は一番上のRandom Forestで確認をしてみましょう。
Random Forestをクリックすると次のページに移動をしてみましょう。

左ペインのメニューの中に、「Individual Explanation」のメニューをクリックすると、上記のような画面が表示されます。初期表示だと、下の個別結果は表示されていませんが。右上にある「COMPUTE」をクリックすることで結果が表示されます。

ここでの大きな特徴は、上のグラフの両側をスライダーのように動かせ、予測確率が高いグループと少ないグループから個別の対象を抜き出すことが可能な点です。
スライダーで選択したい部分を選び、右上のCOMPUTEをクリックすると、下の画面に個別の結果が表示されます。

右側が予測確率が高い個別の対象で。左側が確率が低い対象になります。
(今回利用しているデータは、Eコマースの購買データを使って予測をするモデルになります。この数字は個別の顧客IDです)
以下の画面にもありますように、個別対象についてそれぞれ重要な変数を表示してくれます。
また、この対象は自由に選択することが可能です。

どのようなときに使えるか?

多くの機械学習プロジェクトでは、モデル精度を求められると思いますが、実際に現場や経営陣に説明をする際に、特定の対象(例えば特定の顧客)でどのような変数が重要だったのかを聞かれる場合もあるかと思います。
その際にこの機能を使って説明ができるかと思います。

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションでも十分に利用することが可能かと思います。

[フリーエディション]

2020年4月6日月曜日

Dataiku Version7 新機能 : Github(Git)との連携

Dataikuが3月の中旬に新しいバージョンアップされました。前回は、Interactive Statistics を紹介して、DataikuのEDA(Exploratory Data Analysis)の機能が大幅に拡充されたのを紹介しました。

今回はGithubとの連携について紹介をします。
※ Github、Gitの使い方についてこちらでは紹介いたしません。こちらをご参考ください。

GithubへのSSHキーの設定

まずはGithubのアカウントの取得とSSHキーの設定をしてください。
GithubのSSHキーの設定の仕方はこちらになります。

サーバーの設定をしてからDataikuを起動

私はハマってしまったのですが、Dataikuが動いているサーバーのSSHキー設定が完了してから、Dataikuを起動してください。私の場合はそこがわからなかったため、Dataikuを先に起動し、後からSSHキーを設定したために、後述のRepositoryを設定する際にエラーが発生してハマってしまいました。

GithubへPush・Pull

では、実際にDataikuとGithubを連携してみましょう。
Githubの貢献したいRepositoryに移動し、以下のSSHのCloneアドレスを取得しましょう。
次に、Dataikuに移動し、連携させたいProjectを選択します。ツールバー>︙>Version Control を選択するとGithubと連携ができる画面に遷移します。
Add Remoteを選択すると、先程取得したアドレスを入力する画面が表示されます。
この入力画面で何もエラーがでなければ、無事にGithubの該当Reposirotyと接続ができています。ちなみに私はここでエラーに遭遇しまして、Permission Denied が表示されました。
無事にGithubに接続できたら、以下のような有効化された画面が表示され、設定したRepositoryにPush、Pullができるようになります。
また、新しいbranchを作成したい場合は、master▼をクリックすると、branchを作成できるメニューが表示されます。Create new branch をクリックします。
ここで表示されている、Duplicate project ~ を選択すると、次の画面に遷移します。この選択は、branch用に新しいProjectを作成するという意味になります。
また、Use current project ~ を選択すると、いま表示しているProjectで新しいbranchを作成することになります。

新しいbranchが作成されると、Project名の隣にbranch名が表示されます。



では、新しいbranchを作ってみたところで、実際にGithubの該当RepositoryにPushをしてみましょう。以下の画面まで行き、Pushをクリックしてください。
そうすると、メッセージが表示され、問題なくPushができたことがわかります。
Github側の画面に行くと、以下のように表示され、無事にPushができました。

Pullについても同様で、メニューリストからPullを選択すると、変更された内容が現在表示しているProjectに反映されます。

想定される使い方

Dataikuのコンセプトは、複数人(データエンジニア・マーケティング・データサイエンティスト等)が同時に扱えるというコラボレーションを重視した製品です。
反面、少し試したいこと(新しいデータセットを追加したり、モデルを変更したり等)については、現在の環境を直接変更することで行うしかありませんでした。こういった変更が後工程の人に影響を及ぼすことも容易に想像できます。

そういった事故を防ぐ、少し試してみたいという際にこのGithubの連携機能を使ってみることができそうです。

例えば、データセット・モデルのチューニングをする新しいbranchを作成して、試してみて問題なければMasterにMerge、MasterをDataikuのProjectにPullして使うという使い道がありそうです。

聞くよりも実際に触ってみたほうが実感が湧くかと思いますので、ぜひ触ってみてください。フリーエディションでも十分に利用することが可能かと思います。

[フリーエディション]


2020年3月29日日曜日

Dataiku Version7 新機能 : Interactive Statistics

Dataikuの最新バージョンがリリース

2020年3月16日週にDataikuの最新バージョンがリリースされました。
大きな目玉は、
  • Interactive Statistics
    • データセットの統計値(代表値)の算出・検定・分布・主成分分析・相関行列をワンクリックで表示
  • Enhanced Git Integration for Projects
    • Git(Github)との連携強化
  • Individual Prediction Explanations
    • 予測した各個別のデータがどのような変数から影響を受けたかを示す。
      (Interpretable Machine Learning:説明できる機械学習)
などです。

これまでは、Data Wringling(データ加工)やAutoML(自動的に適切なモデルを選択してくれる)などの特徴的だったのですが、今回のリリースではここ数ヶ月でトレンドとなっている「説明できる機械学習」や「Git(Github)との連携」などが組み込まれており、現場で機械学習を使う人、結果を解釈して判断をするマネージャー以上の人達にとっては嬉しい機能が盛り込まれています。

これから一つずつどのような機能がリリースされたのかを紹介していきます。

Interactive Statistics

これまでのDataikuでは、既存のデータセットの分析(代表値・分布など)を取得しようとすると、カラムレベルでAnalyzeをしたり、Chart タブを使いグラフを作成して、使おうとしているデータの特徴を掴む必要がありました。これらの機能は嬉しい反面、一つずつ選択する必要があり、面倒な部分もありました。

今回のバージョンアップで、そういった面倒な作業を行わなくても統計値を集計できるようになりました。また合わせて検定も行えるように実装がされています。

Statisticsの種類

これからは、みなさん大好きな iris(アヤメのがくの長さ、花びらの長さのデータ)を使って紹介します。ちなみにこのデータセットはRStudio から AWS S3に保存して、Dataikuで読み出しています。RStudioからAWS S3へのエクスポートの仕方はこちらの記事を参考にしてください。

データセットをインポートした後、インポートしたデータセット開くと、画面上のメニューに「Statistics」が追加されています。ここからInteractive Statisticsを実行ができます。


このStatisticsをクリックすると、どの分析をするかを聞かれます。
水色背景で記載をどのような分析ができるかを追記しています。


Univariate Analysis

まずは、Univeriate Analysis(一変量統計)を選択してみましょう。
Univariate Analysisを選択すると、以下のように変数を選択することができます。
この場合はすべての変数を選択しています。(左側の1 available variables から右側のVariables to describeに各変数をドラッグアンドドロップできます)
また、Optionsでは作成するチャートを選択できます。

選択後、右下の「CREATE CARD」をクリックすると実行され、以下のようなチャートが自動的に生成されます。数値項目については箱ひげ図や四分位点、Percentileが表示され、テキスト項目(グルーピングに使う項目)は棒グラフとFrequecyが表示されます。

また、あるグループごとで集計した結果を見たい場合もあるかと思います。
その際は、Splitを使います。
Splitを使ってみると、グループごとで集計して統計値を返してくれます。
今回はirisのデータの中のSpeciesを使ってグループごとに集計をしています。
同じチャートがこの後設定した数値変数ごとで続きます。


RやPythonを使うと一つ一つの集計やチャート作成にコードを作成する必要がありますが、このStatisticsを使うとコードを書かずともこのような数字・チャートを作成することが可能です。

Statistical Test

次はStatistical Test、日本語だと「検定」になります。今回のバージョンアップで利用できるようになった検定方法は以下となります。


今回は比較的よく使うであろう、t検定(Two-sample test > Student t-test)を行ってみます。二つのグループの平均値に違いがあるかどうかを検定します。

Two-sample test から Student t-test を選択すると、以下のような画面が表示され、それぞれ変数を選択し、比較したいグループを入力します。
今回は、分析対象として、Sepal.Length を選択し、比較カテゴリはSpecies内のsetosa と versicolor を選択しています。この2つのグループのSepal.Lengthの平均値が異なっているかどうかを検定します。
右下のCREATE CARDをクリックすると、以下のような結果が表示されます。
一番下に結果が表示され、この2つのグループの平均値は異なるということがわかりました。

Correlation Matrix

相関行列です。統計を始めたばかりの人にはあまり馴染みが無いかもしれませんが、相関係数を行列形式で表示し、どれとどれの変数の相関が強いのかをひと目で分かるものです。
Correlation Matrixを選択すると、以下のような画面からスタートします。
相関行列を作成したい変数をVariablesに移したら、右下のCREATE CARDをクリックします。そうすると、以下のような相関行列が表示されます。

こちらもUnivariate Analysisと同様にSplitをすることができます。
以下は上で作成した相関行列をSpeciesで分割した結果となります。種類によって相関行列の値が異なることがひと目で分かるかと思います。

Principal Components(主成分分析)

最後は、主成分分析です。変数をまとめて(縮約)して解釈をしやすい形にしてくれる分析手法になります。
Principal Components を選択し、どの変数を対象にするかを選びます。今回は数値項目すべてを選択しました。

必要な変数を選択したら、いつものように右下のCREATE CARDををクリックすると、以下のようなチャートが作成されます。
PCAを行ったことがある方はご存知かもしれませんが、左側のチャートが第一主成分 〜第四主成分までを表し、線グラフが累計割合を示しています。
下のグラフは各変数ごとに第一主成分〜第四主成分がどのような構成になっているかを示しています。

これまで紹介した一部の内容が一つのWorkSheet 単位にまとめられます。このWorkSheetは新規に追加したり、複製させることができます。


また他の人とデータセットの分析結果を共有したいと場合は、「︙」 をクリックし、Publishが出てくるので選択します。そうすると、どのDashboardに掲載するかの画面が表示されます。選択し終わると、今回作成した分析結果をDashboardに取り込むことができ、共有することが可能です。


 今回作成した結果(PCA・t検定・一変量統計の結果)を一枚のDashboardに取り込むことができました。これを他のユーザーと共有することで、どのようなデータセットなのかが他のユーザーもひと目で分かります。

まとめ

今回のバージョンアップの目玉の一つである、Interactive Statistics はこれまでRやPythonで一つずつコーディングが必要だった作業を、変数選択するだけで集計・チャートを作成してくれるだけでなく、検定や主成分分析もサポートしています。

データサイエンスで大事な作業として、分析対象のデータがどのような分布をしているかを理解するのが大事で、この機能を使うことで探索の時間が短縮されるのではないかと感じました。

次回以降は残り2つの紹介をしていきます。