为了账号安全,请及时绑定邮箱和手机立即绑定

NameError: global name 'predict' is not defined

NameError: global name 'predict' is not defined  怎么解决?

正在回答

4 回答

http://img1.sycdn.imooc.com//5f14f1ed0001eb9708570682.jpg

谢谢采纳~

1 回复 有任何疑惑可以回复我~
import numpy as npclass Perceptron(object):
    # 注释1
    def __init__(self, eta = 0.01, n_iter = 10):        self.eta = eta        self.n_iter = n_iter    def fit(self, X, y):        # 注释2
        self.w_ = np.zeros(1 + X.shape[1])        self.errors_ = []        for _ in range(self.n_iter):
            errors = 0
            # 注释3
            for xi, target in zip(X, y):
                update = self.eta * (target - self.predict(xi))                # 注释4
                self.w_[1:] += update * xi                self.w_[0] += update
                errors += int(update != 0.0)                self.errors_.append(errors)    def net_input(self, X):        # 注释5
        return np.dot(X, self.w_[1:]) + self.w_[0]    def predict(self, X):        return np.where(self.net_input(X) >= 0.0, 1, -1)


1 回复 有任何疑惑可以回复我~

外层同级什么意思?

0 回复 有任何疑惑可以回复我~
#1

qq_雙子_04312075 提问者

就是net_input、predict函数的缩进与fit一样 如果以上都没有解决那就重新新建一个项目 我也不清楚为什么jupyter notebook 总是报奇怪的错
2018-12-25 回复 有任何疑惑可以回复我~

解决了 首先要把net_input和predict函数放到fit函数外层  和fit函数同级  还有多次出现NameError...xxx is not defined,先检查函数名有没有写错,然后出现了TypeError检查一下你的__init__函数,注意是两个下划线__  然后检查init 确保没有写成int  希望有帮助  这是我犯的一些错

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

NameError: global name 'predict' is not defined

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信