見出し画像

【第3回】実例まるっと公開! 「最下位 → 平均より上」へ駆け上がったやり取り

ここからは“対話ログ+生成コード”のハイライトを時系列で追います。

文章はかみ砕き、専門用語には注釈(★)を付けたので、プログラミング初学者の方でも読み切れるはずです。山って何? と思う方は、第2回をお読みください

2-1 まずはゴールを紙1枚に──“タスクシート”をAIに渡す

ステップ

  1. シートを作る GoogleドキュメントやNotionでOK

  2. 以下7項目を書くだけ

    • コンペ名

    • 目的(回帰/分類★)

    • 評価指標(例:RMSE★)

    • 締切までの日数

    • 1日の提出上限

    • 使える計算資源(CPUだけ/GPUあり)

    • 自分のスキル感(Python初級など)

ワンポイント

数字があるとAIはグッと動きやすくなります。 逆に「おまかせで」と書くと精度がブレるので注意!


私が送った実物(抜粋)

markdown
コピーする編集する
# Task Sheet
- Title: House Price Challenge
- Task: 回帰
- Metric: RMSE
- Deadline: 6 days left
- Submissions per day: 10
- Resource: CPU only
- My skill: Python beginner / SQL intermediate


2-2 山①:データ理解(EDA★)をAIにおまかせ

プロンプト例(丸コピーOK)

Prompt #1

この Task Sheet と train_sample.csv(1000行)を読み込み、 パッと分かるポイントを100字で教えて。 さらに“気になる列トップ5”を欠損率と相関を添えてリストアップして。

返ってきた要約(ほんの一部)

  • 数値列12本、カテゴリ列6本

  • 欠損が多い:LotFrontage (18%)

  • OverallQual と価格の相関 0.79(強い順)

  • 外れ値:GrLivArea > 4000 が0.4%

  • 気になる列トップ5

    1. OverallQual (欠損0%, 相関0.79)

    2. GrLivArea (0%, 0.70) …

ここでの学び

“トップ5”の形で返してもらうと次の会議が一瞬で済む 欠損率も一緒に出るので「どこを補完★するか」が迷わない


2-3 山②:作戦会議 → ベースラインモデル作成

2-3-1 まず「候補アイデア」を出してもらう

Prompt #2

RMSE を 0.15 未満にしたい。 GPUなし・外部データ禁止で、効きそうな特徴量エンジニアリング★案を3つ以内で。 各案に“効果見込み↑↑/↑/→”と“作業コスト★Low/Med/High”を付けて。

AIの提案(要約)

案 効果見込み コスト 説明 A. 欠損20%超列を“4分位バケツ”に変換 ↑↑ Low 情報量↑、実装簡単 B. OverallQual × GrLivArea の掛け算 ↑ Low 相互作用で説明力UP C. 学習データを対数変換 → Low 外れ値やや緩和

**採否は“○×付けて返信”**と伝えると、AIは○だけを次に使います。

2-3-2 コードをお願い!

Prompt #3

○が付いたAとBを反映してLightGBMで学習コードを作って。 ファイルは train.py / predict.py / utils/fe.py の3つに分けて。

AIが出力した主なポイント

  • fe.py:欠損列→4分位ダミー化、掛け算列を追加

  • train.py:5fold★交差検証+Optuna★でハイパラ20試行

  • predict.py:モデル読み込み→提出CSV出力

実行した結果

  • 交差検証 0.148

  • 公開LB 0.151ランキング 110/340 位(ほぼ真ん中!)


2-4 山③:磨き上げループ

スコアを返して改良案を依頼

Prompt #4

公開LB = 0.151(Rank 110/340)でした。 学習時間60分以内でRMSEをあと0.005下げる方法を上位2案ください。

AI案(抜粋)
案 推定改善幅 作業コスト 1. GroupKFold:似た家族IDで分ける −0.004 Low 2. ランダムフォレストとの平均アンサンブル★ −0.003 Med
私 → 「1だけ○」 → 再コード生成 → 再提出 → LB 0.147(Rank 78)


2-5 つまずき→リカバリの実況

トラブル 何が起きた? 即席プロンプト JSONでNaN 提出ファイルが壊れる 「df.fillna(-1)を入れて再出力して」 ログが長すぎ チャットが止まる 「さっきの結果を50字で要約し直して」 夜間ジョブ失敗 Optunaが4時間でクラッシュ 「timeout=90*60を追加して」
ポイント

細かい修正はそのまま日本語で投げても通じる。 “エラー文丸ごと貼り付け→『直るように修正して』”でほぼ治ります。


2-6 振り返り:勝因は「人がやったこと≒3つだけ」

  1. ゴールと制約を決めて伝えた

  2. AIの提案に○×を付けた

  3. LBスコアをコピペして返した

あとは全部 Deep Research がやってくれました。
この流れさえ守れば、Python初級者でも短期間で平均以上は現実的です。

いいなと思ったら応援しよう!