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

白葡萄酒质量数据集KNN调参出现SyntaxError与TypeError问题求助

报错原因排查及解决方法

1. SyntaxError: unexpected EOF while parsing 报错

  • 原因:该报错表示Python解析器执行到代码末尾时,发现语法结构不完整。你提供的代码最后一行缺失右括号:
    # 原错误代码
    print('List of validation losses: ' + str(validation_list)
    
    缺少配对的),导致解析器到代码结束都没找到闭合的括号,触发语法错误。
  • 解决方法:补全最后一行的右括号即可:
    print('List of validation losses: ' + str(validation_list))
    

2. TypeError: __init__() got an unexpected keyword argument 'vanilla_or_ball' 报错

  • 原因:你实例化KNN类时传入了vanilla_or_ball='vanilla'的关键字参数,但你使用的KNN类的构造方法__init__没有定义该入参:
    # 原错误代码
    clf = KNN(k, vanilla_or_ball='vanilla')
    
    如果是用sklearn官方的KNeighborsClassifier,原生不支持该参数;如果是你自定义的KNN类,说明你没有在构造方法里声明该参数。
  • 解决方法:
    • 若使用官方sklearn的KNN,直接删除该参数即可,修改为:
      clf = KNeighborsClassifier(n_neighbors=k)
      
    • 若使用自定义KNN类,在类的__init__方法中添加vanilla_or_ball参数的声明和对应逻辑即可。

额外逻辑问题提示(非报错类但影响结果)

你当前代码中for d in distances循环的缩进有问题,损失计算、最优参数判断、打印逻辑都在循环外,只会取最后一个距离指标的结果,而且你没有把每次计算的损失追加到training_list和validation_list中,最终两个列表都会是空值,需要调整缩进和追加逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:30:03