色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

隨機貼片與隨機子空間

lviY_AI_shequ ? 來源:未知 ? 作者:李倩 ? 2018-07-20 16:14 ? 次閱讀

隨機貼片與隨機子空間

BaggingClassifier也支持采樣特征。它被兩個超參數max_features和bootstrap_features控制。他們的工作方式和max_samples和bootstrap一樣,但這是對于特征采樣而不是實例采樣。因此,每一個分類器都會被在隨機的輸入特征內進行訓練。

當你在處理高維度輸入下(例如圖片)此方法尤其有效。對訓練實例和特征的采樣被叫做隨機貼片。保留了所有的訓練實例(例如bootstrap=False和max_samples=1.0),但是對特征采樣(bootstrap_features=True并且/或者max_features小于 1.0)叫做隨機子空間。

采樣特征導致更多的預測多樣性,用高偏差換低方差。

隨機森林

正如我們所討論的,隨機森林是決策樹的一種集成,通常是通過 bagging 方法(有時是 pasting 方法)進行訓練,通常用max_samples設置為訓練集的大小。與建立一個BaggingClassifier然后把它放入DecisionTreeClassifier相反,你可以使用更方便的也是對決策樹優化夠的RandomForestClassifier(對于回歸是RandomForestRegressor)。接下來的代碼訓練了帶有 500 個樹(每個被限制為 16 葉子結點)的決策森林,使用所有空閑的 CPU 核:

>>>from sklearn.ensemble import RandomForestClassifier>>>rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1) >>>rnd_clf.fit(X_train, y_train)>>>y_pred_rf = rnd_clf.predict(X_test)

除了一些例外,RandomForestClassifier使用DecisionTreeClassifier的所有超參數(決定數怎么生長),把BaggingClassifier的超參數加起來來控制集成本身。

隨機森林算法在樹生長時引入了額外的隨機;與在節點分裂時需要找到最好分裂特征相反(詳見第六章),它在一個隨機的特征集中找最好的特征。它導致了樹的差異性,并且再一次用高偏差換低方差,總的來說是一個更好的模型。以下是BaggingClassifier大致相當于之前的randomforestclassifier:

>>>bag_clf = BaggingClassifier(DecisionTreeClassifier(splitter="random", max_leaf_nodes=16),n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1)

極端隨機樹

當你在隨機森林上生長樹時,在每個結點分裂時只考慮隨機特征集上的特征(正如之前討論過的一樣)。相比于找到更好的特征我們可以通過使用對特征使用隨機閾值使樹更加隨機(像規則決策樹一樣)。

這種極端隨機的樹被簡稱為Extremely Randomized Trees(極端隨機樹),或者更簡單的稱為Extra-Tree。再一次用高偏差換低方差。它還使得Extra-Tree比規則的隨機森林更快地訓練,因為在每個節點上找到每個特征的最佳閾值是生長樹最耗時的任務之一。

你可以使用 sklearn 的ExtraTreesClassifier來創建一個Extra-Tree分類器。他的 API 跟RandomForestClassifier是相同的,相似的,ExtraTreesRegressor跟RandomForestRegressor也是相同的 API。

我們很難去分辨ExtraTreesClassifier和RandomForestClassifier到底哪個更好。通常情況下是通過交叉驗證來比較它們(使用網格搜索調整超參數)。

特征重要度

最后,如果你觀察一個單一決策樹,重要的特征會出現在更靠近根部的位置,而不重要的特征會經常出現在靠近葉子的位置。因此我們可以通過計算一個特征在森林的全部樹中出現的平均深度來預測特征的重要性。sklearn 在訓練后會自動計算每個特征的重要度。你可以通過feature_importances_變量來查看結果。例如如下代碼在 iris 數據集(第四章介紹)上訓練了一個RandomForestClassifier模型,然后輸出了每個特征的重要性。看來,最重要的特征是花瓣長度(44%)和寬度(42%),而萼片長度和寬度相對比較是不重要的(分別為 11% 和 2%):

>>> from sklearn.datasets import load_iris >>> iris = load_iris() >>> rnd_clf = RandomForestClassifier(n_estimators=500, n_jobs=-1) >>> rnd_clf.fit(iris["data"], iris["target"]) >>> for name, score in zip(iris["feature_names"], rnd_clf.feature_importances_): >>> print(name, score) sepal length (cm) 0.112492250999sepal width (cm) 0.0231192882825 petal length (cm) 0.441030464364 petal width (cm) 0.423357996355

相似的,如果你在 MNIST 數據及上訓練隨機森林分類器(在第三章上介紹),然后畫出每個像素的重要性,你可以得到圖 7-6 的圖片。

隨機森林可以非常方便快速得了解哪些特征實際上是重要的,特別是你需要進行特征選擇的時候。

提升

提升(Boosting,最初稱為假設增強)指的是可以將幾個弱學習者組合成強學習者的集成方法。對于大多數的提升方法的思想就是按順序去訓練分類器,每一個都要嘗試修正前面的分類。現如今已經有很多的提升方法了,但最著名的就是Adaboost(適應性提升,是Adaptive Boosting的簡稱) 和Gradient Boosting(梯度提升)。讓我們先從Adaboost說起。

Adaboost

使一個新的分類器去修正之前分類結果的方法就是對之前分類結果不對的訓練實例多加關注。這導致新的預測因子越來越多地聚焦于這種情況。這是Adaboost使用的技術。

舉個例子,去構建一個 Adaboost 分類器,第一個基分類器(例如一個決策樹)被訓練然后在訓練集上做預測,在誤分類訓練實例上的權重就增加了。第二個分類機使用更新過的權重然后再一次訓練,權重更新,以此類推(詳見圖 7-7)

圖 7-8 顯示連續五次預測的 moons 數據集的決策邊界(在本例中,每一個分類器都是高度正則化帶有 RBF 核的 SVM)。第一個分類器誤分類了很多實例,所以它們的權重被提升了。第二個分類器因此對這些誤分類的實例分類效果更好,以此類推。右邊的圖代表了除了學習率減半外(誤分類實例權重每次迭代上升一半)相同的預測序列。你可以看出,序列學習技術與梯度下降很相似,除了調整單個預測因子的參數以最小化代價函數之外,AdaBoost 增加了集合的預測器,逐漸使其更好。

一旦所有的分類器都被訓練后,除了分類器根據整個訓練集上的準確率被賦予的權重外,集成預測就非常像Bagging和Pasting了。

序列學習技術的一個重要的缺點就是:它不能被并行化(只能按步驟),因為每個分類器只能在之前的分類器已經被訓練和評價后再進行訓練。因此,它不像Bagging和Pasting一樣。

讓我們詳細看一下 Adaboost 算法。每一個實例的權重wi初始都被設為1/m第一個分類器被訓練,然后他的權重誤差率r1在訓練集上算出,詳見公式 7-1。

公式7-1:第j個分類器的權重誤差率

其中是第j個分類器對于第i實例的預測。

分類器的權重j 隨后用公式 7-2 計算出來。其中η是超參數學習率(默認為 1)。

分類器準確率越高,它的權重就越高。如果它只是瞎猜,那么它的權重會趨近于 0。然而,如果它總是出錯(比瞎猜的幾率都低),它的權重會使負數。

公式 7-2:分類器權重

接下來實例的權重會按照公式 7-3 更新:誤分類的實例權重會被提升。

公式7-3 權重更新規則

對于i=1, 2, ..., m

隨后所有實例的權重都被歸一化(例如被整除)

最后,一個新的分類器通過更新過的權重訓練,整個過程被重復(新的分類器權重被計算,實例的權重被更新,隨后另一個分類器被訓練,以此類推)。當規定的分類器數量達到或者最好的分類器被找到后算法就會停止。

為了進行預測,Adaboost 通過分類器權重j 簡單的計算了所有的分類器和權重。預測類別會是權重投票中主要的類別。(詳見公式 7-4)

公式7-4: Adaboost 分類器

其中N是分類器的數量。

sklearn 通常使用 Adaboost 的多分類版本SAMME(這就代表了分段加建模使用多類指數損失函數)。如果只有兩類別,那么SAMME是與 Adaboost 相同的。如果分類器可以預測類別概率(例如如果它們有predict_proba()),如果 sklearn 可以使用SAMME叫做SAMME.R的變量(R 代表“REAL”),這種依賴于類別概率的通常比依賴于分類器的更好。

接下來的代碼訓練了使用 sklearn 的AdaBoostClassifier基于 200 個決策樹樁 Adaboost 分類器(正如你說期待的,對于回歸也有AdaBoostRegressor)。一個決策樹樁是max_depth=1的決策樹-換句話說,是一個單一的決策節點加上兩個葉子結點。這就是AdaBoostClassifier的默認基分類器:

>>>from sklearn.ensemble import AdaBoostClassifier>>>ada_clf = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1), n_estimators=200,algorithm="SAMME.R", learning_rate=0.5) >>>ada_clf.fit(X_train, y_train)

如果你的 Adaboost 集成過擬合了訓練集,你可以嘗試減少基分類器的數量或者對基分類器使用更強的正則化。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 分類器
    +關注

    關注

    0

    文章

    152

    瀏覽量

    13179
  • 數據集
    +關注

    關注

    4

    文章

    1208

    瀏覽量

    24689
  • 決策樹
    +關注

    關注

    3

    文章

    96

    瀏覽量

    13548

原文標題:【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第7章 集成學習和隨機森林 (中)

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于while的隨機數的隨機曲線

    我想創建一個基于while的隨機數的隨機曲線——
    發表于 05-05 19:37

    隨機系列及編碼.ppt

    隨機系列及編碼11.1 偽隨機序列的概念 11.2 正交碼與偽隨機碼 11.3 偽隨機序列的產生 11.4 m序列 11.5 M序列 11.6 Gold序列 11.7 正交沃爾什函數
    發表于 10-22 13:24 ?0次下載

    CDMA偽隨機

    隨機碼又稱偽隨機序列,它是具有類似于隨機序列基本特性的確定序列。通常廣泛應用二進制序列,因此我們僅限于研究二進制序列。二進制獨立隨機序列在概率論中一般稱為
    發表于 06-18 13:55 ?5次下載

    應用隨機過程

    應用隨機過程是現代應用隨機過程教材,內容從入門知識到學術前沿,包括預備知識、隨機過程的基本類型、Poisson過程、更新過程、Markov鏈、鞅、Brown運動、隨機積分、
    發表于 03-19 08:47 ?0次下載

    隨機閃光的氖燈電路

    隨機閃光的氖燈電路
    發表于 01-17 23:18 ?818次閱讀
    <b class='flag-5'>隨機</b>閃光的氖燈電路

    隨機閃光的氖燈

    隨機閃光的氖燈
    發表于 04-21 11:30 ?1012次閱讀
    <b class='flag-5'>隨機</b>閃光的氖燈

    隨機硬盤容量

    隨機硬盤容量              隨機硬盤容量是指服務器出廠時標準配
    發表于 12-17 11:39 ?586次閱讀

    基于網絡表示學習與隨機游走的鏈路預測算法

    ,通過基于深度學習的網絡表示學習算法-DeepWalk學習網絡節點的潛在結構特征,將網絡中的各節點表征到低維向量空間;然后,在重啟隨機游走( RWR)和局部隨機游走(LRW)算法的隨機
    發表于 11-29 10:24 ?0次下載
    基于網絡表示學習與<b class='flag-5'>隨機</b>游走的鏈路預測算法

    最近鄰的隨機非線性降維

    針對線性降維技術應用于具有非線性結構的數據時無法得到令人滿意的結果的問題,提出一種新的著重于保持高維空間局部最近鄰信息的非線性隨機降維算法( NNSE)。該算法首先在高維空間中通過計算樣本點之間
    發表于 12-23 11:45 ?0次下載

    Python隨機數模塊的隨機函數使用

    隨機數在日常的應用開發中,使用的比較多,比如抽獎游戲,如果你不依靠隨機數,就會變的由規律,容易被人發現規律。比如我們的斗地主游戲,它的發牌程序也會隨機給每個人發牌,還有一些加密使用的也很廣泛,下面給大家分享下python中的
    的頭像 發表于 01-18 17:55 ?2378次閱讀
    Python<b class='flag-5'>隨機</b>數模塊的<b class='flag-5'>隨機</b>函數使用

    隨機顏色之與Alexa的隨機玩家游戲

    電子發燒友網站提供《開隨機顏色之與Alexa的隨機玩家游戲.zip》資料免費下載
    發表于 12-20 09:23 ?0次下載
    開<b class='flag-5'>隨機</b>顏色之與Alexa的<b class='flag-5'>隨機</b>玩家游戲

    簡述SystemVerilog的隨機約束方法

    上一篇文章介紹了SystemVerilog的各種隨機化方法,本文將在其基礎上引入SystemVerilog的隨機約束方法(constraints)。通過使用隨機約束,我們可以將隨機限制
    的頭像 發表于 01-21 17:03 ?2082次閱讀

    隨機數和真隨機數的區別是什么呢?

    隨機驗證中的隨機其實都是基于偽隨機發生器的,即每次都使用一個唯一的種子生成相應的激勵。
    的頭像 發表于 04-17 10:12 ?4398次閱讀

    SystemVerilog的隨機約束方法

    上一篇文章《暗藏玄機的SV隨機化》介紹了SystemVerilog的各種隨機化方法,本文將在其基礎上引入SystemVerilog的隨機約束方法(constraints)。通過使用隨機
    的頭像 發表于 09-24 12:15 ?1718次閱讀

    什么是隨機森林?隨機森林的工作原理

    隨機森林使用名為“bagging”的技術,通過數據集和特征的隨機自助抽樣樣本并行構建完整的決策樹。雖然決策樹基于一組固定的特征,而且經常過擬合,但隨機性對森林的成功至關重要。
    發表于 03-18 14:27 ?3558次閱讀
    什么是<b class='flag-5'>隨機</b>森林?<b class='flag-5'>隨機</b>森林的工作原理
    主站蜘蛛池模板: 玉娇龙续集春雪瓶txt免费阅读| 小sao货水好多真紧h的视频| 亚洲午夜精品AV无码少妇| qvod电影网| 久久精品国产首叶| 污文乖不疼的| 芭乐视频网页版在线观看| 久久久无码精品亚洲欧美| 香蕉在线播放| 成人欧美尽粗二区三区AV| 麻豆啊传媒app黄版破解免费| 亚洲不卡高清免v无码屋| 超碰最新地址| 免费撕开胸罩吮胸视频| 亚洲中文日韩日本在线视频| 国产精品搬运| 欧美精品AV无码一区二区| 中文无码不卡的岛国片国产片| 国产亚洲精品久久久999无毒| 青青草在线视频| 97免费视频在线观看| 久久久无码精品亚洲欧美| 亚洲午夜精品AV无码少妇 | 果冻传媒9CM在线观看| 少妇的肉体AA片免费| 国产盗摄一区二区三区| 欧美s00老人| YELLOW在线观看高清视频免费| 好色美女小雅| 性色AV一区二区三区咪爱四虎| 攻把受做得合不拢腿play| 强奷乱码中文字幕熟女免费| 99久久亚洲精品影院| 美女漏bb| 91久久精一区二区三区大全| 凌馨baby| 91热久久免费频精品99欧美| 久久久久久91香蕉国产| 诱人的女邻居9中文观看| 久见久热 这里只有精品| 夜夜躁日日躁狠狠|