モデリング 機械学習

#pandasのインポート
import pandas as pd

#データの読み込み
titanic = pd.read_csv('titanic.csv')
breast = pd.read_csv("breast_cancer.csv")
display(titanic.head())
  • データフレーム.head()とすると最初の五行を見ることができる
  • display(データフレーム)とすると表をきれいに出力することができる

簡単に数行を表すとこのようなデータです.
このデータで予測したいもの,つまり目的変数Survived列です.
そしてそれ以外の列が説明変数になります.

#データを説明変数Xと目的変数に分ける.
X_titanic = titanic.drop("Survived",axis=1)
      データフレーム名.drop("消したい変数", axis=1 列を消すとき)
y_titanic = titanic["Survived"]

#実際にそうなっているか確認する
display(X_titanic.head())
print(y_titanic.head())
PclassSexAgeSibSpParchFareEmbarked_CEmbarked_QEmbarked_SEmbarked_nan
03122.0107.25000010
11038.01071.28331000
23026.0007.92500010
31035.01053.10000010
43135.0008.05000010
0    0
1    1
2    1
3    1
4    0
Name: Survived, dtype: int64
  • dropで列を指定して落とす場合には必ずaxis=1が要ります
  • 表形式のデータはdisplayという関数で出力しないと,見づらくなります

モデリング

#ライブラリの宣言をします
from sklearn.ensemble import RandomForestClassifier
  • sklearnensembleというモジュール群から,RandomForestClassifierというものを取り出してきました.これで,以降はいきなりRandomForestClassifierという関数を使えるようになりました.

【注意】
Classifier(分類)とRegressor(回帰)があるので,注意してください.今回は分類なので,Classifierを使います.

# モデルを定義して,学習させます.
model = RandomForestClassifier(n_estimators=3,random_state=0)
model.fit(X_titanic,y_titanic)
RandomForestClassifier(n_estimators=3, random_state=0)
  • modelという変数に,アルゴリズム名であるRandomForestClassifierをいれました.
  • RandomForestClassifierにはオプションで設定ができるためn_estimators=3,random_state=0としました.
  • model.fit(X,y)とやると学習できます.
  • その関数に,今回扱うX_titanicy_titanicを入れました.

【注意】

  • model.fit関数は(説明変数,目的変数)の順でないといけないので注意してください.

これで学習は終了です.簡単ですね
ではどんな予測をしたのでしょうか.

#予測を出します
print(model.predict(X_titanic))
  • model.predict(予測させる説明変数)とやると予測値を出すことができます.
  • これは説明変数だけでいいです.

予測値の羅列を見ても困りますね.簡単にどのくらいの精度なのか見てみましょう.

#モデルの精度を出します
print(model.score(X_titanic,y_titanic))
  • model.score(説明変数,目的変数)とやると,精度(正解率)を出すことができます.

0.93程度出ていたら完成です!

コメント

タイトルとURLをコピーしました