RF
Random forest,随机森林。
1. 决策树
一种树形结构,通过学习数据中的特征,逐层对数据进行划分。每一个节点代表一个特征的决策条件,叶子节点代表最终的分类结果或回归值。
1.1 构建步骤
- 从特征中选择最优特征作为节点进行数据集划分(如基尼指数或信息增益)。
- 对每个子数据集递归地构建决策树,直到满足终止条件(如树的深度、叶子节点数等)。
- 决策树会根据训练样本中学到的规则,给出分类或回归的结果。
1.2 信息增益(Information Gain)
信息增益衡量的是某个特征对样本的分类效果,特征对数据集进行划分后,信息的不确定性减少的程度。
计算公式:
\[ Gain(D, A) = Entropy(D) - \sum_{v=1}^{V} \frac{|D_v|}{|D|} Entropy(D_v) \]
其中: \(Gain(D, A)\)是特征\(A\)对数据集\(D\)的信息增益, \(Entropy(D)\)是数据集\(D\)的熵,计算公式为:
\[ Entropy(D) = - \sum_{i=1}^{k} p_i \log_2 p_i \]
其中: \(p_i\)是第\(i\)类的样本在数据集\(D\)中的比例, \(k\)是类别的数量。
信息增益的目标是通过最大化 信息增益 来选择用于分裂的特征。
1.3 基尼指数(Gini Impurity)
基尼指数用于衡量一个节点的不纯度程度,数值越高表示样本的不纯度越高。其计算公式如下:
\[ G(p) = 1 - \sum_{i=1}^{k} p_i^2 \]
其中: \(p_i\)是属于第\(i\)类的样本所占的比例。 \(k\)是类别的总数。
对于某个特征\(A\)的基尼指数计算公式为:
\[ Gini(D, A) = \sum_{v=1}^{V} \frac{|D_v|}{|D|} G(D_v) \]
其中: \(D\)是数据集, \(D_v\)是特征\(A\)取值为\(v\)的子数据集, \(V\)是特征\(A\)的取值个数, \(G(D_v)\)是子集\(D_v\)的基尼指数。
2. 核心思想
随机森林通过多棵决策树的集成来提升模型的性能。每棵树是在随机子集上构建的,这里的随机性包括以下两点:
- 数据采样:使用有放回的随机抽样(即 Bootstrap)从训练数据集中采样,生成多个不同的子数据集。每棵决策树在不同的数据子集上进行训练。
- 特征选择:每个节点进行决策时,从所有特征中随机选择一部分特征,然后在这些特征中选择最佳的分裂点。这一随机性避免了所有决策树过于依赖某些特定的强特征。
3. 算法步骤
- 数据随机采样:从训练集中通过Bootstrap方法随机采样,生成若干个包含放回采样的数据子集。
- 训练决策树:在每个数据子集上训练一棵决策树,每次节点分裂时,随机选择部分特征进行决策。
- 集成决策树:将所有训练得到的决策树组成森林,作为最终的模型。
- 投票或平均:对新样本输入森林时,所有树各自给出预测结果,分类问题通过投票法确定最终类别,回归问题通过平均法确定最终值。
4. 损失函数
随机森林的损失函数依赖于具体任务:
*分类问题:随机森林通常最小化基尼不纯度或信息增益,即在构建决策树时,选择能够最大化类别纯度的特征进行划分: \[ G(p) = 1 - \sum_{i=1}^{k} p_i^2 \] 其中,\(p_i\)是当前节点中属于第\(i\)类的样本比例,\(k\)是类别数量。
回归问题:随机森林最小化的是均方误差(MSE),用来衡量预测值与真实值的差距: \[ MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \] 其中,\(y_i\)是真实值,\(\hat{y}_i\)是预测值,\(n\)是样本数量。
优势
- 高准确率:通过集成多棵决策树,随机森林显著提高了模型的准确性,特别是在分类和回归任务中。
- 抗过拟合:决策树易过拟合,但随机森林通过对多个树的集成以及引入随机性,减少了过拟合的风险。
- 处理高维数据:随机森林能够很好地处理高维数据,并且在特征选择中具有较好的表现。
- 处理缺失值:它可以自动处理缺失数据,并能够通过投票或平均来进行处理。
- 可并行化:由于每棵树是独立训练的,因此随机森林易于并行化,训练速度快。
缺点
- 模型复杂度高:随机森林由许多决策树组成,模型的复杂度较高,训练和预测的时间成本较大。
- 解释性差:随机森林虽然性能优异,但由于其集成了大量决策树,整体模型较为复杂,难以解释各个特征的重要性和决策路径。
- 计算开销大:训练大量的决策树需要较高的计算资源,尤其是在处理大规模数据时,训练时间较长,内存开销大。
- 对高噪声数据敏感:随机森林对噪声数据的鲁棒性不足,可能导致过多无效的树,影响整体预测效果。