机器学习之随机森林模型
隨機森林
1.什么是集成模型
①集成模型:大白話就是把若干個決策樹合到一起的模型(三個臭皮匠頂個諸葛亮)
②優(yōu)勢:1)效果好,穩(wěn)定;2)可解釋性強
③集成模型的分類:
1)Bagging:隨機森林;
基于Bagging的構(gòu)造,預測過程:
2)Boosting:GBDT,XGBOOST
下篇Blog介紹,本節(jié)以隨機森林為主
2.舉例:
問題:假設邀請了9位專家,而且每一位專家在決策上犯錯誤的概率位0.4,那么他們共同決策時最終犯錯誤的概率是多少?
通過這個例子我們可以看到一個人決策時犯錯誤的概率為0.4,而大家一起決策時犯錯誤的概率位0.25241
所以為什么說集成模型的穩(wěn)定性高呢,通過集成模型做預測可以降低方差,而方差越低說明模型越穩(wěn)定這是一種原因
3.隨機森林的訓練
隨機森林的核心:
1)隨機:1)訓練樣本的隨機化(穩(wěn)定性的基礎是多樣性)
2)森林:多顆決策樹
隨機森林的構(gòu)造:
1)構(gòu)造隨機森林需要考慮的點:①只有一份訓練數(shù)據(jù);②確保多顆決策樹要優(yōu)于但棵決策樹
2)隨機森林的構(gòu)造:
對訓練數(shù)據(jù)進行抽樣:Bootstrap(可以重復抽樣同樣的樣本)
隨機森林的預測:
分類問題:少數(shù)服從多數(shù),比如說隨機森林由三棵樹構(gòu)成,兩棵樹分類為同意,一棵樹分類為不同意,那么最終結(jié)果為不同意
回歸問題:取平均值
隨機森林的demo
# 導入數(shù)字識別數(shù)據(jù)集,這個數(shù)據(jù)集已經(jīng)集成在了sklearn里 from sklearn.datasets import load_digits # 導入隨機森林分類器 from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import pandas as pd import numpy as np # 導入數(shù)據(jù) digits = load_digits() X = digits.data y = digits.target X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=42) # 創(chuàng)建隨機森林,參數(shù)可以適當修改一下。 # https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html clf = RandomForestClassifier(n_estimators=400, criterion='entropy',max_depth=5, min_samples_split=3, max_features='sqrt',random_state=0) clf.fit(X_train, y_train) print ("訓練集上的準確率為:%.2f, 測試數(shù)據(jù)上的準確率為:%.2f"% (clf.score(X_train, y_train), clf.score(X_test, y_test)))結(jié)果:訓練集上的準確率為:0.98, 測試數(shù)據(jù)上的準確率為:0.95寫在最后:
如果有些地方理解的不對,大家可以積極評論,學習本身就是一個不斷糾錯的過程,發(fā)現(xiàn)問題不管是對我還是對大家都是一種進步
總結(jié)
以上是生活随笔為你收集整理的机器学习之随机森林模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Juniper SRX防火墙批量导入se
- 下一篇: 知道无人驾驶的网络安全有多重要吗?英国政