You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel计算数据集的Gini系数?含决策树test size=50计算需求

Gini系数计算与决策树Gini获取解决方案

一、Excel手动计算数据集Gini系数

Gini不纯度的核心公式为:G = 1 - Σ(pᵢ²),其中pᵢ是对应类别在目标数据集/分组中的占比。针对你的5个索引(0-4)、每组30条数据的结构,操作步骤如下:

  • 分组统计类别占比:对每个索引(如0)筛选对应30条数据,用COUNTIF函数统计各类别数量,比如类别X的数量:=COUNTIF(筛选后类别区域, "X"),再除以30得到pₓ。
  • 计算单组Gini:对每个索引组,计算所有类别pᵢ的平方和,再用1减去该值,即得到该组的Gini系数。若为二元分类,公式简化为1 - (p₁² + p₂²)。
  • 整体数据集Gini(可选):统计300条数据中各类别总数量,计算总占比后代入核心公式即可。

二、获取test size=50的决策树Gini系数

1. 节点层面Gini不纯度

决策树的每个节点会直接标注Gini值(即节点不纯度),查看你提供的决策树截图,直接读取对应节点的Gini标注即可。

2. 测试集评估Gini系数(分类性能指标)

若需计算测试集(50条)的Gini评估指标(与节点不纯度不同,公式为G = 2*AUC - 1),可通过Python快速实现,示例代码:

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split

# 读取数据集(替换为你的Excel路径)
df = pd.read_excel("your_dataset.xlsx")
X = df.drop("类别列名", axis=1)  # 替换为你的类别列名称
y = df["类别列名"]

# 拆分出size=50的测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=50, random_state=42)

# 训练决策树并计算Gini
dt_clf = DecisionTreeClassifier()
dt_clf.fit(X_train, y_train)
y_proba = dt_clf.predict_proba(X_test)[:, 1]  # 取正类预测概率

auc = roc_auc_score(y_test, y_proba)
gini_score = 2 * auc - 1
print(f"测试集Gini系数:{gini_score:.4f}")

内容的提问来源于stack exchange,提问作者fera fani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:10:36