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

如何自定义继承Sklearn RandomForestRegressor的类?解决继承报错

问题分析与解决

错误原因

你当前代码的核心问题是继承了RandomForestRegressor的实例对象clf,而非类本身。Python中类继承必须以类作为父类,不能用已经实例化的对象,这直接导致了后续初始化时的类型错误和参数传递混乱。

正确实现方式

下面是符合需求的代码,既保留原类全部功能,又能添加自定义方法:

from sklearn import ensemble

class CustomRandomForestRegressor(ensemble.RandomForestRegressor):
    def __init__(self, **kwargs):
        # 调用父类初始化,保留所有原类参数
        super().__init__(**kwargs)
    
    def inSampleAccuracy(self):
        # 可根据实际需求实现准确率计算逻辑,示例仅打印提示
        print("样本内准确率已计算")

# 测试:可传入原类支持的所有参数
testModel = CustomRandomForestRegressor(max_depth=None)
# 调用自定义方法
testModel.inSampleAccuracy()
# 调用原类方法,比如拟合数据(示例)
# testModel.fit(X_train, y_train)

关键说明

  • 继承目标必须是ensemble.RandomForestRegressor类,而非它的实例。
  • 使用super().__init__(**kwargs)可以完整继承父类的所有初始化参数,确保原类的所有功能都能正常使用。
  • 自定义方法可自由添加,不会影响原类的任何功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:50:27