10、python隨機森林代碼案例

目錄

1 概念

2 優點

3 理論方法

4、代碼完整案例


1 概念

隨機森林:隨機森林是包含多個決策樹的分類器,並且其輸出類別是由個別樹輸出的類別的衆數而定

決策樹見案例:https://blog.csdn.net/qq_36327687/article/details/84944850

2 優點

01 適合離散型和連續型的屬性數據

02 對海量數據,儘量避免了過度擬合的問題

03 對高緯度的數據,不會出現特徵選擇困難的問題

04 實現簡單,訓練速度快,適合進行分佈式計算

3 理論方法

# 隨機森林生成方法:

rfcModel=RandomforestClassifier(

        n_estimators=10,
        max_leaf_nodes=None
        )
        
 n_estimators 森林中樹的個數,默認值爲10
 
 max_leaf_nodes 統一設置樹中最大的葉子節點數
 
# 隨機森林訓練以及預測方法

rfcModel.fit(featureData,targetData)

featureData  特徵數據

targetData  目標數據

 rfcModel.predict(featureData)
 
 featureData  特徵數據


4、代碼完整案例

 

import pandas;

data = pandas.read_csv('D:\\DATA\\pycase\\number2\\5.3\\data.csv')

# 虛擬變量的轉換

dummyColumns = ["Gender", "ParentEncouragement"]

for column in dummyColumns:
    data[column]=data[column].astype('category')

dummiesData = pandas.get_dummies(
    data, 
    columns=dummyColumns,
    prefix=dummyColumns,
    prefix_sep="=",
    drop_first=True
)
dummiesData.columns

# 挑選出重要特徵

fData = dummiesData[[
    'ParentIncome', 'IQ', 'Gender=Male',
    'ParentEncouragement=Not Encouraged'
]]

# 挑選結果屬性

tData = dummiesData["CollegePlans"]



from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

# 決策樹的評分

dtModel = DecisionTreeClassifier()

dtScores = cross_val_score(
    dtModel, 
    fData, tData, cv=10
)

dtScores.mean()

# 隨機森林哥的評分,在沒有參數調優的情況下,隨機森林好,參數:葉子結點

rfcModel = RandomForestClassifier()

rfcScores = cross_val_score(
    rfcModel, 
    fData, tData, cv=10
)

rfcScores.mean()

# 決策樹,加入葉子節點進行調油

dtModel = DecisionTreeClassifier(max_leaf_nodes=8)

dtScores = cross_val_score(
    dtModel, 
    fData, tData, cv=10
)

dtScores.mean()

# 隨機森林,加入葉子節點進行調油,結果和決策樹差不多,所以沒有最好,適合

rfcModel = RandomForestClassifier(max_leaf_nodes=8)

rfcScores = cross_val_score(
    rfcModel, 
    fData, tData, cv=10
)

rfcScores.mean()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章