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

如何正确使用PyPI的dtosmote 1.0.3处理自有数据集?

调用dtosmote包触发NameError: name 'delaunaySMOTE' is not defined解决方法

问题场景

  • 机器学习类别不平衡(Class-imbalance)处理场景下,SMOTE是业内通用的经典过采样算法,使用imblearn.over_sampling中的SMOTE类对不平衡二分类数据集做过采样时,代码可正常运行,能正确输出采样前后的数据集类别分布。
  • 查阅DTO-SMOTE相关学术论文后,安装PyPI发布的dtosmote 1.0.3包(该包官方文档完善度较低),安装命令为:
    pip install dtosmote
    
  • 尝试直接将原代码中的SMOTE替换为delaunaySMOTE(random_state=42)实例时,触发报错:
    NameError: name 'delaunaySMOTE' is not defined
    
    无法正常调用DTO-SMOTE算法完成过采样。

报错原因

该包未在顶层模块暴露名为delaunaySMOTE的类,直接调用不存在的类名会触发名称错误;同时该包的实例化参数和imblearn的SMOTE类逻辑不一致,不能直接套用SMOTE的实例化写法。

正确调用步骤

  1. 从对应子模块导入正确的算法类:
    from dtosmote.dto_smote import DTO
    
  2. 传入规定参数完成采样器实例化:
    sm = DTO('teste1','solid_angle',7.5)
    
  3. 调用和imblearn接口兼容的fit_resample()方法完成过采样,即可得到类别均衡的数据集:
    X_resampled, y_resampled = sm.fit_resample(X_original, y_original)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:12:19