Random Forest算法簡介

轉自JoinQuant量化課堂
一、相關概念

分類器:分類器就是給定一個樣本的數據,判定這個樣本屬于哪個類別的算法。例如在股票漲跌預測中,我們認為前一天的交易量和收盤價對于第二天的漲跌是有影響的,那么分類器就是通過樣本的交易量和收盤價預測第二天的漲跌情況的算法。

分裂:在決策樹的訓練過程中,需要一次次的將訓練數據集分裂成兩個子數據集,這個過程就叫做分裂。

特征:在分類問題中,輸入到分類器中的數據叫做特征。以上面的股票漲跌預測問題為例,特征就是前一天的交易量和收盤價。

待選特征:在決策樹的構建過程中,需要按照一定的次序從全部的特征中選取特征。待選特征就是在目前的步驟之前還沒有被選擇的特征的集合。例如,全部的特征是 ABCDE,第一步的時候,待選特征就是ABCDE,第一步選擇了C,那么第二步的時候,待選特征就是ABDE。

分裂特征:接待選特征的定義,每一次選取的特征就是分裂特征,例如,在上面的例子中,第一步的分裂特征就是C。因為選出的這些特征將數據集分成了一個個不相交的部分,所以叫它們分裂特征。

二、決策樹的構建過程

要說隨機森林,必須先講決策樹。決策樹是一種基本的分類器,一般是將特征分為兩類(決策樹也可以用來回歸,不過本文中暫且不表)。構建好的決策樹呈樹形結構,可以認為是if-then規則的集合,主要優點是模型具有可讀性,分類速度快。

我們用選擇量化工具的過程形象的展示一下決策樹的構建。假設現在要選擇一個優秀的量化工具來幫助我們更好的炒股,怎么選呢?
第一步:看看工具提供的數據是不是非常全面,數據不全面就不用。
第二步:看看工具提供的API是不是好用,API不好用就不用。
第三步:看看工具的回測過程是不是靠譜,不靠譜的回測出來的策略也不敢用啊。
第四步:看看工具支不支持模擬交易,光回測只是能讓你判斷策略在歷史上有用沒有,正式運行前起碼需要一個模擬盤吧。

這樣,通過將“數據是否全面”,“API是否易用”,“回測是否靠譜”,“是否支持模擬交易”將市場上的量化工具貼上兩個標簽,“使用”和“不使用”。
上面就是一個決策樹的構建,邏輯可以用下圖表示:
這里寫圖片描述

在上圖中,綠顏色框中的“數據”“API”“回測”“模擬交易”就是這個決策樹中的特征。如果特征的順序不同,同樣的數據集構建出的決策樹也可能不同。特征的順序分別是“數據”“API”“回測”“模擬交易”。如果我們選取特征的順序分別是“數據”“模擬交易”“API”“回測”,那么構建的決策樹就完全不同了。

可以看到,決策樹的主要工作,就是選取特征對數據集進行劃分,最后把數據貼上兩類不同的標簽。如何選取最好的特征呢?還用上面選擇量化工具的例子:假設現在市場上有100個量化工具作為訓練數據集,這些量化工具已經被貼上了“可用”和“不可用”的標簽。

我們首先嘗試通過“API是否易用”將數據集分為兩類;發現有90個量化工具的API是好用的,10個量化工具的API是不好用的。而這90個量化工具中,被貼上“可以使用”標簽的占了40個,“不可以使用”標簽的占了50個,那么,通過“API是否易用”對于數據的分類效果并不是特別好。因為,給你一個新的量化工具,即使它的API是易用的,你還是不能很好貼上“使用”的標簽。
這里寫圖片描述

再假設,同樣的100個量化工具,通過“是否支持模擬交易”可以將數據集分為兩類,其中一類有40個量化工具數據,這40個量化工具都支持模擬交易,都最終被貼上了“使用”的標簽,另一類有60個量化工具,都不支持模擬交易,也都最終被貼上了“不使用”的標簽。如果一個新的量化工具支持模擬交易,你就能判斷這個量化工具是可以使用。我們認為,通過“是否支持模擬交易”對于數據的分類效果就很好。

在現實應用中,數據集往往不能達到上述“是否支持模擬交易”的分類效果。所以我們用不同的準則衡量特征的貢獻程度。主流準則的列舉3個:ID3算法(J. Ross Quinlan于1986年提出),采用信息增益最大的特征;C4.5算法(J. Ross Quinlan于1993年提出)采用信息增益比選擇特征;CART算法(Breiman等人于1984年提出)利用基尼指數最小化準則進行特征選擇。

(如果想進行更深一步的學習,可以參考《統計學習方法》或者相關博文進行更一步的學習。未來的量化課堂也會涉及這方面的內容。)

三、隨機森林的構建過程

決策樹相當于一個大師,通過自己在數據集中學到的知識對于新的數據進行分類。但是俗話說得好,一個諸葛亮,玩不過三個臭皮匠。隨機森林就是希望構建多個臭皮匠,希望最終的分類效果能夠超過單個大師的一種算法。

那隨機森林具體如何構建呢?有兩個方面:數據的隨機性選取,以及待選特征的隨機選取。

數據的隨機選取:
首先,從原始的數據集中采取有放回的抽樣,構造子數據集,子數據集的數據量是和原始數據集相同的。不同子數據集的元素可以重復,同一個子數據集中的元素也可以重復。第二,利用子數據集來構建子決策樹,將這個數據放到每個子決策樹中,每個子決策樹輸出一個結果。最后,如果有了新的數據需要通過隨機森林得到分類結果,就可以通過對子決策樹的判斷結果的投票,得到隨機森林的輸出結果了。如下圖,假設隨機森林中有3棵子決策樹,2棵子樹的分類結果是A類,1棵子樹的分類結果是B類,那么隨機森林的分類結果就是A類。
這里寫圖片描述

待選特征的隨機選取:
與數據集的隨機選取類似,隨機森林中的子樹的每一個分裂過程并未用到所有的待選特征,而是從所有的待選特征中隨機選取一定的特征,之后再在隨機選取的特征中選取最優的特征。這樣能夠使得隨機森林中的決策樹都能夠彼此不同,提升系統的多樣性,從而提升分類性能。

下圖中,藍色的方塊代表所有可以被選擇的特征,也就是目前的待選特征。黃色的方塊是分裂特征。左邊是一棵決策樹的特征選取過程,通過在待選特征中選取最優的分裂特征(別忘了前文提到的ID3算法,C4.5算法,CART算法等等),完成分裂。右邊是一個隨機森林中的子樹的特征選取過程。
這里寫圖片描述

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

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

相關文章

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)…

簡單交互

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

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

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

API文檔自動生成

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

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

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

[轉]基于圖的機器學習技術:谷歌眾多產品和服務背后的智能

近來機器學習領域實現了很多重大的進展,這些進展讓計算機系統具備了解決復雜的真實世界問題的能力。其中,谷歌的機器學習又是怎樣的 ? 近來機器學習領域實現了很多重大的進展,這些進展讓計算機系統具備了解決復雜的真實世界問題的…

安裝mysql后在安裝目錄下只有my-default.ini沒有my.ini文件 解決-The MySQL server is running with the --secure-file-priv

WIN10 系統環境 安裝mysql后在安裝目錄下只有my-default.ini沒有my.ini文件 。 mysql報錯 ---------- The MySQL server is running with the --secure-file-priv option so it cannot execute this statement -------- 但是更改或想要查找配置文件就需要如下操作 在 安裝…

loewe測試軟件,實測Loewe三角包 最輕的小包最貼心的設計

原標題:實測Loewe三角包 最輕的小包最貼心的設計導語:每周一期的“包治百病”又跟大家見面來啦!“包治百病”全方位評測包包的容量、重量、背法、在不同身高妹子身上的效果、各種驚人的小細節以及可能存在的問題,為有意購買這些包…

hadoop集群的搭建(分布式安裝)

集群 計算機集群是一種計算機系統,他通過一組松散集成的計算機軟件和硬件連接起來高度緊密地協同完成計算工作。集群系統中的單個計算機通常稱為節點,通常通過局域網連接。集群技術的特點:1、通過多臺計算機完成同一個工作。達到更高的效率 2…

解決:Error establishing a database connection阿里云修改數據庫密碼

今天閑來無事想把所有的二級密碼改成一致的,所以就把阿里云的mysql數據庫的密碼改了,結果,打開頁面報錯了,下邊的截圖是我問題解決后,重新復現的。如果修復這個問題后wordpress登錄頁面白板,此時不要著急&a…

機器學習各算法思想(極簡版)

讀到的一篇不錯的文章,拿來和大家分享一下。 轉自–頭條公眾號–極數蝸牛 (1)線性回歸 回歸最早是由高爾頓研究子女身高與父母身高遺傳關系提出的,發現子女平均身高總是向中心回歸而得名。其實“一分辛苦一分才”中就蘊含了線性…

PAT A 1118. Birds in Forest (25)【并查集】

并查集合并 #include<iostream> using namespace std; const int MAX 10010; int father[MAX],root[MAX]; int findfather(int x){if(xfather[x]) return x;else{int Ffindfather(father[x]);father[x]F;return F;} } void Union(int a , int b){int faAfindfather(a);i…

斯坦福計算機錄取難嗎,申請斯坦福究竟有多難? 什么樣條件的人才能被斯坦福錄取?斯坦福大學直播!...

原標題&#xff1a;申請斯坦福究竟有多難&#xff1f; 什么樣條件的人才能被斯坦福錄取&#xff1f;斯坦福大學直播&#xff01;申請斯坦福究竟有多難&#xff1f; 什么樣條件的人才能被斯坦福錄取&#xff1f;斯坦福大學直播&#xff01;西海岸小哈佛之稱的斯坦福大學&#xf…

解決:building 'twisted.test.raiser' extension安裝scrapy報錯

解決&#xff1a;building twisted.test.raiser extension error: Microsoft Visual C 14.0 is required. Get it with "Microsoft Visual C Build Tools": https://visualstudio.microsoft.com/downloads/ 安裝scrapy報錯&#xff0c;在Twisted安裝部分 解決方案…

Linux配置網絡出現Eroor adding default gateway的解決方案

最近在學習有關大數據方面的東西&#xff0c;剛開始要搭建模擬的虛擬機集群。用的是Minimal CentOS6.7版本Linux下的系統。因為我要為各個虛擬機設置靜態IP&#xff0c;所以就參考網上博客說的進行如下操作: 一、安裝完系統后先配置網絡&#xff1a; cd /etc/sysconfig/netwo…

揭秘8大自媒體平臺注冊方法,通過率百分之九十

寫在前面&#xff1a;準備材料&#xff1a;手機號&#xff0c;郵箱&#xff0c;手持照&#xff0c;輔助材料(非必選項)&#xff0c;邀請碼(非必選項)。輔助材料萬能公式&#xff1a;方法①新浪博客16級博客發8篇相關的文章&#xff0c;昵稱、描述、頭像都與所注冊自媒體號對應&…

AC日記——簡單密碼 openjudge 1.7 10

10:簡單密碼 總時間限制: 1000ms內存限制: 65536kB描述Julius Caesar曾經使用過一種很簡單的密碼。對于明文中的每個字符&#xff0c;將它用它字母表中后5位對應的字符來代替&#xff0c;這樣就得到了密文。比如字符A用F來代替。如下是密文和明文中字符的對應關系。密文A B C D…

計算機表格怎么求面積,在wps表格中怎么把數據生成面積圖?

面積圖強調數量隨時間而變化的程度&#xff0c;適用于顯示有限數量的若干組數據。可以利用面積圖來分析銷售的數據。在這里我用3種品牌的手提電腦在 2010年四個季度的銷售量作為數據源&#xff0c;使用“堆積面積圖”來顯示各種手提電腦銷售量所占大小并隨時間變化的趨勢。那么…

機器學習如何解決問題

原文 http://tech.meituan.com/mt-mlinaction-how-to-ml.html 前言 前言 隨著大數據時代的到來&#xff0c;機器學習成為解決問題的一種重要且關鍵的工具。不管是工業界還是學術界&#xff0c;機器學習都是一個炙手可熱的方向&#xff0c;但是學術界和工業界對機器學習的研究…

Linux中python2和python3的pip設置 及清華安裝源

啟動python2&#xff0c;我們可以直接在命令行輸入&#xff1a;python2 啟動python3&#xff0c;我們可以在命令行輸入&#xff1a;python或者python3. 但是pip沒有設置的話&#xff0c;在命令行輸入 pip --version 或者 pip2 --version&#xff0c;指向的都是python2. 現在…