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

使用Logistic Regression遇NameError: name 'label'未定义的解决方法

解决Logistic Regression训练中的NameError与分类指标警告问题

核心错误:NameError: name 'label' is not defined

错误原因

你的Print_metrics函数中,调用confusion_matrix时存在两个问题:

  1. 传入了未定义的label变量;
  2. confusion_matrix函数不支持average='macro'参数——该参数仅适用于precision_score、recall_score这类指标计算,混淆矩阵不需要它。

修复方案

修改Print_metrics函数中混淆矩阵的调用逻辑:

  1. 从测试集标签中提取并定义分类标签(排序保证一致性);
  2. 移除错误的average参数,正确指定labels参数。

示例修复代码:

# 获取所有分类标签并排序
labels = sorted(y_test.unique())
# 正确调用混淆矩阵
print("Confusion Matrix", confusion_matrix(y_test, y_pred, labels=labels))

次要问题:sklearn分类指标警告

警告原因

当使用average='macro'计算多分类指标时,pos_label='positive'参数会被自动忽略——该参数仅适用于二分类任务的average='binary'模式。

处理方案

  • 如果是二分类任务:将average改为'binary',同时显式指定pos_label(比如pos_label=1);
  • 如果是多分类任务:直接移除pos_label参数即可,警告不影响计算结果,仅为提示信息。

完整修复后的Print_metrics函数示例

from sklearn.metrics import confusion_matrix, accuracy_score, recall_score, precision_score, f1_score, roc_auc_score

def Print_metrics(y_test, y_pred, model_name):
    print(f"Model name:  {model_name}")
    
    # 计算各项分类指标(多分类用macro平均)
    accuracy = accuracy_score(y_test, y_pred)
    recall = recall_score(y_test, y_pred, average='macro')
    precision = precision_score(y_test, y_pred, average='macro')
    f1 = f1_score(y_test, y_pred, average='macro')
    auc = roc_auc_score(y_test, y_pred, average='macro')
    
    print(f"accuracy {accuracy:.2f}")
    print(f"recall {recall:.2f}")
    print(f"precision {precision:.4f}")
    print(f"F1_score {f1:.4f}")
    print(f"Area Under the Curve {auc:.2f}")
    
    # 修复后的混淆矩阵调用
    labels = sorted(y_test.unique())
    print("Confusion Matrix", confusion_matrix(y_test, y_pred, labels=labels))

额外注意

确保你的Our_models变量是已定义的分类器实例列表,比如:

from sklearn.tree import DecisionTreeClassifier

# 示例:包含逻辑回归和决策树的模型列表
Our_models = [LogisticRegression(), DecisionTreeClassifier()]

内容的提问来源于stack exchange,提问作者Justin Bertsch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:05:27