果冻医学书 2024-12-14 23:49 采纳率: 100%
浏览 589
已结题

Attributeerror:super object has no attribute '__sklearn_tags__'_'

请问各位,我不是IT行业人士,买的模板不知道为啥出现这种情况

img

img


img

  • 写回答

23条回答 默认 最新

  • 清水白石008 2024-12-15 06:07
    关注
    🕒上午好,题主!目前:🟢[在线]
    📢参考GPT-4o mini 模型、由清水白石008整理提供!
    📣今日金句:“成功是由许多小的努力汇聚而成的。”** — 文森特·梵高
    

    您好!您遇到的错误信息 AttributeError: 'super' object has no attribute '__sklearn_tags__' 通常出现在使用 scikit-learn(一个流行的 Python 机器学习库)时,尤其是在自定义估计器(Estimator)的继承和使用过程中。即使您不是 IT 专业人士,我会尽量用简单易懂的语言来解释这个问题及其解决方案。

    错误原因

    这个错误表明,您的代码在使用 super() 函数调用父类的方法时,父类(或其父类)缺少 __sklearn_tags__ 属性。__sklearn_tags__ 是 scikit-learn 中用于定义估计器行为的特殊属性,它是一个字典,包含一些键值对,用于指定估计器的特性,例如是否是分类器、回归器或转换器。

    简单来说,您的自定义类可能继承了一个 scikit-learn 的类,但由于版本不兼容或代码模板问题,导致这个必要的属性缺失。

    常见情况与解决方案

    1. scikit-learn 版本不兼容
      不同版本的 scikit-learn 对 __sklearn_tags__ 的处理方式可能不同。如果您使用的模板基于旧版本,而在新版本中运行,就可能出现此错误。

      解决方案

      • 升级 scikit-learn:尝试将 scikit-learn 升级到最新版本。可以在命令行中执行:
        pip install --upgrade scikit-learn
        
        或者,如果您使用 conda:
        conda update scikit-learn
        
      • 降级 scikit-learn(不推荐):如果升级后仍有问题,您可以尝试降级到特定版本,但通常不建议这样做,因为新版本通常包含 bug 修复和性能改进。降级命令示例:
        pip install scikit-learn==1.0.0  # 将版本号替换为需要的版本
        
    2. 自定义估计器定义错误
      如果您或模板代码中定义了自定义的 scikit-learn 估计器(通过继承 BaseEstimatorClassifierMixinRegressorMixin 等类),则必须正确定义 __sklearn_tags__ 属性。

      解决方案
      确保您的自定义估计器类中定义了 __sklearn_tags__ 属性。例如:

      from sklearn.base import BaseEstimator, ClassifierMixin
      
      class MyClassifier(BaseEstimator, ClassifierMixin):
          def __init__(self, param1=0, param2=1):
              self.param1 = param1
              self.param2 = param2
      
          def fit(self, X, y):
              # 训练逻辑
              return self
      
          def predict(self, X):
              # 预测逻辑
              return ...
      
          def _more_tags(self):  # 使用 _more_tags 代替 __sklearn_tags__
              return {'X_types': ['2darray']}
      

      在较新的 scikit-learn 版本中,推荐使用 _more_tags 方法来替代直接定义 __sklearn_tags__。这个方法返回一个包含标签的字典,会被合并到默认标签中,更加灵活且不易出错。

    3. 模板代码错误
      可能是您使用的模板代码本身存在问题。

      解决方案

      • 联系模板作者:如果可能,联系模板的作者或提供者,报告问题并寻求帮助。
      • 检查模板代码:仔细检查与 scikit-learn 相关的部分,特别是自定义估计器的定义,确保符合官方文档的要求。
      • 搜索类似问题:在网上搜索错误信息,看看是否有其他人遇到过相同的问题并找到了解决方案。

    针对非 IT 人士的建议

    如果您对编程不太熟悉,以上解释可能仍然有些难以理解。最简单的办法是先尝试升级 scikit-learn。如果升级后仍有问题,建议您:

    • 寻求专业人士的帮助:找一个熟悉 Python 和 scikit-learn 的程序员或技术人员来帮助您解决问题。
    • 提供更多信息:如果您在论坛或社区寻求帮助,请提供尽可能多的信息,例如:
      • 完整的错误信息(包括 traceback)。
      • 您使用的 scikit-learn 版本(可以使用 pip show scikit-learn 命令查看)。
      • 相关的代码片段。
      • 您使用的操作系统和 Python 版本。

    总结

    希望以上信息能够帮助您理解并解决 AttributeError: 'super' object has no attribute '__sklearn_tags__' 错误。这个问题通常与 scikit-learn 版本不兼容或自定义估计器的定义有关。通过升级库、正确设置自定义类的属性,或检查模板代码,您应该能够找到解决方案。

    如果您在尝试这些步骤后仍然遇到问题,请随时寻求专业人士的帮助,或者在相关社区中发布您的问题,提供详细信息以获得更好的支持。祝您顺利解决问题!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(22条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 修改了问题 12月15日
  • 修改了问题 12月15日
  • 展开全部

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据