调用未绑定方法fit()时,必须将DecisionTreeClassifier实例作为第一个参数(改为获取Stock实例)

2024-09-26 18:02:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图访问我的Stock类中clf对象上的fit方法,得到以下错误:

unbound method fit() must be called with DecisionTreeClassifier instance as first argument (got Stock instance instead)

股票类别:

class Stock():
    def __init__(self,equity, history):
        self.equity = equity
        self.history = history
        self.clf = tree.DecisionTreeClassifier

    # Couldn't use built-in comparable method
    # This method is a workaround.
    def exists(self, allCompanies):
        exists = False;
        for other in allCompanies:
            if self.equity.sid == other.equity.sid:
                exists = True

        return exists

在我实例化类的地方:

^{pr2}$

如果抛出错误:

...
                if current > prev:
                    Stock.clf.fit(Stock, 1)
                else:
                    Stock.clf.fit(Stock, 0)
...

Tags: instanceinselfdef错误stockexistshistory
3条回答

您没有实例化tree.DecisionTreeClassifier。因此,您正在调用类上的fit()方法,并需要告诉它您要使用哪个实例,正如它所说的那样。在

假设您想实例化tree.DecisionTreeClassifier

self.clf = tree.DecisionTreeClassifier()

您需要实例化您的DecisionTreeClassifier

self.clf = tree.DecisionTreeClassifier()

为了完成其他正确答案,下面是一个小例子,它将帮助您理解buggy行self.clf = tree.DecisionTreeClassifier的含义:

class f(object):

    def __init__(self):
        pass

print(isinstance(f, f))
print(isinstance(f(), f))

相关问题 更多 >

    热门问题