python - 如何正确计算基尼指数?
问题描述
该函数接收一个列表并计算一个基尼指数。基尼指数的计算方法是用 1 减去每个类别的概率平方和。
Input
- values: a list of labels.
Output
- impurity: gini index of the list.
def gini(values):
height, area = 0, 0
for value in values:
height += value
area += height - value / 2.
fair_area = height * len(values) / 2.
impurity = (fair_area - area) / fair_area
return impurity
impurity should be 0.4082 for gini([0,0,0,0,0,1,1]) (now its 0.7142)
and 0.5 for gini([0,0,1,1]) (this works)
如何根据最终结果正确计算?
解决方案
推荐阅读
- kubernetes - cert-manager:让我们加密拒绝 ACME 帐户
- ios - UserDefaults.standard.set() 仅在 watchOS 上不起作用
- pytorch - 为什么 timm 视觉变压器位置嵌入初始化为零?
- android - 有没有办法让 actionBar 后退按钮用 putExtra 重新发送意图?
- arrays - 使用 For each Statement 循环遍历 VBA Excel 中的多维数组 - 仅第一维
- react-native - React native reducer:如何更新数组中的对象值
- r - 行名称列并修改 R 中的日期
- javascript - 制作一个按钮来移动一个对象
- android - Paging 3 如何处理数据并与房间交互
- javascript - 如何在 JOI 17 中添加自定义验证器?