首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段代码中出现了“未定义名称'gini‘”的错误?

为什么这段代码中出现了“未定义名称'gini‘”的错误?
EN

Stack Overflow用户
提问于 2022-05-21 07:44:12
回答 1查看 65关注 0票数 -3

我似乎搞不懂为什么会有错误。我正在学习决策树算法。

代码语言:javascript
复制
def gini(rows):
    """calculate the gini impurity for a list of rows."""
    
    counts = class_counts(rows)
    impurity  = 1
    for lbl in counts:
        prob_of_lbl = counts[lbl] / float(len(rows))
        impurity -= prob_of_lbl**2
    return impurity

def info_gain(left, right, current_uncertainty):
    """Information Gain"""
    
    #The uncertainty of the starting node, minus the weighted
    #impurity of two child nodes.
    
    p = float(len(left)) / (len(left) + len(right))
    return current_uncertainty - p * gini(left) - (1 - p) * gini(right)
EN

回答 1

Stack Overflow用户

发布于 2022-05-21 08:10:49

您在def gini ...之前有缩进吗?如果您的gini函数位于类中,则应该使用ClassName.gini

例如:

代码语言:javascript
复制
class ClassName:
    def gini(rows):
        ...
    def info_gain(left, right, current_uncertainty):
        ...
        ClassName.gini(rows)
        ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72327637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档