作業(yè)四
- 什么是bootstraps湖苞?
??在統(tǒng)計學中巴帮,Bootstrap法具體是指用原樣本自身的數(shù)據(jù)抽樣得出新的樣本及統(tǒng)計量邢享。是一種有放回的抽樣方法.它是一類非參數(shù)Monte Carlo方法,其實質是對觀測信息進行再抽樣侨赡,進而對總體的分布特性進行統(tǒng)計推斷摇庙。
其核心思想和基本步驟如下:
(1) 采用重抽樣技術從原始樣本中抽取一定數(shù)量(自己給定)的樣本颤介,此過程允許重復抽樣梳星。
(2) 根據(jù)抽出的樣本計算給定的統(tǒng)計量T滚朵。
≡┰帧(3) 重復上述N次(一般大于1000),得到N個統(tǒng)計量T辕近。
≡隙帧(4) 計算上述N個統(tǒng)計量T的樣本方差,得到統(tǒng)計量的方差移宅。
- 什么是bootstraps湖苞?
- bootstraps與bagging的聯(lián)系
??Bagging采用均勻取樣归粉,而Boosting根據(jù)錯誤率來取樣,因此Boosting的分類精度要優(yōu)于Bagging漏峰。Bagging的訓練集的選擇是隨機的糠悼,各輪訓練集之間相互獨立,而Boostlng的各輪訓練集的選擇與前面各輪的學習結果有關浅乔;Bagging的各個預測函數(shù)沒有權重倔喂,而Boosting是有權重的;Bagging的各個預測函數(shù)可以并行生成靖苇,而Boosting的各個預測函數(shù)只能順序生成(串行)席噩。對于象神經(jīng)網(wǎng)絡這樣極為耗時的學習方法。Bagging可通過并行訓練節(jié)省大量時間開銷贤壁。
- bootstraps與bagging的聯(lián)系
- 什么是bagging悼枢?
??機器學習集成算法中的Bagging裝袋算法就是基于bootstrap的一種算法,它其實和袋子沒有什么關系脾拆,這么叫只是為了好聽順口和便于記憶馒索,它的全稱是Bootstrap aggregating自助聚合算法。所以看過本篇文章的你在以后再次看到Bagging時名船,希望你能在頭腦中能立刻反應出:Bagging中打頭的B代表Bootstrap--自助法绰上,后面的agging代表aggregating--聚合,連起來就是“自助聚合算法”包帚。
??bagging讓該學習算法訓練多輪,每輪的訓練集由從初始的訓練集中隨機取出的n個訓練樣本組成运吓,某個初始訓練樣本在某輪訓練集中可以出現(xiàn)多次或根本不出現(xiàn)渴邦,訓練之后可得到一個預測函數(shù)序列h1疯趟,??hn , 最終的預測函數(shù)H對分類問題采用投票方式,對回歸問題采用簡單平均方法對新示例進行判別谋梭。
- 什么是bagging悼枢?
- 隨機森林與bagging的聯(lián)系與區(qū)別信峻。
??隨機森林是對裝袋法的一種改進,隨機森林也需要對自助抽樣訓練集建立一系列的決策樹瓮床,這和決策樹類似盹舞。不過,隨機森林在建立樹的時候隘庄,不和裝袋法一樣踢步,裝袋法建樹的時候是將所有預測變量都考慮進去,而隨機森林則是考慮每一個分裂點時丑掺,都是從所有的預測變量p中隨機選取m個預測變量获印,分裂點所用的預測變量只能從這m個變量中選擇。在每個分裂點處都重新進行抽樣街州,選出m個預測變量兼丰,通常m≈√p,對每一個分裂點來說唆缴,這個算法將大部分可用預測變量排除在外鳍征,雖然聽起來crazy,但是這個原理是很巧妙的。
??其實當隨機森林中的m=p時面徽,隨機森林和裝袋法是一樣的艳丛。隨機森林考慮每個分裂點的子集相對來說比裝袋法少很多。這樣得到的樹的平均值有更小的方差斗忌,因而樹的可信度相對來說比較高质礼。
- 隨機森林與bagging的聯(lián)系與區(qū)別信峻。
- 使用偏差與方差理論闡述為什么bagging能提升模型的預測精度?
??bagging基模型為弱模型织阳,導致了每個基模型的準確度都不是很高(因為其在訓練集上的準確度不高)眶蕉。隨著基模型數(shù)的增多,整體模型的期望值增加唧躲,更接近真實值造挽,因此,整體模型的準確度提高弄痹。但是準確度一定會無限逼近于1嗎饭入?仍然并不一定,因為訓練過程中準確度的提高的主要功臣是整體模型在訓練集上的準確度提高肛真,而隨著訓練的進行谐丢,整體模型的方差變大,導致防止過擬合的能力變弱,最終導致了準確度反而有所下降乾忱。
基于boosting框架的Gradient Tree Boosting模型中基模型也為樹模型讥珍,同Random Forrest窄瘟,我們也可以對特征進行隨機抽樣來使基模型間的相關性降低衷佃,從而達到減少方差的效果。
- 使用偏差與方差理論闡述為什么bagging能提升模型的預測精度?
- 請嘗試使用bagging與基本分類模型或者回歸模型做對比蹄葱,觀察bagging是否相對于基礎模型的精度有所提高
# 使用scikit中自帶的衛(wèi)星數(shù)據(jù)
moons = make_moons(n_samples=20000)
# 邏輯回歸分類器
log_clf = LogisticRegression()
# 隨機森林分類器
rnd_clf = RandomForestClassifier()
# 支持向量機分類器
svm_clf = SVC(probability=True)
# 集成以上3種分類器的投票分類器
voting_clf = VotingClassifier(
estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
voting='soft'
)
# 分別輸出 邏輯回歸,隨機森林,svm,投票分類器的準確率
for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)
print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
out:
LogisticRegression 0.891
RandomForestClassifier 1.0
SVC 1.0
VotingClassifier 1.0
# bagging 實現(xiàn)
bag_clf = BaggingClassifier(
DecisionTreeClassifier(), n_estimators=500, max_samples=100,
bootstrap=True, n_jobs=-1, random_state=42
)
- 假如讓你來實現(xiàn)bagging氏义,你會使用python+numpy+sklearn的基礎模型來實現(xiàn)bagging嗎?
refer
機器學習中的bootstrap到底是什么图云? - 知乎 (zhihu.com)
bootstrap, boosting, bagging 幾種方法的聯(lián)系 - 合唱團abc - 博客園 (cnblogs.com)
裝袋法(bagging)和隨機森林(random forests)的區(qū)別_CrazyDylan的博客-CSDN博客
Bagging和Boosting(偏差與方差)_Black eyes的博客-CSDN博客_bagging方差
為什么說bagging是減少variance惯悠,而boosting是減少bias? - 知乎 (zhihu.com)
bagging與boosting兩種集成模型的偏差bias以及方差variance 的理解_Michael_Shentu的博客-CSDN博客_bagging boosting偏差方差
基于sklearn實現(xiàn)Bagging算法(python)_little_yan的博客-CSDN博客
機器學習分類—svm+bagging(sklearn)_蛙子的博客-CSDN博客
集成學習 (投票分類器 & bagging/pasting & RandomForest & Boosting)_soullines的博客-CSDN博客_bagging投票