#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())
Pclass | Sex | Age | SibSp | Parch | Fare | Embarked_C | Embarked_Q | Embarked_S | Embarked_nan | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 3 | 1 | 22.0 | 1 | 0 | 7.2500 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 38.0 | 1 | 0 | 71.2833 | 1 | 0 | 0 | 0 |
2 | 3 | 0 | 26.0 | 0 | 0 | 7.9250 | 0 | 0 | 1 | 0 |
3 | 1 | 0 | 35.0 | 1 | 0 | 53.1000 | 0 | 0 | 1 | 0 |
4 | 3 | 1 | 35.0 | 0 | 0 | 8.0500 | 0 | 0 | 1 | 0 |
0 0 1 1 2 1 3 1 4 0 Name: Survived, dtype: int64
- dropで列を指定して落とす場合には必ず
axis=1
が要ります - 表形式のデータは
display
という関数で出力しないと,見づらくなります
モデリング
#ライブラリの宣言をします
from sklearn.ensemble import RandomForestClassifier
sklearn
のensemble
というモジュール群から,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_titanic
とy_titanic
を入れました.
【注意】
model.fit
関数は(説明変数,目的変数)の順でないといけないので注意してください.
これで学習は終了です.簡単ですね
ではどんな予測をしたのでしょうか.
#予測を出します
print(model.predict(X_titanic))
model.predict(予測させる説明変数)
とやると予測値を出すことができます.- これは説明変数だけでいいです.
予測値の羅列を見ても困りますね.簡単にどのくらいの精度なのか見てみましょう.
#モデルの精度を出します
print(model.score(X_titanic,y_titanic))
model.score(説明変数,目的変数)
とやると,精度(正解率)を出すことができます.
0.93程度出ていたら完成です!
コメント