DXのためのデータ基盤 dataiku の特長
dataikuの特長
- データセット群とレシピ使って処理プロセスをフローとしてグラフィカルに表示
- 「レシピ」を使ってプログラムレスで処理を定義
- ほとんどのデータベースアクセスをサポート
- 強力な可視化機能
- データセット変更に対する半自動補正
- 機械学習機能と自動学習環境
- モデルの分析・評価フェーズから実際の運用へのスムーズな移行
- 実行時のデータ内容のチェックと外れ値検出時の対応の自動化
- 担当者、担当者グループに対するアクセス制限
- 担当者全員のメッセージ交換と作業状況・履歴の公開
- PythonやR などの言語でプログラミングをサポート高度なAI処理の組み込みが可能
データセット群とレシピ使って処理プロセスをフローとしてグラフィカルに表示
- 多くの場合、データを分析の対象として扱えるようにするためには、課題に適合するよう種々の前処理を施す必要があります。
- 欠損値の補間や欠損値を含むデータの削除
- 必要となる範囲に合わせたデータの切り出し
- カテゴリー値をキーにデータのグルーピングなど
- また、同じデータに対して複数のモデルを適用する場合もあり、各モデルに適用するようデータを処理する複数の系列が発生
その結果、フォルダ内に同種のデータファイルが多数発生し、個々のデータファイルの内容が分からなくなることがあります。
dataiku は、データファイルと「レシピ」と呼ばれる標準化された処理をフローとしてグラフィカルに表示できます。アイコンをクリックすることでデータファイルまたは処理内容を確認・変更が可能です。
「レシピ」を使ってプログラムレスで処理を定義
- レシピは、データの編集処理をタイプ別に分類した機能オブジェクトです。
- レシピは大きく Visual recipes(黄色)、Code recipes(オレンジ色)、Plugin recipes(えんじ色)、Other recipes に分類されています。
- Visual recipe はデータ編集内容について標準処理として機能化したオブジェクトです。
- Code recipe は、Visual recipe の標準処理で対応できない個別処理について、Python、 R、Java、SQL などのプログラム言語を使って処理内容を記述する枠組みです。
- Plugin recipe は、外部で作成されたレシピが公開されていますので、必要なレシピをインクルードすることでプロジェクト内で使用することができます 。
- 各レシピは、右図のようにアイコン化され、フロー図に表示されますので、データが概略どのように処理されているのか容易に把握可能です 。
- dataiku 内では、データと処理が完全に分離された形で処理プロセスを構成します。
主なVisual recipe
- Visual recipe は、データ編集の諸機能をその内容によって右図の 12個の標準機能としたレシピです。
- Visual recipe は、パラメータを設定することで処理を定義できますので、プログラムを組む必要はありません。
- データ編集処理は、レシピに標準として用意されている機能を使うため、処理が均質化されます。
- フロー図において、Visual recipe はアイコン化されているため、処理概要を容易に把握できます。
Prepare recipe
- カラムの編集、不要なカラムの削除、カラム間の演算等 1つのデータファイルを対象に編集処理をする機能をまとめたレシピです。
- 画面左側に処理ステップ欄が表示され、ステップの追加・設定を定義します。
- 91個の機能が用意されており、中でも Formula を使うことで if 文を含むような処理でも手早く定義できます。
Group recipe
- 同一データ値のデータを集めて、その最大値、最小値、平均値、合計値、データ個数などの集計を行い、サマリ情報を作成
- Pre-filter を使って、事前に必要な範囲のデータの抽出等が可能
- Post-filter で事後処理の定義が可能
Split recipe
- データファイルの分割します。逆に複数のデータファイルを統合する場合には、Join recipeを使います
ほとんどのデータベースアクセスをサポート
- dataiku は、下図の通り現在利用されているほとんどの DBMS をサポートしています。
- データベースとのコネクションを定義し、テーブルを指定するだけで read/write が可能です。
- データは、データベースのテーブルか CSV ファイルかを意識することなく同じ形式で Visual recipe で処理を定義することができます。データの所在元が変更された場合も、レシピそのものは一切変更する必要はありません。
- データのハンドリングを “in-database” と設定することにより、レシピの処理をデータベースンエンジンで実行することができ、高速処理が可能です。
- SQL Code recipe に SQL でプログラミングすることで、データベースのデータに対して、より高度な処理を実行することが可能です。
強力な可視化機能 Chart
データ内容を確認しながらデータ形式の変更や簡単な統計処理、グラフ表示が可能
強力なデータ探索機能 worksheet と card
- データを探索的に分析するための可視化機能
- データ探索の目的に沿った複数のグラフを Card という単位でまとめ、Card をまとめた Worksheet により、様々な分析を 1つの枠組みで行うことが可能
データセット変更に対する半自動補正
- 分析モデルの開発中や運用において、データセットのスキーマ頻繁に変更されますが、こういった変更はプロセスの下流の処理に影響を与え、エラーになります。
- dataiku の Consistency Checks と Schema Propagation は、こういったデータスキーマの変更を自動的に検出し、データが正常に下流プロセスに流れるように半自動補正を行います。
機械学習機能と自動学習環境
機械学習は、モデルを変更したり、モデルのハイパーパラメータを変更したり、データを変更するなど変更を繰り返しながら結果を評価する必要があります。
また、稼働後も運用と並行して新たに発生したデータも含めてモデルを評価し、稼働しているモデルを入替えることもあります。
こういった繰り返し作業を円滑に行うために、dataiku は次のような仕組みを用意しています。
- 対象となるデータセットを指定し、予測モデルか分類モデルかを指定するなど数回のクリック操作だけで、モデルの学習が可能
- デザイン画面でモデル実行環境の設定、変更を行いモデル評価が可能
- 稼働モデルの運用と並行しながら別のモデルの評価を行い、運用に影響を与えずに移行が可能
学習結果の詳細な分析
機械学習では、予測精度のみならず結果に対する説明性を求められるケースも多くあります。
- 銀行でのローン判定においては、「負荷」と判定された場合、顧客にどういった要因が強く影響したのかを説明して改善の提案する。
- 社内業務においては、どういった要因が生産性に大きく影響しているかを見つけ出し、適切な改善に取り組む。
モデルの分析・評価フェーズから実際の運用へのスムーズな移行
モデルを学習して結果を評価し、稼働させるモデルを決定したのち、このモデルを運用に組み込む必要があります。
dataiku では、モデル学習結果から稼働させるモデルを選択し、Deploy ボタンをクリックすることで、そのモデルが稼働状態になります。