ラベル AutoML の投稿を表示しています。 すべての投稿を表示
ラベル AutoML の投稿を表示しています。 すべての投稿を表示

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月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年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つの紹介をしていきます。

2020年2月21日金曜日

Gartner Magic Quadrant Data Science and Machine Learning PlatformでDataikuがLeaderに!

Gartner Magic Quadrant

毎年この季節になると、Gartnerという調査会社がITの各領域(データベースやビジネス・インテリジェンスツール等)のレポートを発行しています。そのレポートが Gartner Magic Quadrant です。

このレポートの Data Science and Machine Learning Platform という領域でDataiku がはじめてリーダーの位置になりました。


何がスゴイのか?

何がスゴイかというと、業界の中でも「ビジョンの完全性」、「実行能力」を兼ね備えているこの領域でもリーダーの会社です、ということがGartnerによって確認されたということです。

過去はどうだったのか?

2018年11月時点のレポートを見てみると、Dataikuはまだ「CHALLENGER」枠に入っていました。そこから2019年11月時点では「LEADER」の位置に来ています。
1年足らずでLEADERの評価を得られるようになってるようです。


2018年、2019年と比べてみると一目瞭然ですが、全体的に「ビジョンの完全性」の方向によってきていて、「実行能力」があるかないかで別れているようです。

この数年でData ScienceやML Opsなどで「何をしなければいけないかの課題」が明確化されつつあり、それに対して各社対応しているため、ビジョンの完全性に寄ってきているのではないかと推測します。




2020年1月3日金曜日

Dataikuを使ってみよう #5 DataikuのAutoML (クラスタリング)

前回まで

前回までは、データインポートデータハンドリングデータ分割機械学習の適応(複数のアルゴリズムを適応:Prediction(予測))について説明をしてきました。
今回は機械学習の適応の続き、クラスタリングについて説明をします。
(各クラスタリングのアルゴリズムの説明はここでは行いません。別の参考資料等にてご確認ください)

クラスタリングとは

クラスタリングとは、一般的には以下のような説明がされています。
クラスタリングではデータの集合を部分集合(クラスタ)に切り分けて、それぞれの部分集合に含まれるデータが(理想的には)ある共通の特徴を持つようにする。この特徴は多くの場合、類似性や、ある定められた距離尺度に基づく近さで示される。https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0
手元にある大量のデータが、グルーピングがされておらず、なんらかの知見を得たい場合、グループに分けることで知見が発見できる場合があります。そのような場合に、このクラスタリングは重要です。

Dataikuでのクラスタリング

では、Dataikuではどのようにクラスタリングを行うのでしょうか。
前回と同様に、以下のユースケースを用いてクラスタリングをしてみましょう。
Predictive Maintenancehttps://academy.dataiku.com/latest/usecases/L01C01/index.html
前回と同様に、
  1. クラスタリングをさせたいデータセットを選択
  2. 右ペイン中の「LAB」をクリック
  3. QUICK MODEL を選択 します。
そうすると、以下の画面(Choose your Task)が表示されるので「CLUSTERING」を選択します。
Clusteringを選択すると、以下の画面にうつります。ここでは、Quick Modelを選択しましょう。

次の画面では、どのようなクラスタリングを行いたいかを選択できます。ここでは、
  • K-Means(一般的なクラスタリング手法)
  • Interactive Clustering (一度モデルを作成した後、手動で調整ができる2段ステップ
  • Anomaly detection (異常値検知)の3種類から選ぶことができます。
今回は、K-meansを選択してみます。

次の画面では、クラスタリングの設定画面となります。前回紹介した設定画面と同様に、どの変数を加えるか、どのアルゴリズムを適応するかなどを設定することができます。
今回は主だった設定項目を紹介します。

General Settings では、学習データセットのデータをどのようにサンプリングするかを指定できます。サンプリング以外でもすべてのデータを使うことも選択できます。


Feature Handlingでは、クラスタリングの学習に必要な変数をON、OFFできます。
ここでも選択した変数の内容を右ペインで確認することができます。欠損地の扱いや、この項目に含まれる値がどのような分布になっているかを一目で確認をすることができます。

Algorithm の部分では、クラスタリングに関連するアルゴリズムを選択できます。前回のPredictionと同様に、適応させたいアルゴリズムをONにするだけで適応してくれます。また固有のパラメータも設定することが可能で、個々のアルゴリズムをカスタマイズして適応をさせられます。


続いては、Dimensionality reduction (次元削減)です。 ここでは、PCAを元にした次元削減を行うか、行わないか、両方とも試してみるか?の3択を選択することができます。

最後は、Outlier Detection (外れ値をどのように扱うか)を選択できる画面です。
Dataikuでは外れ値を検出できるのですが、それをどのように扱うか、データから落とすか、外れ値用のクラスタを作成するか、外れ値を検出しないかを選択することができます。必要に応じて設定してみてください。


では、実際に実行をしてみましょう。
実際に複数のアルゴリズムが実行がされている様子が確認できるように動画にしてみました。
以下の4点のアクションが含まれています。
  1. 複数のモデルを選択
  2. 右上のDeploy ボタンをクリック
  3. 後で区別ができるように名前を入力し、実行
  4. 各アルゴリズムが実行される


アルゴリズムの実行が終わると、Predictionと同様に結果を見ることができます。
今回は、K-means アルゴリズムの結果を見てみます。

Summaryでは、投入したデータがどのように分類してくれたのかを確認できます。ここではクラスタの名称やその説明を入力することができます。右上にChartsがあり、この結果を使ってグラフを作成することができるので、分類された内容を様々な角度から見ながら名称を決定していけばよいかと思います。

次にValuable Importance です。 どの変数がクラスタを決定づけるのに重要だったのかを知ることができます。

Heatmapでは、各変数がどのクラスタにどのぐらい影響を与えているかがヒートマップの形で表現されています。

Cluster Profileでは、各クラスタの変数の分布が表示されます。

Scatter Plotでは、縦軸・横軸を分析した変数を指定することができ、Clusterがどのように分布しているのかが分かります。以下のチャートでは、count変数が一番聞いていることがImportanceから分かっており、それをX軸、Y軸にDistanceを置いて散布図を作成しています。散布図の点にClusterの色を配置しているため、どのようにClusterが分布しているのかが一目でわかります。


Detailed Metricsは、今回用いた評価用のスコアを表示します。(今回はSilhouetteを使いました)


このように、K-meansだけでも多くのアウトプットを表示しており、アルゴリズムの実行結果の解釈に大いに役に立つのではないかと考えられます。K-means以外のアルゴリズムも同様な結果を表示しています。(これ以外でもModel Informationとして数種類結果が表示されています)