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

使用SMOTE时提示TypeError: __init__()不存在'kind'参数如何解决

问题根因

该报错由imblearn库的版本迭代接口变更导致:

  • 0.4及更早版本的imblearn中,SMOTE类支持kind参数,用于指定不同的过采样变体(如svm、borderline1等)
  • 0.4版本之后,原kind参数对应的不同采样逻辑被拆分为独立的采样类,原生SMOTE类已移除kind参数,传入该参数会触发类型错误。

解决方案

你需要的SVM变种SMOTE现在对应独立的SVMSMOTE类,调整代码即可正常运行:

from imblearn.over_sampling import SVMSMOTE
# 替换原SMOTE类为SVMSMOTE,移除kind参数
sm = SVMSMOTE(random_state=r_state, sampling_strategy=1, k_neighbors=9)
sdf = sm.fit_resample(x_train, y_train)

如果需要用到其他原kind参数对应的采样逻辑,对应映射关系如下:

  • 原kind='regular' → 直接使用现有SMOTE类
  • 原kind='borderline1'/kind='borderline2' → 使用BorderlineSMOTE类,通过该类的kind参数指定具体类型
  • 原kind='svm' → 使用SVMSMOTE类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:06:03