私は受託で顧客企業のデータ分析をしています。
先日、顧客からPaxataの導入検討のため、製品の評価をしてほしいという依頼を受け、Paxataを試験的に触る機会をいただきました。
Paxataは2019年にDataRobotが買収1したデータプリパレーションツールです。
利用するにはサブスクか、Azure/AWSのVMに入れてもらかの2パターンがあり、今回は後者でした。
感想
あくまで感想です。それぞれがメリットになるかデメリットになるかは、時と場合によると思います。
- ノンコーディングといえど、ある程度のプログラミング的思考力は必要
- ノンコーディングツールは魔法じゃない
- 開発者自身がパーツの組み合わせを設計してデータ加工する必要があるので、全くプログラミングできない人が使うにはハードルが高い
- 視認性が高く、どんな処理をやってるか把握しやすい
- 詳細設計書とか書いてる場合は不要になりそう
- 処理結果のプレビュー機能や文字列の自動名寄せ機能がある
- 置換処理とかで置換前と置換後をプレビューで比較できる
- 文字列の
株式会社
と(株)
くらいの違いなら自動で名寄せしてくれる
- あまり複雑な処理はできない
- 処理は直列でネストも分岐も繰り返しもできない
- 誰が作っても同じような水準の仕上がりになる(
SIerが好きそう)
- 作った処理をPythonにエクスポートするとかできない
- ベンダーロックインされる
- 現状、機械学習との連携はDataRobotのみサポート
- 加工したデータをscikit-learnとかで使うには、一旦DBやファイルにエクスポートする必要がある
- レビューやデプロイのプロセスを組み込みにくい
- 開発/本番環境といったデプロイの概念がないので、メンテナンス時には運用中のプロダクトを直接触ることになる
- gitのようにプルリクを出すことも差分を見ることもできないので、レビューしにくい
- pytestやJUnitのようなテスト機能はない
- バージョン管理機能があるので、前のバージョンに戻すとかはできる
実際の操作
Paxataは次の3つのコンポーネントで構成されています。
# | コンポーネント | 説明 |
---|---|---|
1 | ライブラリ | データセットを管理(プロジェクトの出力もここで管理) |
2 | プロジェクト | データ加工処理の定義 |
3 | プロジェクトフロー | プロジェクトの処理フローと実行スケジュールの定義 |
開発するときは、
- ライブラリにデータセットをインポート
- プロジェクトで処理を定義
- プロジェクトフローで処理をスケジューリング
- 処理結果をライブラリで確認
というのが大まかな流れになります。
ライブラリにデータセットをインポート
試しにCSVファイルをインポートすると、こんな感じになります。データはこちらからお借りしました。
「プロファイル」という機能を使うと、カラムごとの基本統計量やカテゴリに関する情報を出してくれます。
プロジェクトで処理を定義
カラムのデータ型を変えたり置換したりしようとすると、こんな感じで処理結果のプレビューが出ます。
「計算」というツールで、Excelみたいな関数を使って新しいカラムを作ることもできます。
「集計」というツールで、集計もできます。ただし、これは新しいカラムとして追加するタイプの集計で、例えばCount Encodingするときに使うようなものです。
普通の(?)集計をする場合は「シェイプ」というツールを使います。
プロジェクトフローで処理をスケジューリング
作ったプロジェクトをスケジューリングしてみます。時間間隔以外にcrontabフォーマットの指定もできます。
グラフ表示するとこんな感じです。プロジェクトが1つしかないとしょぼいですが…。
終わり
この記事は顧客企業およびPaxataの販売代理店に許諾を得て執筆しています。
-
https://www.datarobot.com/jp/news/datarobot-acquires-paxata-to-bolster-its-end-to-end-ai-capabilities/
調べても日本語の情報があまり出てこないので、自分で触ってみた感想を投稿することにしました。どなたかの参考になれば幸いです。 ↩