추가적으로 이 장을 읽은 후 self.w_ = rgen.normal(loc=0.0, scale=0.01, size=X.shape[1])을 self.w_ = np.zeros(X.shape[1])로 바꾼 후 다음 절에 나온 퍼셉트론 훈련 코드를 eta 값을 바꾸어 가며 실행해 보세요. 결정 경계가 바뀌지 않는 것을 확인할 수 있을 것입니다.
Note ≡ 넘파이 배열 인덱싱
1차원 배열의 넘파이 인덱싱(indexing)은 대괄호([])를 사용하는 파이썬 리스트와 비슷하게 작동합니다. 2차원 배열에서 첫 번째 인덱스는 행 번호고, 두 번째 인덱스는 열 번호를 나타냅니다. 예를 들어 X[2, 3]이라고 쓰면 2차원 배열 X의 세 번째 행과 네 번째 열을 선택합니다.
fit 메서드는 가중치를 초기화한 후 훈련 데이터셋에 있는 모든 개개의 샘플을 반복 순회하면서 이전 절에서 설명한 퍼셉트론 학습 규칙에 따라 가중치를 업데이트합니다.
클래스 레이블은 predict 메서드에서 예측합니다. fit 메서드에서 훈련하는 동안 가중치를 업데이트하기 위해 predict 메서드를 호출하여 클래스 레이블에 대한 예측을 얻습니다. predict 메서드는 모델이 학습되고 난 후 새로운 데이터의 클래스 레이블을 예측하는 데도 사용할 수 있습니다. 에포크마다 self.errors_ 리스트에 잘못 분류된 횟수를 기록합니다. 나중에 훈련하는 동안 얼마나 퍼셉트론을 잘 수행했는지 분석할 수 있습니다. net_input 메서드에서 사용한 np.dot 함수는 벡터 점곱 wTx+b를 계산합니다.