随机森林算法是一种并行性比较好的算法规则,,和前面的决策树归纳的过程类似,随机森林是一个构造决策树的过程,只是它不是要构造一棵树,而是构造许多棵树。
在决策树的构造中会遇到过拟和欠拟的问题,在随机森林算法中,通常在一棵树上是不会追求及其精确的拟合的,而相反,希望的是决策树的简洁和计算的快速。
步骤和原则如下。
(1)随机挑选一个字段构造树的第一层。
(2)随机挑选一个字段构造树的第二层。
……
(3)随机挑选一个字段构造树的第n层。
(4)在本棵树建造完毕后,还需要照这种方式建造m棵决策树。
补充原则如下。
树的层级通常比较浅。
每棵树的分类都不能保证分类精度很高。
一个样本进行分类时同时对这m棵决策树做分类概率判断。
人们会为一个训练集构造若干棵决策树,通常可能是几十甚至上百棵,具体会根据样本属性的数量和杂乱程度来决定。当有新样本需要进行分类时,同时把这个样本给这几棵树,然后用类似民主投票表决的方式来决定新样本应该归属于哪类,哪一类“得票多”就归为哪一类。
算法实现
from sklearn.ensemble import RandomForestClassifier
X=[[25,181,12,0],[23,172,12,2],
[21,172,34,2],[23,177,22,1],
[18,181,18,0],[21,182,23,1],
[23,189,21,2],[33,175,30,2]]
# 年龄,身高,年薪,学历(0大专,1本科,2硕士)
Y=[0,1,1,0,1,0,0,1]
# 相亲 0没有,1有
clf=RandomForestClassifier()
clf.fit(X,Y)
test=[[18,186,12,1]]
prediction=clf.predict(test)
print(prediction)
[0]