見出し画像

[速習] データ分析が簡単になる! ChatGPT PlusとCode Interpreter ~Pythonを利用したインタラクティブなコーディング環境

Code Interpreter入門ガイド
ChatGPTのCode Interpreterは、自然言語で記述されたコードの意図を理解し、実行可能なプログラムコードに変換する機能です。このガイドでは、まずCode Interpreterの基本的な使い方を解説します。


ChatGPTの理解

ChatGPTの能力についての概要
ChatGPTは、OpenAIによって開発された、自然言語処理の技術を応用した大規模なAI言語モデルの一つです。ユーザーからの入力に対して人間が行うような応答を生成することができます。この応答は、情報提供、質問への回答、文章の作成、物語の生成など、多岐にわたります。

ChatGPTは、様々な種類のテキスト(書籍、ウェブサイト、科学論文など)から学習しており、それにより広範囲のトピックと文体に対応することができます。しかし、ChatGPTは特定の個人から直接学習したわけではなく、また個々の情報源を明示的に記憶する能力もありません。つまり、ユーザーの質問に対する応答は、学習したデータ全体を基にした予測に過ぎないということです。

従来のChatGPTの制約
従来のChatGPTはその能力にも関わらず、いくつかの重要な制約がありました。その一つは、即座に新しい情報を学習・応用する能力に欠けていたことです。例えば、ChatGPTが訓練された時点以降に発生した事象については、情報を提供できません。私の知識は2021年までの情報に限られています。

また、特定の個々の情報源や文書を参照する能力も欠けていました。具体的には、特定のウェブサイトや書籍からの情報を抽出して回答を生成することはできませんでした。これらの制約は、ChatGPTが特定の情報ニーズに対応する能力を制限するものでした。

加えて、ChatGPTは学習したデータの偏りやバイアスを内包するリスクがあり、信頼できない回答を生成する可能性がありました。

新機能の紹介
最近のアップデートでは、これらの制約を克服する新機能が追加されています。その一つがCode Interpreterです。これは、ユーザーが入力したコードを解釈し、その結果を出力する機能です。これにより、ユーザーはChatGPTにプログラミングの質問をするだけでなく、実際のコードを書いてその動作を確認することもできるようになりました。

また、特定のウェブサイトを参照して回答を生成できるWeb References機能も追加されています。

このような新機能により、ChatGPTの機能性は大幅に向上しました。しかし、依然としてChatGPTは完全な人間のようには動作しないため、その能力と制約を理解することが重要です。それにより、ChatGPTを効果的に活用するための戦略を立てることができるでしょう。

次の章では、この新機能であるCode Interpreterの詳細について掘り下げていきます。

Code Interpreter

Code Interpreterの機能
Code Interpreterは、ChatGPTにPythonのインタープリタを搭載することで、ユーザーに強力なデータ分析とコーディングの能力を提供します。

データ分析では、ユーザーが保有するCSVやJSONなどの様々なデータファイルをアップロードすることができます。アップロードされたデータはPythonのデータ分析ライブラリを駆使して分析され、パターンや洞察が見出されます。また、matplotlib、seaborn、plotlyなどの可視化ライブラリを使用することで、分析結果を直感的に理解できるようなグラフやチャートを生成することも可能です。

コーディング面では、Pythonコードをその場で実行・デバッグすることができるインタラクティブな環境が提供されます。ユーザーは新しく書いたコードを即座にテストし、コードの動作を確認することができます。また、言語で表現された問題をPythonのコードに変換し、それを実行することで解決策を得る、といった流れも簡単に行えます。

Code Interpreterの設定

Code Interpreterを使用するには以下の準備が必要です。

まずChatGPT Plusへの登録が必要です。ChatGPT Plusは通常のChatGPTに比べて優先アクセスや高度な機能を提供する有料プランです。次にユーザーアカウントの設定画面から、Code Interpreterのオプションを有効にします。するとChatGPTのユーザーインターフェイスにコーディングモードと通常モードを切り替えるためのUIが追加されます。



コーディングモード時にCode Interpreterの機能が利用できるようになります。

データのアップロード

ChatGPTの画面から、分析対象となるCSVやJSON、Excelなどのデータファイルをアップロードできます。複数のデータソースを組み合わせてアップロードすることも可能です。アップロードしたデータはPython上で読み込まれ、分析対象として利用されます。

結果のダウンロード

ChatGPTに分析を依頼すると、コードの実行結果や分析レポートはダウンロード可能なファイルとして出力されます。グラフ画像、CSV、コードスニペットなど、目的に応じたファイル形式を指定することができます。ダウンロードしたファイルは、電子メールで共有したり、プレゼン資料として再利用したりすることができます。

ChatGPTによるデータ分析

今回、分析のサンプルデータとして以下のCSVデータを用意しました。

Date,Region,Store,Yen
2023-07-01,東京,渋谷店,250000  
2023-07-01,東京,池袋店,200000
2023-07-01,神奈川,横浜店,150000
2023-07-01,神奈川,川崎店,100000
2023-07-02,東京,渋谷店,300000
2023-07-02,東京,池袋店,250000
2023-07-02,神奈川,横浜店,200000
2023-07-02,神奈川,川崎店,150000
2023-07-03,東京,渋谷店,350000
2023-07-03,東京,池袋店,300000
2023-07-03,神奈川,横浜店,250000
2023-07-03,神奈川,川崎店,200000
2023-07-04,東京,渋谷店,400000
2023-07-04,東京,池袋店,350000
2023-07-04,神奈川,横浜店,150000
2023-07-04,神奈川,川崎店,100000
2023-07-05,東京,渋谷店,450000
2023-07-05,東京,池袋店,400000
2023-07-05,神奈川,横浜店,200000
2023-07-05,神奈川,川崎店,150000

このデータには、東京と神奈川の店舗別売上データが含まれています。売上単位は円となっています。

CSVデータのアップロードと概要把握
まずこのデータを、Code Interpreter機能をONにした状態でChatGPTにアップロードします。

次に「このデータの概要を説明してください」と尋ねると、ChatGPTはこのデータの内容を正しく把握し、以下のように概要を説明してくれます。

地域別売上の比較分析
「このデータから東京と神奈川の売上を比較し、特徴を分析してください」と依頼すると、ChatGPTは地域別の売上を集計して比較。東京の売上が多い傾向にあることを分析してくれます。

また「地域別売上の違いを表すグラフを作成してください」と指示することで、東京と神奈川の売上推移を表したグラフが得られます。

店舗別売上の特徴
個々の店舗ごとの売上特徴についてもChatGPTに分析を依頼できます。「渋谷店と横浜店の売上を比較し、傾向の違いを説明してください」などと尋ねることで、店舗レベルの売上分析が可能です。

以上のように、用意したデータをもとにChatGPTに分析を依頼することで、様々な切り口で売上を可視化し特徴を抽出できます。

店舗×地域のヒートマップ
店舗と地域の両次元で売上の特徴を確認するため、ヒートマップを作成してみましょう。

「日付と填補を軸とした売上データのヒートマップを作成してください」とChatGPTに依頼します。するとseabornライブラリを使って、以下のようなヒートマップが生成されます。

このヒートマップから、渋谷店が売上が多い店舗であること、東京のほうが神奈川より全体的に売上が高いことが一目で分かります。

以上のように、目的に応じて可視化の手法を選択することで、ChatGPTによるデータ分析をより実効性の高いものにできます。

おわりに

本書では、ChatGPTの新機能であるCode Interpreterの仕組みと用途について解説しました。

Code Interpreterを使うことで、ChatGPTはデータのアップロード・分析・可視化を行う強力なツールとなります。ビジネスシーンでの利用価値は非常に高いと考えられます。

ただし、ChatGPTの分析結果には誤りが含まれる可能性があることに注意が必要です。データの概要把握から分析手法の設計、結果の解釈に至るまで、人間による関与とチェックが不可欠です。

今後、Code Interpreterの精度向上や機能拡張が期待されます。データドリブンな意思決定を支援するツールとして、ChatGPTは大いに可能性を秘めていると言えるでしょう。


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