- (주절주절1) 열심히 정리하다가 ctrl+s를 눌렀어야 했는데 w를 눌렀나... 그러니 창이 꺼졌다. 임시저장도 안되어 있고... 어제는 서버에서 폴더명 바꾸려고 뒤에 ~ 붙이고 엔터치니 폴더가 숨겨져서 다른 분이 도와주셨다... 무튼 나중에 나중에... - 2022.06.30 오전
- (주절주절2)점심 먹고 잠도 깰겸... 미루지 말고 하자... - 2022.06.30 오후
1) Standardization 표준화 :
*** 주의사항 - 몰랐었던 내용
scaler는 fit와 transform 메서드를 지니고 있는데, fit 메서드는 훈련 데이터에만 적용해, 훈련 데이터의 분포를 먼저 학습하고, 그 이후 transform 메서드를 훈련 데이터와 테스트 데이터에 적용해 스케일을 조정해야 함
따라서, 훈련 데이터에는 fit_transform() 메서드를 적용하고, 테스트 데이터에는 transform() 메서드를 적용해야 함(fit_transform()은 fit과 transform이 결합된 단축 메서드)
스케일링할 때, 모든 특성의 범위를 유사하게 만드는 것은 중요하지만, 그렇다고 모두 같은 분포로 만들 필요는 없음, 특성에 따라 각기 다른 스케일링을 적용하는게 유리할 수도 있기 때문
scaler.fit() : 데이터 변환을 학습, train셋에 대해서만 적용
scaler.transform() : 실제로 데이터 변환을 모두 수행, train셋과 test셋 모두에 대해서 적용
만약 fit_transform을 test data에도 적용하게 되면 test data로부터 새로운 평균값과 분산값을 얻게 됨, 즉 모델이 test data도 학습하게 됨(이는 모델의 성능을 평가할 수 없게 되는 것)
모델은 train data에 있는 평균과 분산을 학습하게 되는데, 이렇게 학습된 scaler()의 파라미터는 test data를 스케일하는데 사용됨 --> train data로 학습된 scaler()의 파라미터를 통해 test data의 피쳐값들이 스케일 됨
***