python機器學習之用隨機森林處理鐵達尼號資料

2021-10-06 11:31:02 字數 2252 閱讀 1829

隨機森林是整合方法的一種。

整合方法指的是用多個分類器進行組合而成的方法。

隨機森林是用多個決策樹組合起來的方法。

兩個隨機:

1.訓練集隨機:n個樣本中隨機有放回的出去n個。

2.特徵隨機:從m個特徵中隨機抽取m個特徵, 其中m>>m。

這相當於一種降維方法。

優點:1、具有極好的準確率,會比用到的單一的分類器效果要好。

2、適合在大資料集,處理高維特徵,不需要降維。

python **為:

首先需要引入隨機森林庫以及用到的所需要的庫:

from sklearn.ensemble import randomforestclassifier
from sklearn.feature_extraction import dictvectorizer
from sklearn.model_selection import gridsearchcv
from sklearn.model_selection import train_test_split
定義函式randforest():

def randforest():

path = "e:\data\\titanic.csv"

titanic = pd.read_csv(path)

# print("type(titanic):",type(titanic))

# 1.處理特徵值和目標值

x = titanic[["pclass", "age", "***"]]

# print(x)

y = titanic["survived"]

# print(y)

# print("x1:",x,type(x))

# 2.特徵值處理

# (1)缺失值處理

x["age"].fillna(x["age"].mean(), inplace=true)

# print("x2:", x)

# #(2)轉化成字典

x = x.to_dict(orient="records")

# print("x3:", x)

# #3.資料集劃分

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22)

# print(x_train)

# #4.字典特徵抽取

transfer = dictvectorizer()

x_train = transfer.fit_transform(x_train)

x_test = transfer.transform(x_test)

#5.隨機森林 網格搜尋

estimator=randomforestclassifier() #在此處與決策樹不同,此處用的隨機森林。

param_dict = #n_estimators 表示樹的數量

estimator = gridsearchcv(estimator, param_grid=param_dict, cv=3)

estimator.fit(x_train, y_train)

# 5.模型評估

# 1.直接比對

y_predict = estimator.predict(x_test)

print("y_predict:\n", y_predict)

print("直接比對真實值和**值:\n", y_test == y_predict)

# 2.計算準確率

score = estimator.score(x_test, y_test)

print("準確率為:\n", score)

# 最佳引數:best_params_

print("最佳引數:\n", estimator.best_params_)

# 最佳結果:best_score_

print("最佳結果:\n", estimator.best_score_)

# 最佳估計器:best_estimator_

print("最佳估計器:\n", estimator.best_estimator_)

# 交叉驗證結果:cv_results_

print("交叉驗證結果:\n", estimator.cv_results_)

return none

機器學習面試題之adaboost和隨機森林的區別

首先明確乙個大方向 強可學習和弱可學習是等價的。所以,弱可學習方法可以提公升為強可學習方法。adaboost最具代表性。對於提公升方法,有兩個問題需要回答 adaboost的做法 不改變所給的訓練資料,而不斷改變訓練資料權值的分布,使得訓練資料在基本分類器的學習中起不同的作用,這就是adaboost...

python實現機器學習之隨機森林

這 幾天一直在看隨機森林。可以說遇到任何乙個有關 的問題。都可以首先隨機森林來進行 同時得到的結果也不會太差。在這篇文章裡我首先會向大家推薦幾篇寫的比較好的部落格。接著會將我覺得比較好的例子使用python scikit learn包來實現出來。首先推薦的就是 隨機森林入門 簡化版 老外寫的部落格,...

機器學習 隨機森林及python實現

隨機森林演算法流程 使用python實現隨機森林 想要知道什麼是隨機森林,我們需要知道bagging bagging 是 bootstrap aggregating 的英文縮寫,剛接觸的童鞋不要誤認為 bagging 是一種演算法,bagging 和 boosting 都是整合學習中的學習框架,代表...