本文是个人学习笔记,该篇主要学习随机森林算法概念,并应用sklearn.ensemble.RandomForestClassifier算法包解决Kaggle入门级Digit Recognizer。
随机森林概述
随机森林就是用随机方式建立一个决策树森林,随机森林的决策树之间相互独立。因此随机森林可以简单理解为基于决策树算法的一种拓展与改进,主要应用于回归与分类。它也是一种数据降维手段,用于处理缺失值、异常值以及其他数据探索中的重要步骤。
其在分类问题上的基本思想是通过训练样本建立起随机森林,每当新样本进入时,让森林中每颗决策树都对该样本进行分类判断,最终通过投票方式确定其最终类别。
决策树
决策树顾名思义是一种树结构,其每个非叶节点表示一个基于特征属性的测试,每个分支代表该特征属性在某个值域上的输出,而每个叶节点存放一个类别。
决策树进行分类决策的过程就是从根节点开始,测试待分类项中对应该节点的特征属性,然后按照其值选择输出分支,到达新节点重复上述判断步骤,直到到达叶子节点,该叶节点类别即为分类判断结果。
随机森林分类过程
- 假设原始训练集共有N个样本,利用重复自抽样有放回地随机抽取出k个新的自助样本集(每个样本集中也有N个样本,由于是有放回随机抽取,因此可能会有重复样本,从而避免过拟合),由此构建k棵分类树(二叉树)ÿ