sklearn中f1_score参数传递报错:实参数量与定义不符
解决sklearn f1_score参数传递报错问题
错误原因
你代码里的第三个参数[0, 1, 2, 3]没有指定参数名labels=,被当作位置参数传递给了f1_score,但该函数仅接受y_true和y_pred两个位置参数,后续参数(如labels、average)都需要显式指定参数名(关键字参数),所以触发了参数数量不匹配的报错。
修改后的代码
from sklearn.metrics import f1_score F1_score = f1_score(lab2d, pred2d, labels=[0, 1, 2, 3], average=None) print("Validation Dice Coefficient.... ") print("Background:", F1_score[0]) print("CSF:", F1_score[1]) print("GM:", F1_score[2]) print("WM:", F1_score[3])
补充说明
sklearn的metrics模块中,多数指标函数的非核心参数(比如指定类别标签的labels、控制平均方式的average)都被设计为关键字-only参数,目的是避免因参数顺序混淆导致的错误,必须显式写出参数名才能正常传递。
内容的提问来源于stack exchange,提问作者Dream
相关产品推荐
相关产品推荐

