データ分析もできると話題のChatGPT Code Interpreterを使えば、機械学習もお手軽にできるのでは…?
ということで、Kaggleチュートリアルとして有名な「Titanicの生存者予測」を
ChatGPT Code Interpreterを使って分析できるのか 試してみたいと思います!
Titanic生存者予測とは?
かの有名のタイタニック号の乗員名簿と、事故で生存したか否かのデータを機械学習し、乗員の属性(性別、年齢、乗船時の運賃など)から生存したか否かを推定する課題です。
よく考えるとひどい設定ですね。
話題のわかりやすさと、それなりに特徴的な結果が出るところから、機械学習の初学者がやる練習問題として世界的に有名です。
データはKaggleさんから取得できます。
機械学習を利用してTitanic生存者予測を実施する
ではデータをダウンロードして、さっそくCode Interpreterに解析してもらいましょう。
ここでは、機械学習のモデルとして "Random Forest"を指定してみます。
今度は指定されたモデルを使用した学習が始まります。
しばらく待っていると…
モデルの訓練が完了
与えられたデータによる訓練が完了しました。
いきなり終わってしまいましたね…!
交差検証でスコアが0.811と、悪くない値です。
ここではやりませんが、途中で出てくる"Show work"を開くと、内部で実施しているPythonの処理をのぞくこともできるので、勉強に役立てることもできます。
ペアプロット図を出力する
さらに、各特徴量が互いにどのような相関関係にあるのかを、ペアプロット図を出力させて調べることもできます。
ペアプロット図を出力するように、Code Interpreterに指示を与えてみます。
ダウンロードできるように、という指示もしておくと、解像度の低い画像を手元で大きくして見ることができるのでお勧めです。
すると、次のようにペアプロット図が作成されました。
例えば、カテゴリカル化した'Sex'(男性が 0、女性が1)の値で、生存したか否かがだいぶ分かれていることが見て取れます。
また'Fare'(運賃)も生存率と関連性があるように見えます。高い運賃を払った乗客は生存率が高いようです。今も昔も世知辛いですね。
もっとも重要な特徴量を調べる
一通り検証が終わり、モデルが生成された後で、重要な特徴量が何かわかる図を描いてもらいます。
すると、'Sex'(性別) が最も重要な特徴量であることがわかります。次いで'Fare'(運賃)、'Age'(年齢)が挙げられました。
初学者が自分でやろうとすると、これを出すだけで半日くらいかかりそうですが、短い文章の命令だけでこのようにわかりやすく図示してくれるのは便利すぎますね。
まとめ
今回は、「Titanic生存者予測」をテーマにChatGPT Code Interpreterで機械学習を行わせてみました。
基本的な内容ではありますが、わずかな日本語入力のみでモデルの訓練が完了するのは驚きです。
ほかにも応用できないか、いろいろ試してみたいですね。