OpenAIがChatGPTを使ったデータ分析の学習コンテンツを公開している。データセットの探索から、インサイトの抽出、ビジュアライゼーションの生成、意思決定への落とし込みまでをカバーしている内容だ。
これを見て最初に思ったのは「Pandas書いてる時間、かなり削れるんじゃないか」ということだった。
自分は最近、スタートアップの社内ダッシュボード改善に関わっていて、分析系のコードを書く機会が増えている。毎回やっていることは決まっていて、CSVを読み込んで、欠損値を確認して、groupbyして集計して、matplotlibで雑にグラフ化するという流れだ。
この作業、正直あまりおもしろくない。そこで今回のOpenAIのコンテンツを参考に、ChatGPTにデータを投げてビジュアライゼーションを生成させてみた。結果、自分が30分かけて書いていたコードが3分で出てきた。しかも自分では気づいていなかった外れ値の指摘までついてきた。
「ChatGPTはデータセットを探索し、インサイトを生成できる」というのがOpenAIの説明だけど、実際に試してみると、この「インサイトの生成」が地味に効く。自分では「この列はあまり関係ないだろう」と思っていた特徴量に対して、ChatGPTが相関を指摘してきたケースがあった。機械的にやってくれるので、自分の思い込みが入りにくいというメリットがある。
一方で、ChatGPTに投げっぱなしにすると怖いと思っている部分もある。生成されたコードをそのままコピペして動かすのは、レビューなしでPRをマージするのと同じ感覚だ。特に集計ロジックのミスは出力がそれっぽいと気づきにくい。
自分がやってみて良かったのは、ChatGPTに分析の方針を出させてから、自分でコードを書くというフローだ。
これくらいのレベルで使うと、「何を見るべきか」という設計はChatGPTに任せて、「どう実装するか」は自分で書くという棲み分けができる。コードの品質管理も自分の手の中に残せる。
OpenAIのコンテンツで強調されていた「findings を actionable decisions に変える」というフレーズが印象に残っている。分析して終わりにしないということだ。自分はここが一番弱いと思っていて、数字を出してもそれを意思決定に繋げる説明が苦手だった。ChatGPTに「この分析結果から何が言えるか、3行でまとめて」と投げると、自分より的確な要約が出てくることが多い。エンジニアとしてちょっと悔しい部分ではあるけど、それが現実だった。
データ分析の経験が浅い人でも使えるツールというポジションで語られがちなChatGPTだけど、自分のような実装寄りのエンジニアにとっても、「分析の設計フェーズ」に使う価値は十分にある。
まず手元にある既存の分析スクリプトを一本選んで、ChatGPTに投げてみてほしい。「このコードで何を見落としているか」と聞くだけで、意外な気づきが返ってくると思う。
これを見て最初に思ったのは「Pandas書いてる時間、かなり削れるんじゃないか」ということだった。
実務での使いどころを正直に考えてみた
自分は最近、スタートアップの社内ダッシュボード改善に関わっていて、分析系のコードを書く機会が増えている。毎回やっていることは決まっていて、CSVを読み込んで、欠損値を確認して、groupbyして集計して、matplotlibで雑にグラフ化するという流れだ。
この作業、正直あまりおもしろくない。そこで今回のOpenAIのコンテンツを参考に、ChatGPTにデータを投げてビジュアライゼーションを生成させてみた。結果、自分が30分かけて書いていたコードが3分で出てきた。しかも自分では気づいていなかった外れ値の指摘までついてきた。
「ChatGPTはデータセットを探索し、インサイトを生成できる」というのがOpenAIの説明だけど、実際に試してみると、この「インサイトの生成」が地味に効く。自分では「この列はあまり関係ないだろう」と思っていた特徴量に対して、ChatGPTが相関を指摘してきたケースがあった。機械的にやってくれるので、自分の思い込みが入りにくいというメリットがある。
じゃあエンジニアとして何を変えるべきか
一方で、ChatGPTに投げっぱなしにすると怖いと思っている部分もある。生成されたコードをそのままコピペして動かすのは、レビューなしでPRをマージするのと同じ感覚だ。特に集計ロジックのミスは出力がそれっぽいと気づきにくい。
自分がやってみて良かったのは、ChatGPTに分析の方針を出させてから、自分でコードを書くというフローだ。
# ChatGPTが提案してきた分析アプローチのメモ
# 1. 欠損値の割合を列ごとに確認
# 2. 数値列の分布をヒストグラムで可視化
# 3. ターゲット変数との相関をヒートマップで確認これくらいのレベルで使うと、「何を見るべきか」という設計はChatGPTに任せて、「どう実装するか」は自分で書くという棲み分けができる。コードの品質管理も自分の手の中に残せる。
OpenAIのコンテンツで強調されていた「findings を actionable decisions に変える」というフレーズが印象に残っている。分析して終わりにしないということだ。自分はここが一番弱いと思っていて、数字を出してもそれを意思決定に繋げる説明が苦手だった。ChatGPTに「この分析結果から何が言えるか、3行でまとめて」と投げると、自分より的確な要約が出てくることが多い。エンジニアとしてちょっと悔しい部分ではあるけど、それが現実だった。
データ分析の経験が浅い人でも使えるツールというポジションで語られがちなChatGPTだけど、自分のような実装寄りのエンジニアにとっても、「分析の設計フェーズ」に使う価値は十分にある。
まず手元にある既存の分析スクリプトを一本選んで、ChatGPTに投げてみてほしい。「このコードで何を見落としているか」と聞くだけで、意外な気づきが返ってくると思う。