見出し画像

Claude Sonnetを使ってTableauのMulti-fact Relationships用のダミーデータを生成してみた

こんにちは!前回、前々回の続きです。良ければこちらも併せてご一読ください。

ざっと今回の記事の経緯をご説明すると、

  • Tableau Desktop 2024.2でMulti-fact Relationships機能が紹介された

  • 実際に使ってみたい

  • ただ、意外と複数テーブルで構成されたサンプルデータがない(基本的に大福帳、、)

  • ないなら、自分で作ってみる!

  • 最新のClaude Sonnetに課金してやってみたので、その過程をご紹介←今回ここ!!

Claude Sonnet3.5を使った理由ですが、大きく3つあります。
①現時点で最も性能が良い(と言われている)から
②他の生成AIにはないArtifacts機能があるから(チャットしながら制作物をその場で確認できる)
③単純に使ってみたかったから(ChatGPTは使ったことがあるので)

Claude Sonnetで試行錯誤、、(アプローチ①既存情報から追加生成)

今回は「サンプルスーパーストア」のデータセットをもとに作成を試みました。
私は安直にcsvをそのまま読み込ませて、それをもとに微修正すれば楽では?と思いましたが、そこまで甘くはありませんでした。(私のプロンプトエンジニアリング力の問題も多分にあると思います)
まず直面した問題は、Claude Sonnetは複数シートに分かれているファイルは読み込めませんでした。サンプルスーパーストアは「注文」、「返品」、「関係者」の3つで構成されているため、そのままアップロードするとエラーが返ってきました、、

そして、一度に処理できるファイル容量に限りがあるため、ランダムサンプリングして圧縮が必要でした。加えて今回は複数のファクトテーブル分析をしたいため、予算テーブルを追加で生成するなどの準備が必要になります。途中までこの方法で試しましたが、いまいち思ったような結果が得られなかったので、必要なものだけを一から指示して作った方が早いし、分かりやすいのではと思い、アプローチを切り替えました。

Claude Sonnetで試行錯誤、、(アプローチ②一から作成)

  • データモデリング、データ概要理解

一から作成と書きましたが、何もない状態から生成AIにサンプル作成を指示するのはあまり効率的ではないので、サンプルスーパーストアから5行ほどランダムに抽出して使います。まずデータモデリングの概要を整理すべく、ファクトとディメンションテーブルに分けてER図を生成してもらうよう指示しました。

Claude Sonnet3.5のトークン数は分かっていませんが、一応プロンプトは可能な限りトークン数が少ない英語にしました。

すると、こんな感じでAIから回答がありました。

左側にテキストの回答、右側にER図と横並びでそれぞれ確認ができるので、やはりArtifactsは便利ですね。

さて、もともとプロンプトに入力したサンプルデータに基づいたモデリング結果を確認すると、以下のように整理されていました。

①注文(ファクトテーブル)
構成カラム:オーダーID、オーダー日、出荷日、顧客ID、製品ID、出荷モードID、売上、数量、割引率、利益
②顧客(ディメンション)
構成カラム:顧客ID、顧客名、顧客区分
③商品(ディメンション)
構成カラム:製品ID、製品名、カテゴリ、サブカテゴリ
④日付(ディメンション)
構成カラム:日付、年、月、日
⑤出荷モード(ディメンション)
構成カラム:出荷モードD、出荷モード

本来であれば修正すべき点は色々ありますが、今回の用途では十分なため、このまま進めます。ただ、Multi-fact Relationshipsの検証を行いたいため、予算のファクトテーブルだけ追加して、ER図を更新します。

⑥予算(ファクトテーブル)
構成カラム:予算ID、日付、製品ID、売上予算
※初回生成時は複数予算カテゴリを提示されましたが、そのあとのダミーデータ生成が上手くいかなかったため、今回は予算を一種類だけにしました。

  • ダミーデータの生成

データ設計が完了しましたので、分析用のサンプルデータを生成を指示します(今回は1万件)。また、サンプルデータの値が互いに関連することも指示に加えました。

結果は上記の通りで、Pythonのスクリプトが提示されました。数十件程度であれば、頑張ってClaude内で生成してくれると思いますが、現状はPythonなどのコードでの生成になります。(そう遠くない未来に生成AI内で完結すると思いますが)

Pythonのコードをどう実行すれば良いか分からない方もいらっしゃると思いますが、非常に簡単です。Google Colaboratoryに上記を貼り付けて実行すればあっという間に生成されます。

もしエラーが発生しても、その画像を貼り付けてAIに修正するよう指示すれば、(たいていの場合)問題が解消されます。

実際にやってみると、一発の指示で完璧なものは出来上がらなかったので、上記のようなデバッグ含めてチャットで何往復かして欲しいデータに仕上げていきました。

なお、一番大変だったのが、売上と予算が近い値で関連するよう作成する点でした。下記のように売上と予算が大幅に乖離しており、これ以外にも何度か修正指示を行いました。

生成されたデータに問題がなさそうであれば、Google Colaboratoryから任意の場所にダウンロードして保管すれば完了です。

まとめ

Claude Sonnet3.5を使ってTableauのMulti-fact Relationships析用のサンプルデータセットを作成してみました。
(プロンプトの書き方などもう少しスマートなやり方はあると思いますが、その点はご容赦いただければ、、)

私はClaude Sonnet3.5を使いましたが、ChatGPTやGeminiといった各種生成AIでも同様にデータは作成可能だと思います。もしTableauのMulti-fact Relationshipsの機能を試したいけど、データが無いな・・という方はこのようなやり方もあるので、ご参考にしていただければ幸いです。

この記事が気に入ったらサポートをしてみませんか?