Python数据挖掘—分类—随机森林

Posted 我不要被你记住

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据挖掘—分类—随机森林相关的知识,希望对你有一定的参考价值。

 

概念

随机森林(RandomForest):随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别数输出的类别的众数而定

优点:适合离散型和连续型的属性数据;对海量数据,尽量避免了过度拟合的问题;对高维数据,不会出现特征选择困难的问题;实现简单,训练速度快,适合 进行分布式计算

 1 import pandas;
 2 
 3 data = pandas.read_csv(
 4     "D:\\\\PDM\\\\5.3\\\\data.csv"
 5 );
 6 
 7 dummyColumns = ["Gender", "ParentEncouragement"]
 8 
 9 for column in dummyColumns:
10     data[column]=data[column].astype(\'category\')
11 
12 dummiesData = pandas.get_dummies(
13     data, 
14     columns=dummyColumns,
15     prefix=dummyColumns,
16     prefix_sep="=",
17     drop_first=True
18 )
19 dummiesData.columns
20 
21 fData = dummiesData[[
22     \'ParentIncome\', \'IQ\', \'Gender=Male\',
23     \'ParentEncouragement=Not Encouraged\'
24 ]]
25 
26 tData = dummiesData["CollegePlans"]
27 
28 from sklearn.tree import DecisionTreeClassifier
29 from sklearn.ensemble import RandomForestClassifier
30 from sklearn.model_selection import cross_val_score
31 
32 dtModel = DecisionTreeClassifier()
33 
34 dtScores = cross_val_score(
35     dtModel, 
36     fData, tData, cv=10
37 )
38 
39 dtScores.mean()
40 
41 rfcModel = RandomForestClassifier()
42 
43 rfcScores = cross_val_score(
44     rfcModel, 
45     fData, tData, cv=10
46 )
47 
48 rfcScores.mean()
View Code

 

决策树评分:

随机森林评分:

发现随机森林在不调优的情况下,得分高于决策树模型

调优:设置:max_leaf_nodes=8

 1 #对连个模型进行调优
 2 dtModel=DecisionTreeClassifier(max_leaf_nodes=8)
 3 
 4 dtScores=cross_val_score(
 5         dtModel,
 6         fData,tData,cv=10)
 7 
 8 dtScores.mean()
 9 
10 rfcModel=RandomForestClassifier(max_leaf_nodes=8)
11 
12 rfcScores=cross_val_score(
13     rfcModel,
14     fData,tData,cv=10)
15 
16 rfcScores.mean()
View Code

决策树评分:

随机森林评分:

 

以上是关于Python数据挖掘—分类—随机森林的主要内容,如果未能解决你的问题,请参考以下文章

如何将随机森林分类器应用于所有数据集,在 python 中一次一小部分

将随机森林分类分解成python中的碎片?

Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

如何将图像(多维数组)数据拟合到 python 中的随机森林分类器中?

决策树与随机森林分类算法(Python实现)

随机森林分类器批量学习 Python 维度错误