2017-07-04 3 views
-1

私はPythonプログラムで作業していました。私は "Perception"という名前のクラスを作成しました。コードは以下のとおりである:NameError:name 'classname'はPythonで定義されていません

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)

私は次の行でクラスを宣言したいとき:

NameError:

ppn = Perceptron(eta=0.1, n_iter=10) 

私は次のエラーを取得します:名前 'パーセプトロン'が定義されていません

私はPythonが初めてです。次のステップで私を助けてください。そして、事前に感謝します。

+1

別のファイルにクラスを使用しています(つまり、 'ppn = Perceptron(eta = 0.1、n_iter = 10)')。 – inspectorG4dget

+1

上記に加えて、まずPerceptronをインポートする必要があります。 –

答えて

1
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) 
関連する問題