ゴール
予測結果をKaggleで提出する
やったこと
- 加工済みデータをテストデータと学習データに分割
- Survivedが空値 = テストデータの条件で分割
- テストデータと学習データをそれぞれ新しい変数に格納
- 学習データを特徴量と回答に分割
- X_train, y_trainの変数にそれぞれ格納
y_train = train.Survived
X_train = train.drop(columns = ['Survived'])
- 配列を表すときは大文字なのでXは大文字にするのが通例らしい
- X_train, y_trainの変数にそれぞれ格納
- 機械学習モデルを扱うためのライブラリインポート
- ライブラリScikit-Learnを使う
- 今回は決定木モデルのみなので
from sklearn import tree
- 使用するモデルの宣言
model = tree.DecisionTreeClassifier()
-
()
にはオプションの引数をセットできるが今回は無し
- 決定木モデルの作成
- model.fitメソッドで学習データを引数として渡す
model.fit(X_train, y_train)
- model.fitメソッドで学習データを引数として渡す
- テストデータを渡して予測結果を得る
y_pred = model.predict(test)
- テストデータと予測結果の大きさをチェック
- lenを使う
len(test), len(y_pred)
- lenを使う
- 予測結果をテストデータに反映する
test['Survived'] = y_pred
- Kaggle提出用のデータを作成する
- Kaggleで提出フォーマットを確認する
- フォーマットに合わせてindexを指定したテーブルを作成する
pred_df = test[['PassengerId','Survived']].set_index('PassengerId')
- 提出フォーマットとデータ型が違う場合はastypeメソッドで変換する
pred_df.Survived = pred_df.Survived.astype(int)
- 提出用CSVファイルの作成
- to_csvメソッドを使ってCSVファイルを作成
-
pred_df.to_csv('submission_v1.csv', index_label=['PassengerId'])
- ダウンロードしてKaggleのSumit Predictionから提出
一旦データ加工〜予測結果提出までできたんだが後はひたすら課題にトライしてみるかなぁ
KaggleのDiscussions覗いてみるのもいいらしい