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

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年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月19日日曜日

Dataikuを使ってみよう #6 DataikuでRを使う


これまでの内容はDataikuが標準で準備されている機能を使ってきました。
ただ、どうしても足りない機能やアルゴリズムを利用したいケースが出てきます。その場合、R(Python)を使って機能を追加させることができます。
Rのコードを実行できるだけでなく、RMarkdownやShiny、NoteBookなど近年利用が増えている機能も対応ができます。

今回はDataikuでのR言語の機能がどのように使えるのかをご紹介します。

R環境のセットアップ

RをDataikuでも利用できることはできますが、Dataikuの追加機能が多く、依存関係があるので、最初から利用できるわけではありません。環境を追加する必要があります。
R integration
https://doc.dataiku.com/dss/latest/installation/r.html
こちらを見ていただき、必要に応じてAdminユーザー(管理者)に環境を準備してもらってください。R環境を作る際にAdminユーザーのコマンド(再起動とか)が必要になるためです。

Code RecipeでRを書いてみる

では、実際にRコードを書いて見ましょう。

処理をかけたいデータセットを選択して、右ペイン中(Code Recipe)の「R」を選択してください。
その後、これまでと同様にデータセットを指定する画面が出てきます。
これまで通り、Outputのデータセット名を指定します。指定したら右下のCREATE RECIPEをクリックします。

そうすると、以下の様なコーディング画面が出てきます。
この処理は最初の10行を選択するコードを書いています。 合わせて集計パッケージのdplyrを使ってデータを処理しています。
このコードを画面下にある「RUN」をクリックして実行をすると、10行のデータが作成されます。
このように、Rコードを組み込むこともできます。ただし、Code RecipeでRコードを記載する際には、Dataiku独自のフォーマットに最初インポートする必要があります。また、Dataiku上で後続の処理にわたす際には最終的にData.Frameの形にすることが必要です

その例として、「Rで線形回帰した結果をDataikuで再利用できるようにする」というシナリオでコードを実行してみます。

まずは以下のように線形回帰を行う関数を自実行します(lm関数)。加えて、Broomパッケージ内のTidy関数を利用して係数やp値をData.Frameに変更を行い、Dataikuで扱えるデータの形に変更をしています。

これを実行することで、Dataiku上で後続処理にこの結果データを渡すことができます。

また、サンプルコードも用意されていて、分からなくなった場合はこちらを見ながら書いてみましょう。(コードエディタの右上にあります)

内容的には、Rのdplyrを利用されたことがある方であれば、なじみ深い関数がみられるのではないかと思います。Rを使われたことがない方でもサンプルコードを見てやりたいことが記述できるはずです。

NotebookでRを書いてみる

ここまでは、Code Recipeを使ってR言語をDataikuの中に組み込んでみました。Code Recipeはあくまでも処理フローの中で利用されるため、「データ探索的」な使い方に向いていません。
そこで、DataikuではR言語が利用できるNotebookを用意しています。

分析したい対象のデータセットを選択し、右ペイン中の「LAB」をクリックします。
そうすると、以下の画面が表示されます。今回はRのNotebookを使いたいので、右ペイン中の「Code Notebooks」の中の「New」を選択してください。
そうすると、Pythonはじめとして、Dataikuで利用できる他の言語が選択できますので、今回はRを選んでください。その下にどのデータセットを利用するかが聞かれます。一番上を選択してください。(フリーエディションでは、sparklyr や、SparkR は残念ながら利用できません)
右下の「CREATE」ボタンをクリックすると、以下のような画面が出てきます。
そう、これは実はJupyter Notebookです。 カーネルがRとなっていまして、R言語も利用が可能です。
RStudioと同様にパッケージをインストール、利用もできます。
今回は、dplyrを使い集計を行い、ggplot2を使った可視化を行ってみました。


これらの結果は、Flowには表示されることはなく、ツールバー内のNotebooksの中に入るので、注意してください。



また、書かれたコードは共有が可能なので、右上のPublishボタンからDashboard等へ表示させてもよいでしょう。



RMarkdownを書いてみる

続いて、DataikuではRMarkdowもサポートをしています。 PackageはRMarkdownを利用しますが、Linuxの場合はPandocが入っていないケースもあるため、その場合はサーバー管理者に伝えてPandocをインストールしてもらいましょう。
私の利用環境は AWS EC2のLinuxにインストールをしたため、Pandocが入っておらず、RMarkdownが利用できるようになるまで、セットアップに時間がかかりました。
RMarkdown Reports
https://doc.dataiku.com/dss/6.0/code-reports/rmarkdown.html
インストールが完了したら、実際にやってみましょう。

ツールバーより、RMarkdownを選択してみると、以下のような画面が表示されます。今回はこのProjectので初めてのRMarkdownになるため、「CREATE YOUR FIRST REPORT」をクリックしましょう。
次の画面では、RMarkdownのレポート名を付けます。上の選択肢は、一番上のサンプルコードを入力した状態で表示させます。終わったら、右下の「CRATE」ボタンをクリックして実行します。
次の画面では、RMarkdownのサンプルコードと共に画面が表示されます。
左ペインがRMarkdownのコード、右ペインが結果になります。

左上の「FORCE BUILD]をクリックしたら、右ペインに結果が表示されます。(下のスクリーンショットは実行した後になります)


Shinyも利用できる

Rコードの実行、Jupyter Notebookでの実行、Rmarkdownときたら、今後はShinyでしょう。
Shinyとは??と思われている方はこちらを一読ください。

ゼロから作るShiny~001: Shinyってなんだ~
https://qiita.com/Anonymous1989/items/858db4ea2483d40d40ad
Shinyは簡単にいうとR言語で構築ができるWebAppで、Rの計算結果をシミュレーションできたり、地図を使ってマップ上にデータをプロットしたり等、いろいろなことが可能です。

では、DataikuではどのようにこのShinyを作れるか見ていきましょう。

まずは、ツールバー上に「WebApps」がありますので、こちらを開きましょう。
何も作成されていない場合は、以下のような画面が表示されます。「CREATE YOUR FIRST WEB APPS」をクリックしてみましょう。
次の画面では、Web Appの名前とサンプルコードを付与するかどうかを聞かれます。今回はサンプルコードを付けておきましょう。必要に応じてサンプルコードのあり・なしを決定してみてください。
そしてWebAppの名前を入力し、右下のCREATE をクリックします。

次の画面では、どの言語のWebAppを作るのかを聞かれます。HTML、JS、CSSで作る、Bokeh(Python)で作る、Shiny(R)で作るかを選択できます。
今回はShinyを選択します。
次に以下のような画面が表示されます。左ペインにはUIとServer、右ペインには結果が表示されます。

実際に動かす際は、右ペインの「Preview」画面の中に、「START BACK END」とあるかと思います。
これをクリックすると、Shinyを起動できます。

スライダーを左右に動かすことで、右側のチャートの分布が変わってきます。

DataikuにおけるR実行環境

DataikuでRを実行するにあたり、実行環境について注意しておく必要があります。
Dataikuでは、Python、Rともに複数の実行環境を作成することができます。
(下の画面はR‗env という環境をAdministrator > Code Env


そのため、RMarkdownやShinyなど、実行環境が異なるため「パッケージが無い」などのエラーが起こります。ですので、実際に作成したコードが動かない場合が出てきたら、Rの実行環境をチェックしてみてください。

  • Visual Recipeであれば Advancedタブの中にあります。

  • Notebook(Jupyter Notebook)であれば、以下の画面に記載してあります。

           
  • R Markdownであれば以下のSettings タブの画面。
  • Shinyであれば、以下のSettings タブの画面。



Rパッケージのインストール

Rの最大の特徴である様々な種類のパッケージのインストール、どのようにしたらよいでしょうか?
もちろん、Rのパッケージ追加は可能です。ただし、Administrationメニューの中にあるため、一般ユーザーのみなさんは利用できないかもしれませんが、その場合は管理者に聞いてみてください。

新しいパッケージをインストール環境をAdministrator > Code Envs から選択してください。


環境をクリックすると、次のような画面が出てきます。「Requested Packages(R)」という項目があるので、そこに必要なパッケージを入力して、右ペインのUpdateをクリックします。

その際、左ペイン中の「Update all Packages」のチェックボックスは外しておくことを推奨します。Updateを押してしまうと、ほかのPackageもUpdateがかかってしまうためです。


また、現在どのようなPackageがインストールされているかを確認するのは、左ペイン中の「Actually installed packages」 ページにて確認ができます。

まとめ

今回はDataikuで利用可能な、「R言語」を使った機能の説明を行いました。

デフォルト機能ではどうしてもできない部分(複雑なデータハンドリング、最新のアルゴリズム適応)を利用したい場合にRの機能を使うことで、効率的に分析ができそうです。また、RMarkdownやShinyなど、データ探索やレポーティングでもDataikuを通して、いつものR言語が利用できるのはメリットが大きいのではないかと思います。

Dataikuは無料でしかも継続的に使えるフリーエディションや、クラウド上で準備済みの環境もあり、かつチュートリアルも充実しているので、ぜひとも一度触ってみて、実感してみてください。



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として数種類結果が表示されています)