Arkadaşlar merhaba, oluşturduğum sınıf içinde tanımladığım fonksiyonu çağırdığımda verdiği hata şu :
zaten init fonksiyonu içinde ki data değişkenini dışarıdan veriyorum. Hatanın nedeni tam olarak ne ? Sınıf kavramını tam anlayamadım sanırım.
Traceback (most recent call last):
File “E:/percetron_ysa.py”, line 63, in
a =perzeptron.train()
TypeError: train() missing 1 required positional argument: ‘self’
class perzeptron(object):
def __init__(self,data,learn_rate,epoch):
self.data = data
self.learn_rate = learn_rate
self.epoch = epoch
def train(self):
import numpy as np
self.gewicht = np.zeros(np.size(self.data,1)-1)
self.x = np.hstack(np.ones(len(self.data),1),self.data[:,1:np.size(self.data,1)])
self.y = self.data[:,0]
self.fehler_liste = self.fehler(self.predict(self.x))
print("Die Fehler Nummers ist ",self.fehler_liste)
for i in range(len(self.data)):
self.y_perzeptron = 1 if np.sum(self.x[i]*self.gewicht) > 0 else 0
self.gewicht = self.gewicht + self.learn_rate*(self.y[i]-self.y_perzeptron)*self.x[i]
def fehler(self,perzeptron):
fehler = []
fehler_nummer = 0
for i in range(len(perzeptron)):
fehler_wert = self.y[i] - perzeptron[i]
if fehler_wert != 0 :
fehler_nummer += 1
fehler.append(fehler_nummer)
return fehler
def predict(self,x):
vorhersagen = (np.sum(self.gewicht * x,axis=1) > 0)*1
return vorhersagen
import pandas as pd
data = pd.read_csv("C:/Users/ErenAhmet/YandexDisk/Python/Example.tsv",sep="\t",header=None)
data = data.values
Per = perzeptron(data,0.1,100)
a =perzeptron.train()