Kaggleでチュートリアルコンペ以外のコンペに参加しました。
Titanic以外のコンペを探すところからコンペ参加までの流れを書いておきます。
Titanic以外のコンペを探す
Titanic以外のコンペを探します。
下記の記事を参考にしました。
コンペが、Kaggle初心者向けにわかりやすくまとめられています。
この記事では、Titanicと同じ二値分類のコンペとして、Tabular Playground Series - Apr 2021、Home Credit Default Risk、Porto Seguro’s Safe Driver Predictionが紹介されていました。
今回は、Tabular Playground Series - Apr 2021に参加することにしました。
Tabular Playground Series - Apr 2021
Overviewタブには、このコンペのデータセットは、Titanicに基づいて生成されたことが書いてあります。
Titanicではtrainデータが891行、testデータが418行であるのに対し、このコンペではtrainデータが100000行、testデータが100000行と、このコンペのほうがデータサイズが大きいようです。
CodeタブからNew Notebookボタンをクリックし、新しいノートブックを作成しました。
upuraさんのTitanicのノートブックを参考にしました。
コードを以下に記載します。
# NumPyとpandasのインポート
import numpy as np
import pandas as pd
# データの読み込み
train = pd.read_csv("/kaggle/input/tabular-playground-series-apr-2021/train.csv")
test = pd.read_csv("/kaggle/input/tabular-playground-series-apr-2021/test.csv")
sample_submission = pd.read_csv("/kaggle/input/tabular-playground-series-apr-2021/sample_submission.csv")
# trainとtestの連結
data = pd.concat([train, test], sort=False)
# 欠損値の確認
data.isnull().sum()
# データ前処理
# Sex
data['Sex'].replace(['male','female'], [0, 1], inplace=True)
# Fare
data['Fare'].fillna(np.mean(data['Fare']), inplace=True)
# Embarked
data['Embarked'].fillna(('S'), inplace=True)
data['Embarked'] = data['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)
# age
data['Age'].fillna(data['Age'].median(), inplace=True)
# Age、PassengerId、Name、Ticket、Cabinの削除
delete_columns = ['Age', 'PassengerId', 'Name', 'Ticket', 'Cabin']
data.drop(delete_columns, axis=1, inplace=True)
# 学習データとテストデータの抽出
train = data[:len(train)]
test = data[len(train):]
y_train = train['Survived']
X_train = train.drop('Survived', axis = 1)
X_test = test.drop('Survived', axis = 1)
# 機械学習
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(max_iter=1000)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
clf.score(X_train, y_train)
スコアは0.75825でした。
# 提出
sub = sample_submission
sub['Survived'] = list(map(int, y_pred))
sub.to_csv("submission.csv", index=False)
Public Scoreが0.79817になりました。
このコンペは、2021年に終了しているためLeaderboardタブに順位は載りませんが、Titanicの次のコンペを探している方にちょうどよいと思います。
次はTitanicやTabular Playground Series - Apr 2021のスコアを上げたいです。
また、他のコンペに参加したいです。