0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita全国学生対抗戦Advent Calendar 2023

Day 4

Kaggleでチュートリアルコンペ以外のコンペに参加した

Last updated at Posted at 2023-12-03

Kaggleでチュートリアルコンペ以外のコンペに参加しました。
Titanic以外のコンペを探すところからコンペ参加までの流れを書いておきます。

Titanic以外のコンペを探す

Titanic以外のコンペを探します。
下記の記事を参考にしました。

コンペが、Kaggle初心者向けにわかりやすくまとめられています。
この記事では、Titanicと同じ二値分類のコンペとして、Tabular Playground Series - Apr 2021Home Credit Default RiskPorto 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のスコアを上げたいです。
また、他のコンペに参加したいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?