背景
Code Interpreter の可能性を探るシリーズです。今回はデータの分析を取り扱います。Python のコードと標準的なパッケージは入っているので、やれるのはわかっています。後はどこまで出来るのか?つまり教養としての教育どまりなのか、実ビジネスでも使えるのか?という可能性を探りたいわけです😊
データの分析の基礎情報については、こちらの Blog が大変参考になります。私も良くデータ分析の体験会・演習・ハンズオンなどで使っているコンテンツになります。
データの分析の現場は、いつでも整形済みのデータを相手にできるわけじゃないです。というか、それは寧ろレアケースで。というか私そんなデータを1度も見たことはないです。
全部を一度に検証しきれないので。
技術的な難易度の低いところから検証していきます。
ここでのチャレンジは以下とします。
- 構造化データのデータクリーニングをどこまでやってくれるのか?
- データを理解するための基礎統計が出来るのか?
- 自分の見つけたデータで、どこまで分析をしてくれるのか?
- 最適なグラフを選んでくれるのか?
- 良いサマリーの文章を作成できるのか?
- 結果をPowerPoint のファイルに差し込めるのか?
くどいですが、教育やビジネスで使えるレベルなのかに常に気を払ってみていきましょう。
リソース
私の ChatGPT の Prompt 履歴。失敗も含めて晒します😊:
Prompt 文字列。皆さんがコピペしやすいように:
https://github.com/dahatake/ChatGPT-Prompt-Sample-Japanese/blob/main/%5BPlugin%5D%20Code%20Interpreter/%E8%A8%AA%E6%97%A5%E5%A4%96%E5%AE%A2%E6%95%B0%E3%81%AE%E5%88%86%E6%9E%90.md
注意点
いつもの通りですけど。
必要なもの
- ChatGPT の有償版が必要です
- Code Interpreter の Plugin の有効化
手順
0. Code Interpreter の有効化
ここでは、もう説明しませんよ😊
1. データの取得
以下よりファイルをダウンロードします。 ここでは「各国・地域別の推移」を選択します。
ダウンロードしたファイルはこちらです。
2. ファイルのアップロード
いつもの通りで😊
3. データの理解。基礎解析
まずはアップロードしたのデータがどんな内容なのかを見ていきます。
Prompt:
データ分析のプロフェッショナルとして振舞ってください。
このデータを分析します。基礎解析をしてください。
最初の数行でも無いよりは理解が全然進みますね!
マジですか!
この網羅性! まずデータの列が文字列などでカテゴリーとして扱うものなのか? それとも数字や時間などで数値として扱えるものなのか? この分析項目を説明してくれているとともに、分析を実行する Python のコードを作成して、実行してくれています😍
神すぎますよね...
もうね。感動しかないです❤️
データ型を揃えるためのクレンジング | クリーニングを行ってくれています!
そして、エラーになったんですよ。途中で。「カンマ」が入っていた!「NaN」がはいっていた! これもよくあります😊
で、そのための方法は幾つかあります。特定列の平均値あるいは中央値に置き換えたり。あるいは対象データが少量だった場合には行ごと削除したり、と。
で、その対象方法である行の削除 を提案してきています!
ちなみに、初回の Prompt でここまで実行して、説明文を作成してくれているんです。
もう、畠山無しで、結構できちゃうんじゃね? と思ってきました😎
全然いいと思います。私、皆様全員とお仕事ご一緒できるわけじゃないと思うので...
じゃ、不要行の削除をやってもらいましょう。
Prompt:
はい、お願いします。
見事です。
再度、作成したプログラムのコードだと不足があってエラーになっていますね。
因みに、プログラムコードに間違いというかバグがあるんじゃなくて。変なデータがあったので、追加の処理が必要になっているんです。これがデータの分析の現場で、何度も発生します。
ご自身は、この Python のエラーメッセージを読んで、ChatGPT + Code Interpreter よりも速く修正できるでしょうか?😎
データの型変換が終わって、使える状態になりましたね!
で、基礎集計の結果を表示してくれています!
これを作成するための Python のコードも見たほうがいいですよ。
そう、これが見たかった😊
で、データの中身を。
国が6個しかないのですね。このデータは。つまり訪日外客者数の「一部分」しか扱ってないことがわかります。上位6か国なので、いいのかもしれませんが。7位以下の国で増加傾向にあるものは、今回は対象外である、という事を、この基礎集計から理解することが大事です。
3. データの分析の実行
網羅性をみたいので、その可能性を探るために、思考停止を演じてみますね。
Prompt:
はい、考えられる全ての分析をしてください。それぞれについてグラフを作成してください。特に他と異なる傾向や割合を示すものについては、その説明文も作成してください。
すげぇ!
まずは時系列での増減を見てくれています。
4つもの実行プランを作成してくれているところが神です。
- 投入データの列名は、もともと英語なんです!
- こちらから一切指定をしていません。つまり、ここまでのテキスト文字列から、分析する価値のある重要なサマリー文を作成したのかと推察をしています。GPT-4ですから!
そして1つめの「年別の訪日外国人観光客数の推移」のグラフを作成してくれています。
マジか!
この作文は「数字」の羅列から、GPTが作文をする能力のある事を教えてくれます。マジですか!😍
1つ目と2つ目が出来た段階で。後はソフトウェアとコンピューターの処理能力ですから。10個でも特徴があるようであれば、行けるかもしれません。
4つ目のテーマ。「各国・地域からの訪日外国人観光客数の成長率」
何と、最後に要約まで。
これでいいんじゃね!!! と思っちゃいますよね。まずは概要を理解するのであれば。
4. 分析結果から PowerPoint のプレゼンテーションファイルの作成
Code Interpreter の環境にはpython-pptxがインストールされています。これがあるがゆえに、PowerPoint のファイル作成が出来ます。マジステキ!
Prompt:
### 指示 ###
以下のプレゼンテーション構成とpython-pptxを使用して、PowerPointのスライドを作成してください。
プレゼンテーション構成:###
Step1: 全体のサマリーとFAQを作成して、最初のスライドに追加する
Step1: 特徴的な項目ごとに、スライドを作成する
Step2: それぞれのスライドはタイトル、データの概要説明、グラフの画像で構成する
Step3: それぞれのスライドのタイトル、データの概要説明の文章を作成する
Step4: 作成したグラフを画像として、それぞれのページに追加する
###
- Step1 が2つあって、間違えているんですが。ここが LLM というか 機械学習のいいところで。揺らぎを吸収してくれるんです😅
まずはテキスト文字列ですね。
そして、図としてのグラフ。
PowerPoint のファイル作成までは行きませんでした。作業の続行を指示しましょう。
Prompt:
作業を続けてください。
PowerPoint のファイルを作成してれました!
ファイルはこちらからダウンロードできます。
https://github.com/dahatake/ChatGPT-Prompt-Sample-Japanese/blob/main/%5BPlugin%5D%20Code%20Interpreter/output/visitor_analysis_presentation.pptx
レイアウトはいまいちですが。でもこの程度ならプレゼンテーションまで仕上げるのは短い時間で済むと思います。
まとめ
いかがでしたか?
BIツールであれば、複数のグラフでのハイライトをしたりといった、もっとその場で気づいた点への対応がしやすいです。今回はそこまでは行きませんが。基礎的な分析と、その結果の作成。しかもPowerPointのファイルの作成までやってくれました。
作業時間は、10分程度でしょうか。
- 圧倒的に高い網羅性。抜け漏れを減らせる可能性が高い
- ある程度丸投げして、思考停止に陥っても、サポートしてくれる
- Python 知らなくても、出来る
- Excel やBI ツールを使えなくても、出来る
- ちなみに、WordやExcelのファイルも作成できます。皆さんの会社・組織に必要なファイルを作成してください。
教育やビジネスの現場の多くのシナリオで使える可能性が高いです。
課題は、入力ファイルの扱いですね。機微なデータが多い場合は、やはり Microsoft 365 Copilot が期待の星になりますね!フォーマットを整えてくれることも出来そうですしね!
これだけじゃなく、はやく ChatGPT Plugin が、各種 Copilot エコシステムで動くようになってもらいたいですね...
コンピュータがお嫌いな方でも。データの分析をお任せできる日が到来したといっていいでしょう!