日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python--随机森林模型

發布時間:2023/12/9 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python--随机森林模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習

  • 概念
  • Bagging算法
  • Boosting算法
  • 隨機森林模型的基本原理
  • 隨機森林模型的代碼實現

大數據分析與機器學習


概念

?集成學習模型:將多個模型組合在一起,從而產生更強大的模型

?隨機森林模型:非常典型的集成學習模型

?集成模型簡介
?集成學習模型使用一系列弱學習器(也稱為基礎模型或基模型)進行學習,并將各個弱學習器的結果進行整合,從而獲得比單個學習器更好的學習效果。
?集成學習模型的常見算法有Bagging算法Boosting算法兩種。
?Bagging算法的典型機器學習模型為隨機森林模型,而Boosting算法的典型機器學習模型則為AdaBoost、GBDT、XGBoost 和 LightGBM模型

Bagging算法

Bagging的想法是采用類似于“民主投票”的方式,即每一個基礎模型都有一票,最終結果通過所有基礎模型投票,少數服從多數的原則產生預測結果。

原理:從原始訓練數據中(假設共有10000條數據),隨機有放回地抽取10000次數據構成一個新的數據集(因為是隨機有放回抽樣,所以可能出現某一條數據多次被抽中,也有可能某一條數據一次也沒有被抽中),每次使用一個訓練樣本訓練一個基礎模型。這樣進行有放回的隨機抽取n次后,訓練結束時我們就能獲得n個由不同的數據集訓練的基礎模型,也稱之為n個弱學習器,根據這n個弱學習器的結果,我們可以獲得一個更加準確合理的結果。

Boosting算法

?Boosting算法的本質將弱學習器提升為強學習器
?它和Bagging的區別在于,Bagging對待所有的基礎模型一視同仁。而Boosting則做到了對于基礎模型的“區別對待”
?通俗來講,Boosting算法注重“培養精英”“重視錯誤”

  • “培養精英”,
    即每一輪對于預測結果較為準確的基礎模型,會給予它一個較大的權重,表現不好的基礎模型則會降低它的權重。
    這樣在最終預測時,“優秀模型”的權重是大的,相當于它可以投出多票,而**“一般模型”只能在投票時投出一票或不能投票**。

  • “重視錯誤”
    即在每一輪訓練后改變訓練數據的權值或概率分布,通過提高那些在前一輪被基礎模型預測錯誤樣例的權值,減小前一輪預測正確樣例的權值,來使得分類器對誤分的數據有較高的重視程度,從而提升模型的整體效果。原理如圖:

隨機森林模型的基本原理

?隨機森林(Random Forest)是一種經典的Bagging模型其弱學習器為決策樹模型
?如下圖所示,隨機森林模型會在原始數據集中隨機抽樣,構成n個不同的樣本數據集,然后根據這些數據集搭建n個不同的決策樹模型,最后根據這些決策樹模型的平均值(針對回歸模型)或者投票(針對分類模型)情況來獲取最終結果。

?為了保證模型的泛化能力(或者說通用能力),隨機森林在建立每棵樹的時候,往往會遵循兩個基本原則

  • 數據隨機:隨機地從所有數據當中有放回地抽取數據作為其中一棵決策樹的數據進行訓練。
    舉例來說,有1000個原始數據,有放回的抽取1000次,構成一組新的數據(因為是有放回抽取,有些數據可能被選中多次,有些數據可能不被選上),作為某一個決策樹的數據來進行模型的訓練。
  • 特征隨機:如果每個樣本的特征維度為M,指定一個常數k<M,隨機地從M個特征中選取k個特征,在使用Python構造隨機森林模型時,默認取特征的個數k是M的平方根:√𝑀。

與單獨的決策樹模型對比,隨機森林模型由于集成了多個決策樹,其預測結果會更準確,且不容易造成擬合現象泛化能力更強

隨機森林模型的代碼實現

?隨機森林和決策樹模型一樣,可以做分類分析,也可以做回歸分析

  • 隨機森林分類模型(RandomForestClassifier),隨機森林分類模型的基模型是分類決策樹模型
# 引入分類模型相關庫 from sklearn.ensemble import RandomForestClassifier # X 是特征變量,有五個訓練數據,每個訓練數據兩個特征,所以特征值為2 X = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] # y 是目標變量,有兩個分類 y = [0, 0, 0, 1, 1] # 弱學習機器設置為 10 random_state=123 保證采用相同的節點劃分方式,即運行的結果相同 model = RandomForestClassifier(n_estimators=10, random_state=123) # 訓練模型 model.fit(X, y) # predict 函數進行預測 print(model.predict([[5, 5]])) # 結果是0
  • 隨機森林回歸模型(RandomForestRegressor),隨機森林回歸模型的基模型則是回歸決策樹模型
# 引入分類模型相關庫 from sklearn.ensemble import RandomForestRegressor # X 是特征變量,有五個訓練數據,每個訓練數據兩個特征,所以特征值為2 X = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] # y 是目標變量,是一個連續值 y = [1, 2, 3, 4, 5] # 弱學習機器設置為 10 random_state=123 保證采用相同的節點劃分方式,即運行的結果相同 model = RandomForestRegressor(n_estimators=10, random_state=123) # 訓練模型 model.fit(X, y) # predict 函數進行預測 print(model.predict([[5, 5]])) # 結果是[2,8]

總結

以上是生活随笔為你收集整理的Python--随机森林模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。