このノートブックファイル 1_spaceship-titanic/spaceship-titanic-competition-end-to-end-project.ipynb は、Spaceship Titanic データセットを使用したバイナリ分類のための Kaggle コンペティションの包括的なガイドを含んでいます。以下に、内容の詳細な説明を示します。
このプロジェクトの目的は、データセットで提供されるさまざまな特徴を使用して、乗客が別の次元に輸送されるかどうかを予測することです。
- データの基本的な理解: データセットの構造と特徴の概要。
- 探索的データ分析 (EDA): データの分布と関係を理解するための視覚化と統計分析。
- 特徴エンジニアリング: モデルのパフォーマンスを向上させるために、既存の特徴から新しい特徴を作成する。
- データ前処理: 欠損値の処理、カテゴリ変数のエンコーディング、数値特徴のスケーリング。
- モデル構築: 様々な機械学習モデルの実装。
- モデルのパフォーマンスチェック: 精度、適合率、再現率、F1 スコアなどのメトリクスを使用してモデルのパフォーマンスを評価する。
- モデルのハイパーパラメータ調整: モデルのパフォーマンスを向上させるためにハイパーパラメータを最適化する。
- 最適なモデルを使用してテストデータを予測する: 最もパフォーマンスの良いモデルを使用してテストデータセットを予測する。
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline
sns.set(style="darkgrid",font_scale=1.5)
pd.set_option("display.max.rows",None)
pd.set_option("display.max.columns",None)
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier, AdaBoostClassifier, StackingClassifier
from xgboost import XGBClassifier
from catboost import CatBoostClassifier
from lightgbm import LGBMClassifier
from sklearn.impute import SimpleImputer
from sklearn.model_selection import train_test_split, GridSearchCV, RandomizedSearchCV
from sklearn.metrics import accuracy_score, f1_score, recall_score, precision_score, confusion_matrix
from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler, MinMaxScaler
from imblearn.over_sampling import SMOTEtrain_df = pd.read_csv("/kaggle/input/spaceship-titanic/train.csv")
test_df = pd.read_csv("/kaggle/input/spaceship-titanic/test.csv")- PassengerId: 各乗客の一意の識別子。
- HomePlanet: 出発した惑星。
- CryoSleep: 乗客がサスペンデッドアニメーションに入っているかどうかを示す。
- Cabin: キャビン番号。
- Destination: 目的地の惑星。
- Age: 乗客の年齢。
- VIP: 乗客がVIPサービスを支払ったかどうか。
- RoomService, FoodCourt, ShoppingMall, Spa, VRDeck: 各アメニティで請求された金額。
- Name: 乗客の名前。
- Transported: 乗客が輸送されたかどうかを示すターゲット変数。
- 次元の確認: トレーニングデータセットとテストデータセットの形状。
- データの表示: データセットの最初の数行を表示する。
- 重複の確認: 重複エントリがないことを確認する。
- データ型の確認: 特徴のデータ型を特定する。
- 欠損値の確認: 欠損値を特定し、適切に処理する。
- ターゲット特徴の視覚化:
Transported特徴の分布。 - 年齢特徴の視覚化:
Age特徴の分布。 - 支出特徴の視覚化: 支出特徴の分布。
- カテゴリ特徴の視覚化: カテゴリ特徴の分布。
- 新しい特徴の作成:
PassengerId,Cabin,Age, 支出特徴から新しい特徴を作成する。 - 新しい特徴の視覚化: 新しく作成された特徴を視覚化する。
- 欠損値の処理: 適切な戦略を使用して欠損値を埋める。
- 重複の確認: 重複エントリがないことを確認する。
- カーディナリティの確認: 高カーディナリティ特徴を特定する。
- 特徴のスケーリング: 数値特徴をスケーリングする。
- 特徴のエンコーディング: カテゴリ特徴をエンコードする。
- モデルのトレーニング: 様々なモデルをトレーニングし、そのパフォーマンスを評価する。
- ハイパーパラメータの調整: GridSearchCV を使用して最適なモデルのパフォーマンスを向上させる。
- スタッキングアンサンブル: 複数のモデルを組み合わせてパフォーマンスを向上させる。
- 予測: 最もパフォーマンスの良いモデルを使用してテストデータセットを予測する。
- 提出形式: 必要な形式で提出ファイルを準備する。
- 要約: プロジェクトの主要なポイントと見出しを要約する。
- フィードバック: 改善のためのフィードバックと提案を求める。
ノートブックには、データをよりよく理解するためのさまざまな視覚化が含まれています。例えば:
- 円グラフ:
Transported特徴の分布。 - ヒストグラム:
Age特徴の分布。 - ヒートマップ: モデル評価のための混同行列。
- 棒グラフ: モデルパフォーマンスの比較。
ノートブックは、複数のモデルを評価し、最もパフォーマンスの良いモデルを選択します。評価されたモデルには以下が含まれます:
- ロジスティック回帰
- KNeighborsClassifier
- サポートベクターマシン
- ナイーブベイズ
- 決定木分類器
- ランダムフォレスト分類器
- AdaBoost分類器
- 勾配ブースティング分類器
- LGBM分類器
- XGBoost分類器
- CatBoost分類器
ハイパーパラメータの調整は、GridSearchCV を使用して最適なモデルのパフォーマンスを向上させるために行われます。
スタッキングアンサンブルは、最もパフォーマンスの良いモデルの予測を組み合わせて、全体のパフォーマンスをさらに向上させるために使用されます。
ノートブックは、主要な見出しと改善のためのフィードバックを求めることで、プロジェクトの要約を締めくくります。