隨機森林演算法實現泰坦尼克號生存人數預測
阿新 • • 發佈:2019-02-13
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))