그동안 혼자 책보고 공부하면서 노션에 적었던 글을 옮겨 적으면서 복습하려고 적는 글입니다.
transform() → StandardScaler 클래스처럼 특성 값을 변환하는 도구로 사용 가능
클러스터의 중심을 특성공학처럼 사용해 데이터셋을 저차원으로 변환할 수 있음( 책의 예시에서는 10,000 → 3)
실전에서는 몇개의 클러스터가 있는지 알 수 없기 때문에 이 값을 찾아줘야함.\
적절한 클러스터 개수를 찾기 위한 대표적인 방법: 엘보우
이너셔: 클러스터의 중심과 클러스터에 속한 샘플 사이의 거리 제곱 합
차원을 줄일 수 있다면 저장 공간을 크게 절약할 수 있을 것임.
교재에서 10,000개의 특성을 50개로 줄임. 이로인해 어느 정도 손실이 발생할 수 밖에 없음.
하지만 최대한 분산이 큰 방향으로 데이터를 투영했기 때문에 원본 데이터를 상당 부분 재구성할 수 있음. → inverse_transform() 메서드 제공
주성분이 원본 데이터를 얼마나 잘 나타내는지 기록한 값 → 설명된 분산(explained variance)
PCA로 훈련 데이터의 차원을 축소하면 저장 공간뿐만 아니라 머신러닝 모델의 훈련 속도도 높일 수 있음.
가장 기본적인 인공 신경망 → 확률적 경사 하강법을 사용하는 로지스틱 회귀
Keras의 레이어 패키지 안에는 다양한 층이 준비되어 있음.
가장 기본이 되는 층 → 밀집층
텐서플로에서는 정수로 된 타깃값을 원-핫 인코딩으로 바꾸지 않고 사용 가능
정수로된 타깃값을 사용해 크로스 엔트로피 손실을 계산 → sparse_categorical_crossentropy
(if, 원-핫 인코딩으로 준비했다면 loss = ‘categorical_crossentropy)
metrics → 에포크마다 손실 값을 출력
케라스에서 모델을 평가하는 메서드는 evaluate()
입력층과 출력층 사이에 밀집층이 추가 → 은닉
패션 MNIST 데이터는 28 x 28 크기이기 때문에 인공 신경망에 주입하기 위해 넘파이 배열의 reshape 함수를 이용 → 1차원으로 펼침. (이렇게 해도 좋지만 케라스에서는 Flatten 층을 제공)
층에 있는 일부 뉴런을 랜덤하게 껴서 과대적합을 막음.
훈련된 모델의 파라미터를 저장 → save_weight()
모델 구조와 모델 파라미터를 함께 저장 → save()