名称错误:名称';类名';在python中未定义错误
我在做一个python程序。我创建了一个名为“Perception”的类。代码如下:名称错误:名称';类名';在python中未定义错误,python,python-3.x,numpy,Python,Python 3.x,Numpy,我在做一个python程序。我创建了一个名为“Perception”的类。代码如下: 将numpy导入为np 类感知器(对象): 定义初始值(自,eta=0.01,n_iter=10): self.eta=eta self.n_iter=n_iter def配合(自、X、y): self.w_uz=np.zero(1+X.shape[1]) self.errors[] 对于uu-in-range(self.n_u-iter): 错误=0 对于席,在zip(x,y)中的目标: 更新=self.e
将numpy导入为np
类感知器(对象):
定义初始值(自,eta=0.01,n_iter=10):
self.eta=eta
self.n_iter=n_iter
def配合(自、X、y):
self.w_uz=np.zero(1+X.shape[1])
self.errors[]
对于uu-in-range(self.n_u-iter):
错误=0
对于席,在zip(x,y)中的目标:
更新=self.eta*(目标-self.predict(xi))
W.[席:1:] =更新**
self.w_u[0]+=更新
错误+=int(更新!=0.0)
self.errors\uu.append(错误)
回归自我
def净输入(自身,X):
“”“计算净输入”“”
返回np.dot(X,self.w_u[1:])+self.w_[0]
def预测(自我,X):
“”“在单元步骤后返回类标签”“”
返回np.where(self.net_input(X)>=0.0,1,-1)
您应该调用ppn=Perceptron.Perceptron(eta=0.1,n_iter=10)是您在不同文件中使用的类(即ppn=Perceptron(eta=0.1,n_iter=10)
)吗?除此之外,您可能需要先导入Perceptron
。您做了哪些更准确的更改?
Run this it should work , if not share the screen hot of code and output.
import numpy as np
class Perceptron(object):
def __init__(self, eta=0.01, n_iter=10):
self.eta=eta
self.n_iter=n_iter
def fit(self, X, y):
self.w_=np.zeros(1+X.shape[1])
self.errors_ = []
for _ in range(self.n_iter):
errors =0
for xi,target in zip(X,y):
update = self.eta * (target - self.predict(xi))
self.w_[1:] += update * xi
self.w_[0] += update
errors += int(update != 0.0)
self.errors_.append(errors)
return self
def net_input(self, X):
"""Calculate net input"""
return np.dot(X, self.w_[1:]) + self.w_[0]
def predict(self, X):
"""Return class label after unit step"""
return np.where(self.net_input(X) >= 0.0, 1, -1)
ppn = Perceptron(eta=0.1, n_iter=10)