티스토리 뷰
Q. 정규화를 왜 해야할까요? 정규화의 방법은 무엇이 있나요?
- ❌ 정규화(Normalization) 는 데이터가 특정한 분포를 따르게 하려는 것이 아니라 범위를 조정하는데 목적이 있다.
* 데이터가 정규분포를 따르는지를 확인하는 것을 정규성(Normality) 검정이라고 합니다.
※ 정규화(Regularization) : 과적합을 방지하기 위해 추가적인 규제(L1- 가중치의 절대값의 합, L2 규제- 가중치의 제곱의 합을 비용함수에 추가)를 부여해 일반화 성능을 개선하는 것
1. 정규화(Normalization)란?
- 정규화는 각 데이터들의 범위를 일정하게 조절하여 피처들을 비슷한 스케일로 맞춰주는 것
2. 왜 해야할까?
- 피처의 크기 차이로 인해 편향되는 것을 줄이고 각 변수들의 영향을 균형있게 학습하여 모델 성능을 높이고,
- 불필요한 추가 연산을 줄여 모델의 학습 속도를 높이기 위해
1) 거리기반의 모델(KNN, SVM 등)에서는 큰 값 범위를 가진 피처가 더 큰 영향을 미치기 때문
정규화로 모든 피처가 동일한 범위에 위치하면 거리 계산이 더 균형있게 이루어 짐
2) 경사 하강법을 사용하는 모델
- 경사하강법은 손실 함수의 최소값을 찾기 위해 반복적으로 손실 함수의 기울기를 계산하고 가중치를 업데이트
이는 최적의 가중치가 결정될 때까지 반복되는데, 데이터 스케일이 맞지 않으면 특정 피처가 지나치게 큰 영향을 주어 최적의 값을 지나치며 비효율적인 반복이 발생할 수 있다.
* 경사하강법을 사용하는 모델들
- 선형 회귀: 경사 하강법을 통해 손실 함수(평균 제곱 오차)를 최소화하도록 가중치(회귀 계수)를 최적화
- 로지스틱 회귀: 확률적 경사 하강법(전체 데이터셋 대신 무작위로 선택한 한 개의 데이터 포인트를 이용해 손실의 기울기를 계산하는 방법)을 통해 손실 함수(로그 손실 함수)를 최소화하도록 가중치를 최적화
- 신경망(다층 퍼셉트론, CNN, RNN 등): 역전파를 통해 각 층의 가중치를 경사하강법으로 학습
- 서포트 벡터 머신(특히 커널SVM): 확률적 경사 하강법
- 행렬 분해 기반 추천 시스템: 사용자와 아이템의 잠재 요인을 학습하기 위해 경사하강법을 사용하여 손실 함수(RMSE)를 최소화
3. 정규화 방법
* 주의: 동일한 기준으로 정규화 시켜줘야 하므로 test는 새로운 fit을 하지 않고 train기준으로 transform만 할 것!
1) 최소-최대 정규화(Min-Max scaling): 각 변수의 최소값을 0, 최대값을 1로 변환
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled_X_train = scaler.fit_transform(X_train)
scaled_X_test = scaler.transform(X_test)
2) 표준화(Z-score Normalization): 데이터의 평균을 0, 표준편차를 1로 조정, 정규 분포를 따르는 경우 효과적
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
3) Robust Scaling: 중앙값을 중심으로 IQR을 사용, 이상치의 영향을 덜 받는다
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
4) Max Abs Scaling: 각 값의 절대 최대값을 기준으로 모든값을 -1과 1사이로 스케일링
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
※ 면접 질문 모음집: https://zzsza.github.io/data/2018/02/17/datascience-interivew-questions/
'AI > 기술면접준비' 카테고리의 다른 글
[기술면접] 정규화(Regularization), Lasso(L1 규제), Ridge(L2 규제) (0) | 2024.12.14 |
---|---|
[기술면접] 오차(Error)와 편향(Bias), 분산(Variance), 정규화(Regularization) (0) | 2024.12.13 |
[기술면접] 엔트로피(entropy)와 Information Gain에 대해 설명해주세요. (0) | 2024.12.11 |
[기술면접] 중심극한정리는 왜 유용한걸까요? (0) | 2024.12.02 |
[기술면접] 정규성(Normality) 검정 (2) | 2024.11.14 |
- Total
- Today
- Yesterday
- 30분
- 스크랩
- Python
- 실기
- 티스토리챌린지
- 프로그래머스
- C언어
- 오픽
- llm
- 갓생
- 아침운동
- 루틴
- 영어회화
- 빅데이터 분석기사
- 습관
- 줄넘기
- opic
- 오블완
- 아침
- Ai
- 기초
- ChatGPT
- 미라클모닝
- 고득점 Kit
- 다이어트
- 운동
- 뉴스
- SQL
- 경제
- IH
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |