随机森林算法是一种并行性比较好的算法规则,,和前面的决策树归纳的过程类似,随机森林是一个构造决策树的过程,只是它不是要构造一棵树,而是构造许多棵树。

在决策树的构造中会遇到过拟和欠拟的问题,在随机森林算法中,通常在一棵树上是不会追求及其精确的拟合的,而相反,希望的是决策树的简洁和计算的快速。

步骤和原则如下。

(1)随机挑选一个字段构造树的第一层。

(2)随机挑选一个字段构造树的第二层。

……

(3)随机挑选一个字段构造树的第n层。

(4)在本棵树建造完毕后,还需要照这种方式建造m棵决策树。

补充原则如下。

  • 树的层级通常比较浅。

  • 每棵树的分类都不能保证分类精度很高。

  • 一个样本进行分类时同时对这m棵决策树做分类概率判断。

人们会为一个训练集构造若干棵决策树,通常可能是几十甚至上百棵,具体会根据样本属性的数量和杂乱程度来决定。当有新样本需要进行分类时,同时把这个样本给这几棵树,然后用类似民主投票表决的方式来决定新样本应该归属于哪类,哪一类“得票多”就归为哪一类。

算法实现

  1. from sklearn.ensemble import RandomForestClassifier
  2. X=[[25,181,12,0],[23,172,12,2],
  3. [21,172,34,2],[23,177,22,1],
  4. [18,181,18,0],[21,182,23,1],
  5. [23,189,21,2],[33,175,30,2]]
  6. # 年龄,身高,年薪,学历(0大专,1本科,2硕士)
  7. Y=[0,1,1,0,1,0,0,1]
  8. # 相亲 0没有,1有
  9. clf=RandomForestClassifier()
  10. clf.fit(X,Y)
  11. test=[[18,186,12,1]]
  12. prediction=clf.predict(test)
  13. print(prediction)
[0]