目次
numpy・pandas・seaborn・sklearnのインストール
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
ファイルの読み込み方
df = pd.read_csv("train.csv")
特定の列の落とし方
df=df.drop(columns="Survived")
男女性別から数値への入れ替え方
df['Sex'] = df['Sex'].map( {'female': 1, 'male': 0} )
特定の要素確認
sns.barplot(x='Survived', y='Fare', data=df)
数値データをYes,Noに書き換え
df_fare=df.Fare >= 25
表を合成
result = pd.concat([result, df_fare], axis=1).reindex(df.index)
特定の文字列を抽出し列保存
df_cabin=(result['Cabin'].str[:1])
列名変換
df_cabin = df_cabin.rename('cabin_alph')
欠損データをゼロにする
df.fillna(0)
strをfloatに変換
# cabin_alph を 0, 1, 2... という数字に変換する
# (A=0, B=1, ... とアルファベット順に番号を振る方法)
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
result['cabin_alph'] = le.fit_transform(result['cabin_alph'].astype(str))
# cabin_num も数字(float)に変える
# もし空欄や変な文字があってエラーが出るなら、errors='coerce'で強制変換して欠損値にする
result['cabin_num'] = pd.to_numeric(result['cabin_num'], errors='coerce').fillna(0)
RandomForestClassifierの実装
model = RandomForestClassifier(max_depth=2, random_state=0)
model.fit(result, df_answer)
model.score(result, df_answer)
predictions = model.predict(test_result)
csvファイルに出力
# 3. 予測を実行する
# 学習済みの model を使い、本番用データ test_result の答えを出す
predictions = model.predict(test_result)
# 4. 提出用のデータフレームを作成する
# テストデータの ID と、予測した生存フラグをセットにする
output = pd.DataFrame({
'PassengerId': df_test['PassengerId'],
'Survived': predictions
})
# 5. CSVファイルとして保存する
# index=False を付けないと余計な列が増えてエラーになるので注意!
output.to_csv('submission.csv', index=False)
print("提出用ファイル 'submission.csv' が完成しました!")
