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

PySpark逻辑回归调用areaUnderROC和pr触发AttributeError问题咨询

报错原因
  • 低级变量错误:代码中直接调用model_summary.areaUnderROC,但你从未定义过model_summary变量,正确的调用路径应为model.summary
  • 核心逻辑错误:你的训练任务属于多分类任务:作为标签的HSCode列包含2个以上的分类值,而areaUnderROC、pr属性仅在二分类逻辑回归的训练结果摘要中存在,多分类场景下的LogisticRegressionTrainingSummary对象本身就不包含这两个属性。
解决方案

场景1:实际需求为二分类任务

先将作为标签的HSCode列处理为仅包含0、1两个值的二值列,再重新训练模型,即可正常调用对应属性:

# 补充定义summary变量
model_summary = model.summary
# 读取AUC
print("ROC曲线下面积:", model_summary.areaUnderROC)
# 读取PR曲线数据
model_summary.pr.show()

场景2:实际需求为多分类任务

多分类场景下不能直接调用二分类专属属性,需使用对应评估器计算所需指标:

from pyspark.ml.evaluation import MulticlassClassificationEvaluator, BinaryClassificationEvaluator

# 生成模型预测结果
pred_df = model.transform(data)

# 计算多分类通用指标:准确率、F1、精确率、召回率等
multi_evaluator = MulticlassClassificationEvaluator(
    predictionCol="prediction", 
    labelCol="label", 
    metricName="f1" # 可替换为accuracy、weightedPrecision、weightedRecall等
)
f1 = multi_evaluator.evaluate(pred_df)
print("多分类F1值:", f1)

# 如需计算多分类AUC,可采用OVR(一对多)策略计算
auc_evaluator = BinaryClassificationEvaluator(
    labelCol="label", 
    rawPredictionCol="rawPrediction", 
    metricName="areaUnderROC"
)
ovr_auc = auc_evaluator.evaluate(pred_df)
print("OVR策略多分类AUC值:", ovr_auc)

内容的提问来源于stack exchange,提问作者Azman Mahyuddin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:54:04