ステップ5:提出ファイルを作る(機械学習なし)
🎯 このステップでやること「女性なら生存、男性なら死亡」というルールだけで、提出ファイルを作る。所要時間:約5分。
なぜ機械学習を使わないのか
前のステップで、女性の生存率は74% だとわかりました。ならば「女性=生存、男性=死亡」と予測するだけで、だいたい当たるはずです。
先に「提出する」という行為を体験してしまいましょう。 機械学習はその後です。こうすると、後で「モデルを変えたら本当に良くなったのか」が比較できるようになります。この最初の基準を ベースライン と呼びます。
5-1. 予測を作る
📋 コード
pred = (test["Sex"] == "female").astype(int)
print(pred.head(10))
print("予測した人数:", len(pred))
print("生存と予測した人数:", pred.sum())
✅ こう出れば成功
0 0
1 1
2 0
3 0
4 1
5 0
6 1
7 0
8 1
9 0
Name: Sex, dtype: int64
予測した人数: 418
生存と予測した人数: 152
418人分の予測ができ、そのうち152人を「生存」と予測しました。
⚠️ 人数が418でないとき → test の読み込みがおかしいです。ステップ2のコードを貼り直してください。
5-2. 提出用の表を作る
Kaggleに提出する形は決まっています。PassengerId と Survived の2列だけです。
📋 コード
submission = pd.DataFrame({
"PassengerId": test["PassengerId"],
"Survived": pred
})
submission.head()
✅ こう出れば成功
| PassengerId | Survived | |
|---|---|---|
| 0 | 892 | 0 |
| 1 | 893 | 1 |
| 2 | 894 | 0 |
| 3 | 895 | 0 |
| 4 | 896 | 1 |
892番から始まっていればOKです。(trainが1〜891番なので、testは892番から続いています)
5-3. ファイルとして書き出す
📋 コード
submission.to_csv("submission.csv", index=False)
print("書き出し完了")
print(submission.shape)
✅ こう出れば成功
書き出し完了
(418, 2)
(418, 2) = 418行・2列。 これが正解の形です。
⚠️
index=Falseを絶対に忘れないでください。これを書かないと、左端に勝手な番号の列が追加され、提出エラーになります。 Kaggle初心者が最も多く踏む地雷です。
5-4. 中身を最終確認する
📋 コード(念のための確認。やらなくても進めます)
print(pd.read_csv("submission.csv").head())
print("行数:", len(pd.read_csv("submission.csv")))
✅ こう出れば成功行数が 418、列が PassengerId と Survived の2つだけ であればOKです。
💡 何をしたのか(読み飛ばし可)
| コード | 意味 |
|---|---|
test["Sex"] == "female" | 性別が女性かどうかを True / False で判定 |
.astype(int) | True→1、False→0 に変換 |
pd.DataFrame({...}) | 列を指定して新しい表を作る |
.to_csv("ファイル名", index=False) | CSVファイルとして保存。index=False で余計な列を付けない |
ファイルはどこに保存された?
/kaggle/working/submission.csv です。これはKaggleのサーバー上の、あなた専用の作業フォルダです。
| 場所 | 用途 | 書き込み |
|---|---|---|
/kaggle/input/ | 配布データ | ✕ できない |
/kaggle/working/ | 自分の作業場所 | ◯ できる |
ファイル名だけ書いた場合は、自動的に /kaggle/working/ に保存されます。
✅ ここまでできたら
次のステップで、ついに提出します。