隨機森林是bagging演算法的典型代表,所謂bagging演算法也即隨機有放回抽取部分樣本進行平行測試,輸出平行結果,以少數服從多數原則或者平均原則確定最終結果。
與bagging演算法相對的就是boosting演算法,boosting演算法是一種梯度演算法。其以基評估器為基礎,對評估存在錯誤的樣本給予更高的權重進行下一層評估由此進行迭代。最終由乙個弱學習組合成強學習。其重要代表有adaboost,梯度提公升樹。
隨機森林是一片決策樹的森林,在多顆決策樹的基礎上進行分類解決了決策樹本身泛化能力弱的問題。每一顆決策樹都是在總體基礎上選擇固定數量的樣本集固定數量的特徵集
n_estimate是決定隨機森林決策樹數量的引數;通常情況其引數值越大模型效果越好,但到達一定程度後,模型精確性卻不再上公升。
from sklearn.tree import decisiontreeclassifier
from sklearn.ensemble import randomforestclassifier
from sklearn.datasets import load_wine
wine = load_wine(
)wine.data
wine.target
from sklearn.model_selection import train_test_split
xtrain, xtest, ytrain, ytest = train_test_split(wine.data,wine.target,test_size=
0.3)
clf=decisiontreeclassifier(random_state=0)
rfc=randomforestclassifier(random_state=0)
clf = clf.fit(xtrain,ytrain)
rfc = rfc.fit(xtrain,ytrain)
score_c = clf.score(xtest,ytest)
score_r = rfc.score(xtest,ytest)
關於選擇最優引數的問題使用sklearn的cross_val_score進行交叉驗證
1:交叉驗證用於評估模型的**效能,尤其是訓練好的模型在新資料上的表現,可以在一定程度上減小過擬合。
2:還可以從有限的資料中獲取盡可能多的有效資訊。
rfc_1=
clf_1=
for i in
range(10
):rfc = randomforestclassifier(n_estimators=25)
rfc_s = cross_val_score(rfc,wine.data,wine.target,cv=10)
.mean(
) clf = decisiontreeclassifier(
) clf_s = cross_val_score(clf,wine.data,wine.target,cv=10)
.mean(
) plt.plot(
range(1
,11),rfc_l,label =
"random forest"
)plt.plot(
range(1
,11),clf_l,label =
"decision tree"
)plt.legend(
)plt.show(
)
資料分析隨機漫步
from random import choice import matplotlib.pyplot as plt class randonmwalk 乙個生成隨機漫步資料的類 def init self,num points 5000 初始化隨機漫步的屬性 self.num points num ...
隨機森林隨機 三
2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...
資料分析 資料分析概述
了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...