Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

ChatGPT Code Interpreter でTitanic生存者予測にチャレンジ

近頃、夜食づくりにはまっているkonnoです。

データ分析もできると話題のChatGPT Code Interpreterを使えば、機械学習もお手軽にできるのでは…?
ということで、Kaggleチュートリアルとして有名な「Titanicの生存者予測」を
ChatGPT Code Interpreterを使って分析できるのか 試してみたいと思います!

Titanic生存者予測とは?

かの有名のタイタニック号の乗員名簿と、事故で生存したか否かのデータを機械学習し、乗員の属性(性別、年齢、乗船時の運賃など)から生存したか否かを推定する課題です。
よく考えるとひどい設定ですね。
話題のわかりやすさと、それなりに特徴的な結果が出るところから、機械学習の初学者がやる練習問題として世界的に有名です。

データはKaggleさんから取得できます。

www.kaggle.com


機械学習を利用してTitanic生存者予測を実施する

ではデータをダウンロードして、さっそくCode Interpreterに解析してもらいましょう。
ここでは、機械学習のモデルとして "Random Forest"を指定してみます。

モデルを指定してみる

今度は指定されたモデルを使用した学習が始まります。
しばらく待っていると…

指定されたモデルに対し学習を開始

モデルの訓練が完了

与えられたデータによる訓練が完了しました。

学習できました!

いきなり終わってしまいましたね…!

交差検証でスコアが0.811と、悪くない値です。
ここではやりませんが、途中で出てくる"Show work"を開くと、内部で実施しているPythonの処理をのぞくこともできるので、勉強に役立てることもできます。

ペアプロット図を出力する

さらに、各特徴量が互いにどのような相関関係にあるのかを、ペアプロット図を出力させて調べることもできます。
ペアプロット図を出力するように、Code Interpreterに指示を与えてみます。
ダウンロードできるように、という指示もしておくと、解像度の低い画像を手元で大きくして見ることができるのでお勧めです。

ペアプロット図を出力させる

すると、次のようにペアプロット図が作成されました。

ペアプロット図の出力を開始
出力されたペアプロット図

例えば、カテゴリカル化した'Sex'(男性が 0、女性が1)の値で、生存したか否かがだいぶ分かれていることが見て取れます。
また'Fare'(運賃)も生存率と関連性があるように見えます。高い運賃を払った乗客は生存率が高いようです。今も昔も世知辛いですね。

もっとも重要な特徴量を調べる

一通り検証が終わり、モデルが生成された後で、重要な特徴量が何かわかる図を描いてもらいます。

重要な特徴量を棒グラフで表示

すると、'Sex'(性別) が最も重要な特徴量であることがわかります。次いで'Fare'(運賃)、'Age'(年齢)が挙げられました。
初学者が自分でやろうとすると、これを出すだけで半日くらいかかりそうですが、短い文章の命令だけでこのようにわかりやすく図示してくれるのは便利すぎますね。

まとめ

今回は、「Titanic生存者予測」をテーマにChatGPT Code Interpreter機械学習を行わせてみました。
基本的な内容ではありますが、わずかな日本語入力のみでモデルの訓練が完了するのは驚きです。
ほかにも応用できないか、いろいろ試してみたいですね。


「小企業が実践したノウハウを展開!中小企業でChatGPTどう活かすのか?」 近日開催します!

20230726204731