1. 程式人生 > >隨機森林演算法實現泰坦尼克號生存人數預測

隨機森林演算法實現泰坦尼克號生存人數預測

from sklearn.feature_extraction import DictVectorizer
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
網址可以直接複製
data = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt")
取特徵值
x = data[['pclass','age','sex']]
取目標值
y = data[['survived']]
x['age'].fillna(x['age'].mean(),axis=0,inplace=True)
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2)

x_train = x_train.to_dict(orient='records')     # 加了orient="records"  以行操作
x_test = x_test.to_dict(orient='records')

from sklearn.feature_extraction import DictVectorizer
decv = DictVectorizer()
x_train = decv.fit_transform(x_train)
x_test = decv.transform(x_test)

rf = RandomForestClassifier(n_estimators=10)    # max_depth=10最大樹深,
rf_model = rf.fit(x_train,y_train)
y_pred = rf.predict(x_test)
score = rf.score(x_test,y_test)
print(score)

# 列印報告
from sklearn.metrics import classification_report
print(classification_report(y_true=y_test,y_pred=y_pred))