見出し画像

データサイエンティストのData Analyst活用術【ChatGPT】

こんにちは、データサイエンティストのせきとばです。
データ分析を生業としており、日々の業務にChatGPTを取り入れて作業効率化しています。

ChatGPTの機能の一つに「Data Analyst」があります。
最初はその有用性に懐疑的で、データ分析の実務レベルでは使えないと思っていました。
しかし、使いこなすコツやタイミングを掴むうちに、従来の分析作業時間を大幅に短縮できるようになりました。(業務時間が30%以下に削減)

Data Analystを効率よく使うためのコツをシェアします。(随時アップデート予定)

前提

  • (当たり前ですが)機密性の高いデータは使用しないように注意しましょう。使う際はマスキングするなど徹底しましょう。

  • 実務経験者向けで、データ分析業務の効率化を目的としています。

  • Python未経験者は使用を控えた方が吉です。(結果の正誤判断が難しいため)

結論

  • データ丸投げはダメ、背景情報を提供する。

  • 分析結果より「コード」を提供してもらう意識

  • データの前処理と可視化はチャットを分ける

  • 予測モデルの構築では、コードのみを提供してもらう。

  • 最終的には、自分のローカル環境で再現性を優先する。

コツ

背景情報を提供する

何の説明もなしに「分析して!」とデータを渡されてもChatGPTは困ります。
分析の依頼をする際には、目的や背景、データの読み方、注意点など、可能な限り多くの情報を提供しましょう。これを怠ると、分析の品質に大きな差が生じます。もちろん会社名などの機密情報は控えましょう

「前処理」と「可視化」のプロセスを区別する

全てを一度に分析しようとすると難しいため、チャットを分けることが効果的です
本来、データ分析業務において前処理は相当時間がかかる作業です。初めから分析しやすいデータセットは珍しいです。

まずは前処理を依頼し、データを整えてもらい、クレンジングされたデータを出力してもらいましょう。このプロセスでは、可視化や分析まではお願いせず、前処理に専念するよう指示します。

よく伝える要件としては、「分析上、取り入れても効果の低い列項目を洗い出してください」があります。
例えば全部0、もしくはNaNなど全部同じ値で入っている項目です。これらはデータ分析を進める上で不要になるケースが多いです。従来はこれらを特定するために丁寧に時間かけて人が判断していましたが、ChatGPTは勝手にやってくれます。

このように整理されたデータを出力させたら、そのファイルを別チャットに持っていき、可視化や分析を行います。

データは全量ではなく一部で行う

大量のデータは分析パフォーマンスを低下させます。データにもよりますが、ローカルで行数を絞ってから依頼すると良いでしょう。

df = pd.read_csv("data.csv").sample(1000) # 一例

分析が上手くいったと感じたら、そのコードをコピーしてローカル環境で実行しましょう。
大事なのはData Analystでデータ分析業務を完結させないことです。
データ分析する過程で生じた、前処理や分析プロセスのコードは、今後のシステム実装などのフェーズで再利用するものになります。

あくまでも「品質の良いコードを素早く獲得する」ことを目的とし、結果に注目するのではなく、Data Analystが分析要件を満たすコードを出力できているか?という意識での活用が重要です。

予測モデルの構築はコード提供のみをしてもらう

特に機械学習に関連する場合、予測モデルの構築は学習時間がかかり、特殊なライブラリが必要になることがあります。Data Analystでは使用できるライブラリに制限があるため、コードのみを提供してもらいましょう。
コードのみを提供して、絶対に分析を実行しないでください」と言えばいいです。
また、目的や要件、制約を伝えることでモデル選定の精度を高まるでしょう。

タイトルは日本語で指定する

日本の企業で働いているなら、可視化時にはタイトルなどを日本語で指定することが重要です。
Data Analystは、特に指示を与えないと可視化でタイトルなどを英語でプロットすることが多いです。
日本語で指示すると文字化けすることがありますが、これは問題ありません

目的はChatGPT上で出力したグラフ画像を保存することではなく、提供コードをローカルでクイックに実行することです。
ローカル環境でコードを実行すれば、日本語表示は問題なく行えます。

処理を関数化してもらう

よく使う処理や可視化プロセスは、関数化してもらいましょう。
データ分析では、一度作成した処理フローを別データで繰り返し実行することが多いです。
最初は動作確認を兼ねてコードセルレベルで記述しますが、後になってから関数化したいと思うことがあります。これが地味に時間がかかります。

事前にChatGPTに関数化して貰えば、時間の節約になります。
また、Data AnalystはAnalyzing実行中にエラー出したあと、再度指示を出すとエラーになった変数を使いまわしてしまい、再エラーになることがよくあります。関数化でこれらのリスクを副次的に減らすことができます。

DataAnalystプロンプトテンプレート(執筆中)

ここでは、上記のコツを活かしたプロンプトの例を紹介します。

[役割]
あなたは優秀なデータサイエンティストです。

[制約条件]

...執筆中

今後も随時更新していく予定ですので、興味があれば「スキ」とフォローをお願いします。

現場からは以上になります。一読いただきありがとうございました。

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