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()

 

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