ステップ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()

✅ こう出れば成功

PassengerIdSurvived
08920
18931
28940
38950
48961

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/ に保存されます。


✅ ここまでできたら

次のステップで、ついに提出します。