hirobiroshi’s blog

アラフォーSEの備忘録

Kaggle少し修正

以下、AIの指摘に従い、特徴量対象項目を増やしたら前回よりはスコアが上がった。

仮説としては有効な特徴量を持つ項目を絞れば、よりスコアが上がるということですね。

 

#説明変数(特徴量)と目的変数を設定
# 2025/09/26 デフォルト以下の為、特徴量対象項目を変更
# features = ['Pclass','Sex','Age']
features = ['Pclass','Sex','Age','SibSp','Parch','Fare']

import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier #データ読込 train = pd.read_csv('../input/titanic/train.csv') test = pd.read_csv('../input/titanic/test.csv') #データ属性表示 #print(train.info()) # 複数列を選択する場合はリストで指定 x_train = train[["Pclass","Fare"]] print(x_train.shape) #前処理 #性別を数値化(male:0,female:1) train['Sex'] = train['Sex'].map({'male':0, 'female':1}) test['Sex'] = test['Sex'].map({'male':0, 'female':1}) #欠損値を埋める(AgeとFareを中央値で埋める) print('処理前の欠損数') print(train.isnull().sum()) # Age列の欠損値が中央値で補完されているか確認 print(test['Age'].isnull().sum()) # Age列の欠損値が中央値で補完されているか確認 train['Age'] = train['Age'].fillna(train['Age'].median()) test['Age'] = test['Age'].fillna(test['Age'].median()) test['Fare'] = test['Fare'].fillna(test['Fare'].median()) print('処理後の欠損数') print(train.isnull().sum()) # Age列の欠損値が中央値で補完されているか確認 print(test['Age'].isnull().sum()) # Age列の欠損値が中央値で補完されているか確認 #説明変数(特徴量)と目的変数を設定 # 2025/09/26 デフォルト以下の為、特徴量対象項目を変更 # features = ['Pclass','Sex','Age'] features = ['Pclass','Sex','Age','SibSp','Parch','Fare'] X = train[features] y = train['Survived'] #モデル学習 model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X, y) #予測 X_test = test[features] predictions = model.predict(X_test) #提出用ファイル作成 output = pd.DataFrame({ 'PassengerId': test.PassengerId, 'Survived': predictions }) output.to_csv('submission.csv', index=False) print("submission.csv出力完了しました!")