基尼指数的含义是什么?

数据挖掘 机器学习 随机森林 决策树 基尼指数
2022-02-21 01:51:45

我正在研究随机森林模型,但我不明白基尼指数是什么以及它的用途。

有没有人有这方面的材料或者可以给我一个解释?

谢谢!

1个回答

在实现机器学习算法时经常使用决策树决策树的层次结构通过遍历树的节点将我们引向最终结果。简单来说,就是将决策树通过训练学到的“知识”直接制定成层次结构。这种结构以一种即使非专家也能很容易理解的方式保存和展示知识。

每个节点都由一个属性或特征组成,随着我们向下移动,该属性或特征会进一步拆分为更多节点。但是我们如何决定:

  • 哪个属性/特征应该放在根节点?
  • 哪些特征将充当内部节点或叶节点?

为了决定这一点,以及如何拆分树,我们使用了诸如基尼指数、信息增益等拆分措施。

基尼指数

基尼指数或基尼系数或基尼杂质计算特定变量在随机选择时被错误分类的概率程度以及基尼系数的变化。它适用于分类变量,提供“成功”“失败”的结果,因此仅进行二元拆分。它不像它的对应物——信息增益那样计算密集。根据基尼指数,计算另一个名为 Gini Gain 的参数的值,其值在决策树的每次迭代中最大化,以获得完美的 CART

基尼指数的程度从0到1不等,

  • 其中 0 表示所有元素都与某个类相关联,或者那里只存在一个类。
  • 基尼指数值为 1 表示所有元素随机分布在各个类中,并且
  • 值 0.5 表示元素均匀分布到某些类中。

它是由Leo Breiman在 1984 年提出的,作为决策树学习的杂质度量

在数学上,基尼指数表示为

在此处输入图像描述

在哪里,

  • C是类的总数,
  • p(i)是选择具有类的数据点的概率i

在构建决策树时,我们更愿意选择具有最小基尼指数的属性/特征作为根节点。

基尼指数用在经典的 CART 算法中,非常容易计算。

Gini Index:
    for each branch in split:
        Calculate percent branch represents #Used for weighting
        for each class in branch:
            Calculate probability of class in the given branch.
            Square the class probability.
        Sum the squared class probabilities.
        Subtract the sum from 1. #This is the Ginin Index for branch
    Weight each branch based on the baseline probability.
    Sum the weighted gini index for each split.

python , R中的实现

参考: