隨機森林算法

2021-03-06 磐創AI

作者 | Sabina Pokhrel

編譯 | VK

來源 | Towards Data Science


幾個月前,我在雪梨參加了一個會議。會上,fast.ai向我介紹了一門在線機器學習課程,那時候我根本沒注意。這周,在Kaggle競賽尋找提高分數的方法時,我又遇到了這門課程。我決定試一試。

這是我從第一堂課中學到的東西,這是一個1小時17分鐘的視頻,介紹了隨機森林。

課的主題是隨機森林,傑裡米(講師)提供了一些基本信息以及使用Jupyter Notebook的提示和技巧。

Jeremy談到的一些重要的事情是,數據科學並不等同於軟體工程。在數據科學中,我們做的是設計模型。雖然軟體工程有自己的一套實踐,但數據科學也有自己的一套最佳實踐。

模型構建和原型設計需要一個交互的環境,是一個迭代的過程。我們建立一個模型。然後,我們採取措施來改善它。重複直到我們對結果滿意為止。

隨機森林

我聽說過「隨機森林」這個詞,我知道它是現有的機器學習技術之一,但是老實說,我從來沒有想過要去了解它。我一直熱衷於更多地了解深度學習技術。

從這次演講中,我了解到隨機森林確實很棒。

它就像一個通用的機器學習技術,既可以用於回歸,也可以用於分類。這意味著你可以使用隨機森林來預測股票價格以及對給定的醫療數據樣本進行分類。

一般來說,隨機森林模型不會過擬合,即使它會,它也很容易阻止過擬合。

對於隨機森林模型,不需要單獨的驗證集。

隨機森林只有一些統計假設。它也不假設你的數據是正態分布的,也不假設這些關係是線性的。

它只需要很少的特徵工程。

因此,如果你是機器學習的新手,它可以是一個很好的起點。

其他概念

維數詛咒是一個概念,意思是你擁有的數據特徵越多,數據點就會越分散。這意味著兩點之間的距離沒有意義。

Jeremy確信,在實踐中,情況並非如此,事實上,你的數據擁有的特徵越多,對模型的訓練效果就越好。

沒有免費午餐定理是這樣一個概念:沒有一個模型可以完美地適用於任何類型的數據。

技巧和竅門

你可以在Jupyter Notebook中使用!來執行bash命令,例如。

!ls 
!mkdir new_dr

在Python 3.6中追加字符串的新方法。

name = 'Sabina'
print(f'Hello {name}')no_of_new_msg = 11
print(f'Hello {name}, you have {no_of_new_msg} new messages')

不需要離開Jupyter notebook就可以查看python函數。在函數名前使用?獲取它的文檔。

from sklearn.ensemble import RandomForestClassifier?RandomForestClassifier.fit()

如果你想閱讀原始碼,可以使用??在函數名稱前。

from sklearn.ensemble import RandomForestClassifier??RandomForestClassifier.fit()

通過使用to_feather方法保存處理過的數據集,將數據集以存儲在RAM中的相同格式保存到磁碟。可以使用read_feather方法從保存的文件中讀取數據。注意,為了使用這些方法,你需要安feather-format庫。

import pandasdf = pd.DataFrame()
df.to_feather('filename')saved_df= pd.read_feather('filename')

如果你有興趣深入探討該主題,請點擊此處連結到課程視頻。
http://course18.fast.ai/lessonsml1/lesson1.html

相關焦點

  • 機器學習算法——隨機森林算法簡介
    1 什麼是隨機森林在機器學習中,隨機森林是一個包含多個決策樹的分類器, 並且其輸出的類別是由個別樹輸出的類別的眾數而定。其實從直觀角度來解釋,每棵決策樹都是一個分類器(假設現在針對的是分類問題),那麼對於一個輸入樣本,N棵樹會有N個分類結果。
  • 隨機森林(Random Forest)算法原理
    Leo Breiman和Adele Cutler發展出推論出隨機森林的算法。而 "RandomForests" 是他們的商標。這個術語是1995年由貝爾實驗室的Tin Kam Ho所提出的隨機決策森林(random decisionforests)而來的。
  • 隨機森林算法入門(Python)
    :https://segmentfault.com/a/1190000007463203(點擊尾部閱讀原文前往)原文:http://blog.yhat.com/posts/python-random-forest.html昨天收到yhat推送了一篇介紹隨機森林算法的郵件
  • 用Python實現隨機森林算法
    bagging(bootstrap aggregating 的縮寫)算法從訓練數據的樣本中建立複合模型,可以有效降低決策樹的方差,但樹與樹之間有高度關聯(並不是理想的樹的狀態)。隨機森林算法(Random forest algorithm)是對 bagging 算法的擴展。
  • Bagging與隨機森林算法原理小結
    本文就對集成學習中Bagging與隨機森林算法做一個總結。隨機森林是集成學習中可以和梯度提升樹GBDT分庭抗禮的算法,尤其是它可以很方便的並行訓練,在如今大數據大樣本的的時代很有誘惑力。在集成學習原理小結中,我們給Bagging畫了下面一張原理圖。
  • Stata:隨機森林算法簡介與實現
    背景介紹「隨機森林」是利用統計或機器學習算法進行預測的方法。隨著技術的發展,該方法開始被廣泛的應用到社會科學中,並取得了較好預測效果。之所以如此,是因為隨機森林考慮到了數據中的非線性關係。與此同時,隨機森林集成的學習算法也非常適合大型數據集。
  • 機器學習之分類算法:隨機森林
    我們這裡介紹一個基於決策樹的一個組合模型隨機森林(Random Forest)。隨機森林應用範圍廣,既可以用來做市場營銷模擬的建模,統計客戶來源,保留和流失,也可以用於計算機人體識別等等。隨機森林算法自動創建隨機決策樹群,構成一個森林每棵樹都是獨立且權重一樣。
  • 使用sklearn隨機森林算法實現手寫數字識別
    一:隨機森林算法是怎麼工作的隨機森林(random forest)是2001年提出來同時支持數據的回歸與分類預測算法,在具體了解隨機森林算法之前
  • 異常檢測怎麼做,試試孤立隨機森林算法
    本文介紹了孤立森林(isolation forest)算法,通過介紹原理和代碼教你揪出數據集中的那些異常值。 接著了解一下機器學習中的孤立森林算法。 什麼是孤立森林 孤立森林是用於異常檢測的機器學習算法。這是一種無監督學習算法,通過隔離數據中的離群值識別異常。
  • 數學推導+純Python實現機器學習算法20:隨機森林
    有了之前多篇關於決策樹的基礎以及前述關於Bagging基本思想的闡述,隨機森林(Random Forest)就沒有太多難以理解的地方了。所謂隨機森林,就是有很多棵決策樹構建起來的森林,因為構建過程中的隨機性,故而稱之為隨機森林。隨機森林算法是Bagging框架的一個典型代表。    關於構建決策樹的過程,可以參考前述第4~5篇,這裡不做重複闡述。
  • 機器學習十大經典算法之隨機森林
    隨機森林簡介隨機森林是機器學習一種常用的方法。它是以決策樹為基礎,用隨機的方式排列建立的,森林裡每個決策樹之間都是沒有關聯的。 在得到森林之後,當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類算法),然後看看哪一類被選擇最多,就預測這個樣本為那一類。隨機森林可以用來進行無監督學習聚類和異常點檢測。
  • 機器學習之隨機森林算法(Random Forest)及python代碼實現
    隨機森林就是通過集成學習的思想將多棵樹集成的一種算法,它的基本單元是決策樹,而它的本質屬於機器學習的一大分支——集成學習(Ensemble Learning
  • Python+sklearn隨機森林算法使用入門
    ==============隨機森林是一種集成學習方法,基本思想是把幾棵不同參數的決策樹(參考:Python+sklearn決策樹算法使用入門)打包到一起,每棵決策樹單獨進行預測,然後計算所有決策樹預測結果的平均值(適用於回歸分析)或所有決策樹「投票」得到最終結果(適用於分類)。
  • 從決策樹到隨機森林:樹型算法的原理與實現
    基於樹(Tree based)的學習算法在數據科學競賽中是相當常見的。這些算法給預測模型賦予了準確性、穩定性以及易解釋性。和線性模型不同,它們對非線性關係也能進行很好的映射。常見的基於樹的模型有:決策樹(decision trees)、隨機森林(random forest)和提升樹(boosted trees)。
  • 說說隨機森林
    上世紀八十年代Breiman等人發明分類樹的算法(Breiman et al. 1984),通過反覆二分數據進行分類或回歸,計算量大大降低。2001年Breiman把分類樹組合成隨機森林(Breiman 2001a),即在變量(列)的使用和數據(行)的使用上進行隨機化,生成很多分類樹,再匯總分類樹的結果。隨機森林在運算量沒有顯著提高的前提下提高了預測精度。
  • 獨家 | 決策樹VS隨機森林——應該使用哪種算法?(附代碼&連結)
    決策樹簡介隨機森林概覽隨機森林和決策樹的衝突(代碼)為什麼隨機森林優於決策樹?決策樹vs隨機森林——你應該在何時選擇何種算法?決策樹是一種有監督的機器學習算法,該方法可以用於解決分類和回歸問題。決策樹可以簡單地理解為達到某一特定結果的一系列決策。這裡是一幅決策樹的闡述圖(使用我們上面的案例):
  • 隨機森林入門攻略
    在各種各樣的問題中,隨機森林一次又一次地展示出令人難以置信的強大,而與此同時它又是如此的方便實用。需要大家注意的是,在上文中特別提到的是第一組測試結果,而非所有的結果,這是因為隨機森林方法固然也有自己的局限性。在這篇文章中,我們將向你介紹運用隨機森林構建預測模型時最令人感興趣的幾個方面。隨機森林的發展史談及隨機森林算法的產生與發展,我們必須回溯到20世紀80年代。
  • Python機器學習筆記——隨機森林算法!最詳細的筆記沒有之一
    隨機森林算法的理論知識隨機森林是一種有監督學習算法,是以決策樹為基學習器的集成學習算法。
  • python實現隨機森林
    Bagging和Boosting的概念與區別隨機森林屬於集成學習(Ensemble Learning)中的bagging算法。在集成學習中,主要分為bagging算法和boosting算法。我們先看看這兩種方法的特點和區別。
  • Python隨機森林 - CodeProject
    隨機森林是一種在集成學習中很受歡迎的算法,可用於分類和回歸。這意味著隨機森林中包括多種決策樹,並將每個決策樹結果的平均值作為隨機森林的最終輸出。決策樹有一些缺點,比如訓練集的過擬合導至很高的差異性,不過這在隨機森林中已經可以通過Bagging(Bootstrap Aggregating)的幫助解決。因為隨機森林實際上是由多種不同的決策樹組成的,所以我們最好先了解一下決策樹算法,然後再學習隨機森林的相關知識。