Random Forest隨機森林概述

引言

在機器學習中,隨機森林由許多的決策樹組成,因為這些決策樹的形成采用了隨機的方法,因此也叫做隨機決策樹。隨機森林中的樹之間是沒有關聯的。當測試數據進入隨機森林時,其實就是讓每一顆決策樹進行分類,最后取所有決策樹中分類結果最多的那類為最終的結果。因此隨機森林是一個包含多個決策樹的分類器,并且其輸出的類別是由個別樹輸出的類別的眾數而定。隨機森林可以既可以處理屬性為離散值的量,如ID3算法,也可以處理屬性為連續值的量,比如C4.5算法。另外,隨機森林還可以用來進行無監督學習聚類和異常點檢測。

理論描述

隨機森林由決策樹組成,決策樹實際上是將空間用超平面進行劃分的一種方法,每次分割的時候,都將當前的空間一分為二,如說下面的決策樹,其屬性的值都是連續的實數,如圖1所示。將空間劃分為成的樣子如圖2所示(注:所使用圖片來自于網絡)。

?

圖1??????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?????????????? 圖2

隨機森林比較適合做多分類問題,訓練和預測速度快;同時,對訓練數據的容錯能力,是一種有效地估計缺失數據的一種方法,當數據集中有大比例的數據缺失時仍然可以保持精度不變和能夠有效地處理大的數據集;可以處理沒有刪減的成千上萬的變量;能夠在分類的過程中可以生成一個泛化誤差的內部無偏估計;能夠檢測到特征之間的相互影響以及重要性程度;不過出現過度擬合;實現簡單容易并行化。

RF生成過程

具體決策樹的生成過程如下所示:


其中關于信息增益這里就不作具體的介紹,反正信息增益越大,就說明那個屬性相對來說越重要。流程圖中的identical values?可以理解為是分類值,離散值,就是它本身不具備數值的意義,比如說顏色分為紅,綠,藍等,是人為給它標定的一個離散值而已。流程圖中的real values可以理解為連續的實數,也就是說屬性本身是具有數值的,比如說物體的長度,這就是一個real value,在進行這種連續值屬性構造決策數時,需要按照屬性值的范圍進行生成子節點。

RF構造過程

當可以生成好決策樹后,就比較容易生成隨機森林了。接下來是隨機森林的構造過程,如下所示:

第一、假如有N個樣本,則有放回的隨機選擇N個樣本(每次隨機選擇一個樣本,然后返回繼續選擇)。這選擇好了的N個樣本用來訓練一個決策樹,作為決策樹根節點處的樣本。

第二、當每個樣本有M個屬性時,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,滿足條件m << M。然后從這m個屬性中采用某種策略(比如說信息增益)來選擇1個屬性作為該節點的分裂屬性。

第三、決策樹形成過程中每個節點都要按照步驟2來分裂(很容易理解,如果下一次該節點選出來的那一個屬性是剛剛其父節點分裂時用過的屬性,則該節點已經達到了葉子節點,無須繼續分裂了)。一直到不能夠再分裂為止。注意整個決策樹形成過程中沒有進行剪枝。

最后、按照步驟1~3建立大量的決策樹,這樣就構成了隨機森林了。

從上面的步驟可以看出,隨機森林的隨機性體現在每顆數的訓練樣本是隨機的,樹中每個節點的分類屬性也是隨機選擇的。有了這2個隨機的保證,隨機森林就不會產生過擬合的現象了。隨機森林有2個參數需要人為控制,一個是森林中樹的數量,一般建議取很大。另一個是m的大小,推薦m的值為M的均方根。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456896.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

走出半生,望你歸來仍是程序員

在世二十七年&#xff0c;自認為積累了一點人生經驗。思索著當你還在你娘胎的日子里&#xff0c;整理一番留給以后的你&#xff0c;當作你以后漫漫人生路上的參考。我保證&#xff0c;倘若哪天你發現某條不對或者跟你的想法不一樣&#xff0c;你能敞開心扉與我交談&#xff0c;…

kd tree學習筆記 (最近鄰域查詢)

https://zhuanlan.zhihu.com/p/22557068 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 KD樹在算法競賽中主要用來做各種各樣的平面區域查詢&#xff0c;包含則累加直接返回&#xff0c;相交則繼續遞歸&#xff0c;相離的沒有任何貢獻也直接返回。可以處理圓&am…

正則表達式的元素符

import reprint("----------匹配單個字符與數字----------") r . 匹配除換行符以外的任意字符 [0123456789] []是字符集合&#xff0c;表示匹配方括號中所有所包含的任意一個字符 [liuwang] [] 匹配‘l&#xff0c;i&#xff0c;u 中任意一個字符…

圖像影音型計算機主板選擇什么,電腦主板型號在哪里看? 每日一答

電腦主板型號在哪里看&#xff1f;想要看主板的型號其實非常簡單&#xff0c;一般來說&#xff0c;主板上都會有一個專門的身份標識&#xff0c;位于PCI-E顯卡插槽之間&#xff0c;比如下方這張圖&#xff0c;就清晰地寫明了MAXIMUS X APEX的標識&#xff0c;熟悉的玩家一眼就能…

使用葉神模擬器無法訪問本機服務器的問題(報錯:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )

最近打算用夜神模擬器來和本機服務器做一些信息交互的功能&#xff0c;但是服務器搭建好了&#xff0c;用葉神模擬器卻無法訪問。折騰了大半天才發現原來是模擬器的問題。 具體過程如下&#xff1a; 搭建好服務器后&#xff0c;在本機上訪問“http://127.0.0.1:5000/”&#…

NSObject協議中方法:description 和 debugDescription

description基本概念 1.NSLog("%", objectA);這會自動調用objectA的description方法來輸出ObjectA的描述信息. 2.description方法默認返回對象的描述信息(默認實現是返回類名和對象的內存地址) 3.description方法是基類NSObject 所帶的方法,因為其默認實現是返回類名…

re模塊的深入

import re 字符串切割str1 "allen is a good man" print(str1.split()) print(re.split((r" "),str1)) re.finditer函數 原型&#xff1a;finditer(pattern, string, flags0) pattern: 匹配的正則表達式 string: 要匹配的字符串 flags:標志位&…

身份證

<?php defined(IN_IA) or exit(Access Denied);class check {// $num為身份證號碼&#xff0c;$checkSex&#xff1a;1為男&#xff0c;2為女&#xff0c;不輸入為不驗證public function checkIdentity($num, $checkSex ) {// 不是15位或不是18位都是無效身份證號if (strl…

鼓勵參與計算機考試宣傳標語,誠信考試的宣傳標語(精選60條)

誠信考試的宣傳標語(精選60條)誠信考試&#xff0c;做文明公民&#xff0c;既是時代需要&#xff0c;也是做人的基本準則。下面是小編收集的誠信考試的宣傳標語(精選60條)&#xff0c;歡迎閱讀。1、讓舞弊遠離校園&#xff0c;讓誠信常駐心中2、刻苦學習&#xff0c;認真做人3、…

初學大數據之如何選擇機器學習算法

最近在國外網站看到一篇不錯的文章&#xff0c;所以就翻譯過來給大家分享一下。主要介紹初學者怎么選擇機器學習算法,希望對各位初學者有幫助。 原文如下: 一個初學者面臨各種機器學習算法的典型問題是“我應該使用哪種算法&#xff1f;”問題的答案取決于許多因素&#xff0…

Django查詢 – id vs pk

當編寫django查詢時&#xff0c;可以使用id / pk作為查詢參數。 Object.objects.get(id1) Object.objects.get(pk1) pk代表主鍵(primary key)&#xff0c; pk更加獨立于實際的主鍵字段&#xff0c;即不必關心主鍵字段是否被稱為id或object_id或其他。 如果您具有不同主鍵字…

Tomcat的Session管理(三)

摘要&#xff1a;PersistentManager與StandardManager的異同。 之前兩篇關于session的文章主要討論了session相關的創建、查詢、過期處理。而我們查看源碼的時候都是默認實現是StandardManager類&#xff0c;實際上實現也可以是PersistentManager類&#xff0c;下面我們就查看下…

計算機基礎的函數公式,大學計算機基礎 excle 公式與函數

《大學計算機基礎 excle 公式與函數》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《大學計算機基礎 excle 公式與函數(32頁珍藏版)》請在人人文庫網上搜索。1、,.,場景1,發布日期:2011.11.09,新入職場,經理說&#xff1a; 小張&#xff0c;以后工資發放的事情就交給…

穩定和性能如何兼顧?58大數據平臺的技術演進與實踐

作者&#xff5c;趙健博 編輯&#xff5c;尚劍 本文將為你分享58大數據平臺在最近一年半內技術演進的過程&#xff0c;包括&#xff1a;58大數據平臺目前的整體架構是怎么樣的&#xff1b;最近一年半的時間內我們面臨的問題、挑戰以及技術演進過程&#xff1b;以及未來的規劃。…

Random Forest算法簡介

轉自JoinQuant量化課堂 一、相關概念 分類器&#xff1a;分類器就是給定一個樣本的數據&#xff0c;判定這個樣本屬于哪個類別的算法。例如在股票漲跌預測中&#xff0c;我們認為前一天的交易量和收盤價對于第二天的漲跌是有影響的&#xff0c;那么分類器就是通過樣本的交易量…

MySQL 學習筆記

01 import pymysql#連接數據庫db pymysql.connect("192.168.1.179","root","liuwang","liu")#創建一個cursor對象 cursor db.cursor() sql "select version()"cursor.execute(sql)data cursor.fetchone() print(data)…

簡單交互

控件有著各種事件&#xff0c;例如被點擊的時候&#xff0c;我們可以在事件里面添加動作和命令&#xff0c;讓控件可以和用戶交互&#xff0c;這里我們演示一個簡單的交互&#xff1a;當用戶點擊文字控件的時候&#xff0c;它開始動畫向下移動然后動畫旋轉&#xff0c;效果入下…

綜合素質計算機考點,教師資格證小學綜合素質考點及考試真題:信息處理能力...

小學綜合素質考點及考試真題——信息處理能力大綱要求&#xff1a;具有運用工具書檢索信息、資料的能力。具有運用網絡檢索、交流信息的能力。具有對信息進行篩選、分類、存儲和應用的能力。具有運用教育測量知識進行數據分析與處理的能力。具有根據教育教學的需要&#xff0c;…

API文檔自動生成

本文主要講述自動化API文檔生成——apidoc。網上有幾個篇文章都只是介紹apidoc的&#xff0c;具體怎么在自己的項目中使用以及與其他配合使用都是沒介紹的。最近開始玩服務器&#xff0c;了解到了有Windows與Linux之間共享文件的方法&#xff0c;就是samba。然后具體和apidoc結…

機器學習筆記之SVM(SVR)算法

學過SVM后&#xff0c;看了那么多別人的文章&#xff0c;是時候自己總結一波了。權當寫的筆記供自己日后再回顧吧。 PS:結合自己在工作過程中&#xff08;我這里用SVR做股票預測&#xff09;用到的知識來寫的&#xff0c;不會很全面&#xff0c;若有些知識這里沒提及讀者可自行…