for _ in range(self.n_iter):
errors = 0
for xi, target in zip(X, y):
update = self.eta * (target - self.predict(xi))
self.w_ += update * xi
self.b_ += update
errors += int(update != 0.0)
self.errors_.append(errors)
return self
def net_input(self, X):
"""입력 계산"""
return np.dot(X, self.w_) + self.b_
def predict(self, X):
"""단위 계단 함수를 사용하여 클래스 레이블을 반환합니다"""
return np.where(self.net_input(X) >= 0.0, 1, 0)
이 퍼셉트론 구현을 사용하여 학습률 eta(η)와 에포크 횟수(훈련 데이터셋을 반복하는 횟수) n_iter로 새로운 Perceptron 객체를 초기화합니다.
fit 메서드에서 절편 self.b_를 0으로 초기화하고 self.w_ 가중치를 벡터 으로 초기화합니다. 여기에서 m은 데이터셋에 있는 차원(특성) 개수입니다.