【sklearn学习】随机森林分类、回归
集成算法會考慮多個評估器的建模結果,匯總之后得到一個綜合結果,以此來獲取比單個模型更好的回歸或分類表現。
三類集成算法:裝袋法(Bagging)、提升法(Boosting)、stacking
裝袋法:構建多個相互獨立的評估器,然后對其預測進行平均或多數表決原則來決定集成評估器的結果。代表模型有隨機森林
提升法:結合弱評估器對難以評估的樣本進行預測,從而構建一個強評估器。代表模型是Adaboost和梯度提升樹
class?sklearn.ensemble.RandomForestClassifier(n_estimators=100,?*,?criterion='gini',?max_depth=None,?min_samples_split=2,?min_samples_leaf=1,?min_weight_fraction_leaf=0.0,?max_features='auto',?max_leaf_nodes=None,?min_impurity_decrease=0.0,?bootstrap=True,?oob_score=False,?n_jobs=None,?random_state=None,?verbose=0,?warm_start=False,?class_weight=None,?ccp_alpha=0.0,?max_samples=None)2 randomForestClassifier
- n_estimators
隨機森林中樹木的數量,即基評估器的數量,n_estimators的值越大,模型效果往往越好,當該值達到一定程度后,模型的精確性往往不再上升或開始波動。
from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.datasets import load_winewine = load_wine() Xtrain, Xtest, ytrain, ytest = train_test_split(wine.data,wine_target,test_size=0.3)rfc = RandomForestClassifier(n_estimators=25, random_state=0)rfc.fit(Xtrain, ytrain)score = rfc.score(Xtest, ytest)# rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10)bootstrap
用于控制抽樣技術的參數,有放回的隨機抽樣技術
袋外數據 out of bag data, oob可以作為集成算法的訓練集
在使用隨機森林時,可以不劃分測試集和訓練集,只需要用袋外數據測試模型即可。
訓練完成之后,可以用oob_score_測試結果
rfc = RandomForestClassifier(n_estimators=25, oob_score = True) rfc.fit(wine_data, wine_target)rfc.oob_score_rfc.feature_importances_rfc.predict_prob(Xtest)?隨機森林回歸樹
class?sklearn.ensemble.RandomForestRegressor(n_estimators=100,?*,?criterion='squared_error',?max_depth=None,?min_samples_split=2,?min_samples_leaf=1,?min_weight_fraction_leaf=0.0,?max_features='auto',?max_leaf_nodes=None,?min_impurity_decrease=0.0,?bootstrap=True,?oob_score=False,?n_jobs=None,?random_state=None,?verbose=0,?warm_start=False,?ccp_alpha=0.0,?max_samples=None)
通常使用均方誤差MSE、絕對平均誤差MAE作為評價指標
不純度指標參數criterion不一致
from sklearn.datasets import load_boston from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestRegressorboston = load_boston()regressor = RandomForestRegressor(n_estimators=100mrandom_state=0) cross_val_score(regressor, boston.data, boston.target, cv=10) # sklearn中模型評估指標打分 import sklearn sorted(sklearn.metrics.SCORERS.keys())總結
以上是生活随笔為你收集整理的【sklearn学习】随机森林分类、回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【sklearn学习】决策树、分类树、剪
- 下一篇: 【sklearn学习】数据预处理和特征工