ich erhalte in dem nachfolgenden Code an mehreren Stellen die Meldung "undefined name" und kann den oder die Fehler nicht finden.
Leider weiß ich nicht, wie ich hier eine Nummerierung für die Zeilen einfügen kann. Von daher habe ich die entsprechenden Zeilen mit dem Wort FEHLER markiert. Ich hoffe, dass das hilft.
Ich würde mich über Hilfe freuen.
Danke und mfG
TomPyt
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
class AdalineGD(object):
def __init__(self, eta=0.01, n_iter=50, random_state=1):
self.eta = eta
self.n_iter = n_iter
self.random_state = random_state
def fit(self, X, y):
rgen = np.random.RandomState(self.random_state)
self.w_ = rgen.normal(loc=0.0, scale=0.01,
size=1 + X.shape[1])
self.cost_ = []
for i in range(self.n_iter):
net_input = self.net_input(X)
output = self.activation(net_input)
errors = (y - output)
self.w_[1:] += self.eta * X.T.dot(errors)
self.w_[0] += self.eta * errors.sum()
cost = (errors**2).sum() / 2.0
self.cost_.append(cost)
return self
def net_input(self, X):
# """Calculate net input"""
return np.dot(X, self.w_[1:]) + self.w_[0]
def activation(self, X):
# """Lineare Aktivierungsfuktion berechnen"""
return X
def predict(self, X):
# """Return class label after unit step"""
return np.where(self.net_input(X) >= 0.0, 1, -1)
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 4))
ada1 = AdalineGD(n_iter=10, eta=0.01).fit(X, y) #FEHLER: undefined name 'X' undefined name 'y'
ax[0].plot(range(1, len(ada1.cost_) + 1), np.log10(ada1.cost_), marker='o')
ax[0].set_xlabel('Epochs')
ax[0].set_ylabel('log(Sum-squared-error)')
ax[0].set_title('Adaline - Learning rate 0.01')
ada2 = AdalineGD(n_iter=10, eta=0.0001).fit(X, y) #FEHLER: undefined name 'X' undefined name 'y'
ax[1].plot(range(1, len(ada2.cost_) + 1), ada2.cost_, marker='o')
ax[1].set_xlabel('Epochs')
ax[1].set_ylabel('Sum-squared-error')
ax[1].set_title('Adaline - Learning rate 0.0001')
plt.show()
print('standardize features')
X_std = np.copy(X) #FEHLER: undefined name 'X'
X_std[:, 0] = (X[:, 0] - X[:, 0].mean()) / X[:, 0].std() #FEHLER: undefined name 'X'
X_std[:, 1] = (X[:, 1] - X[:, 1].mean()) / X[:, 1].std() #FEHLER: undefined name 'X'
ada = AdalineGD(n_iter=15, eta=0.01)
ada.fit(X_std, y) #FEHLER: undefined name 'y'
plot_decision_regions(X_std, y, classifier=ada) #FEHLER: undefined name 'plot_decision_regions' undefined name 'y'
plt.title('Adaline - Gradient Descent')
plt.xlabel('sepal length [standardized]')
plt.ylabel('petal length [standardized]')
plt.legend(loc='upper left')
plt.show()
plt.plot(range(1, len(ada.cost_) + 1), ada.cost_, marker='o')
plt.xlabel('Epochs')
plt.ylabel('Sum-squared-error')
plt.show()