機械学習の構文メモ

すけさん

ブロガー

すけさん

・パイロットをめざすアラサー
・国家資格「航空無線通信士」は取得済み
・訓練費用を副業ブログで荒稼ぎ中!

執筆者
目次

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' が完成しました!")
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次