ChatGPTの新機能「Code Interpreter」が2023年夏頃に有料課金のユーザーに開放され、ようやく先日使うことができました。
データ解析がどうやって動くのか、解析したデータを視覚化する方法など、公開されている統計データを使ってCode Interpreterを触ってみましたのでご紹介します。
目次
ChatGPTの新機能「Code Interpreter」
「Code Interpreter」は、ChatGPTが提供する新機能の一つで、対象とするファイルをアップロードし、Pythonを実行してそのデータを解析したり、データに対してグラフ生成を行うことができる機能です。
コードの解析と実行、データ解析やビジュアル化、それらの説明などが実行可能です。また、実際に作成されたコードを表示できるため、プログラミングの基本的な概念やどうやってデータ解析しているのかということをコードを見て学ぶこともできます。
「プログラミングに興味はあるけど自分ではできない」という人や、「データ解析をしたいけど詳しくない」といった人にとって、非常に強力になりうるツールです。
データ解析の例: 東京都のオープンデータを用いた給与解析
統計データとして東京都が公開しているオープンデータを利用しました。事業所規模が30人以上の会社においての、労働者のひとりあたりの平均月間給与額を産業別に各月・数年間の推移がわかるデータです。
東京都の賃金、労働時間及び雇用の動き(毎月勤労統計調査結果年報)令和4年 – 第1-2表 産業、性別常用労働者の1人平均月間現金給与額(事業所規模30人以上) – 東京都オープンデータカタログサイト
これをChatGPTに読み込ませてみたところ、どんなデータなのかというのを行情報から判断して出力してくれました。
それに対するコードも表示させてみます。この通りPythonを実行して結果が出力されているのがわかります。
コードをコピーして、実際にPythonで動くことを確認しました。(printを追加)
$ python opendata-sample.py
事業所規模 産業 和暦年 西暦年 年平均・月 現金給与総額/計(円) ... きまって支給する給与/女(円) 所定内給与(円) 所定外給与(円) 特別に支払われた給与/計(円) 特別に支払われた給与/男(円) 特別に支払われた給与/女(円)
0 30人以上 TL 調査産業計 平成29 2017.0 年平均 462436 ... 254244 333689 25566 103181 129286 62854
1 30人以上 TL 調査産業計 平成30 2018.0 年平均 467598 ... 260237 335576 25433 106589 134639 64861
2 30人以上 TL 調査産業計 平成31・令和元 2019.0 年平均 466397 ... 260658 334350 27212 104835 132573 63765
3 30人以上 TL 調査産業計 令和2 2020.0 年平均 457856 ... 261692 333481 24909 99466 124661 61640
4 30人以上 TL 調査産業計 令和3 2021.0 年平均 462052 ... 272033 337274 26689 98089 122669 61922
[5 rows x 16 columns]
給与が高い産業のランキング
まずは、給与額が高い産業順に並べます。オープンデータを見ていただければわかりますが、各月の給与情報まで掲載されているデータとなり、各月は除外しが方がシンプルです。また、不要な情報もあったためそれも除外してもらうよう指示しました。
「年平均・月」列の各月は除外し、年平均だけを見て、給与総額が産業を高い順に並べてください。
“-” という文字列が含まれている行は無視してください。
この通り、産業名と平均給与額がランキング形式で出力されました。
男女間の給与差が小さい産業のランキング
次に、男女の給与差が小さい産業はどれかというのを調べました。男女それぞれの給与に加え、差額がいくらなのかも計算してもらっています。
男女における給与額の差が小さい産業を順に並べ、合計額、男性給与額、女性給与額も合わせて示してください。
給与の男女差が小さい順に並べていると思いきや、情報通信業が変な位置に入ってしまっています(赤矢印)。その間違いは指摘することで正しい順に並び直してくれました。
各産業の給与の上昇率の推移
データには2017年から2022年の数年間の給与の推移が記載してあります。各産業において給与がどのくらい上昇しているかを調べつつ、視覚的に見やすいグラフで示してもらいました。
2017年から2022年の数年間の推移で、各産業において給与の上昇率がどれくらいかを調べたいです。また、各年の給与合計と、上昇率(もしくは下降率)も知りたいです。見やすいグラフを作成してください。
ヒートマップとは一言も伝えていないにも関わらず、ChatGPTが「見やすい」というのを判断してヒートマップを作ってくれました。ただし、各産業名は日本語部分が文字化けしています。多言語対応はこれからに期待しましょう。
コードを見てみると、グラフ生成はPythonのグラフ描画ライブラリであるMatplotlibを読み込んで生成していました。こういったデータを可視化したい場合、グラフ描画は最適です。
Matplotlib — Visualization with Python
給与の変動に影響を与える可能性のある要因を考察してもらう
最後に、このデータから各産業において給与が変動する要因について考察してもらいました。アバウトな質問だったため、返答もアバウトになってしまいましたが、なんとなく意味のあることを言っている風な内容はChatGPTの得意とするところです。
Code Interpreterを使って誰でもデータ解析が始められる
このように、一定の情報を持ったデータを読み込ませることで、Pythonを書かないとできなかったデータの解析や、ライブラリを使ったグラフ描画等をChatGPTに指示を出すだけでやってくれるようになりました。しかも文句も言わず、何度でもやりなおしもしてくれる忠実な部下のようです。
複雑なデータ解析はプロの領域でしょうが、簡単な解析やグラフ描画であれば、データサイエンティストではなくても出来てしまうことに驚きました。またさらに、コードが表示されることで、学習教材としても十分使えてしまいますね。他にも、画像をアップロードし画像処理もできる機能も兼ね揃えています。
記事内にある通り間違いはあるものの、Code Interpreterによりデータ解析も自分でできてしまうようになったので、興味があればぜひ触ってみることをおすすめします。
ChatGPTがすごいと世間を騒がせてからわずか数ヶ月でこのような機能をリリースしてくるOpenAI、異次元すぎますね……。
コメントを残す