🤖 머신러닝(Machine Learning)이란?
머신러닝(Machine Learning)은 컴퓨터가 명시적인 프로그래밍 없이 데이터를 통해 학습하고, 스스로 예측하거나 판단할 수 있도록 만드는 기술입니다. 즉, 사람이 일일이 규칙을 짜지 않아도 컴퓨터가 경험(데이터)을 통해 패턴을 학습하고, 미래를 예측하는 것입니다.
머신러닝의 정의
머신러닝은 데이터로부터 자동으로 패턴을 학습하고, 그 학습된 패턴을 기반으로 미지의 데이터를 예측 또는 분류하는 기술입니다.
선형회귀분석과 피처 스케일링
✅ 단변량 선형회귀
✅ 다변량 선형회귀
✅ 피처 스케일링 (Feature Scaling)
단변량 선형회귀분석 (Simple Linear Regression)
정의
독립변수(feature) 1개와 종속변수(target) 1개 간의 선형 관계를 모델링하는 회귀 분석 기법입니다.
즉, 하나의 변수로 결과를 예측하는 가장 단순한 회귀 모델입니다.
수식
y^=wx+b
- (y^): 예측값
- (x): 독립변수
- (w): 가중치(기울기)
- (b): 절편
손실 함수 (Mean Squared Error)
MSE=n1i=1∑n(yi−y^i)2
- (yi): 실제값
- (y^i): 예측값
목표
데이터를 가장 잘 설명하는 직선을 찾는 것 → 잔차 제곱합 최소화
다변량 선형회귀분석 (Multiple Linear Regression)
정의
2개 이상의 독립변수를 사용하여 종속변수를 예측하는 선형 회귀 기법입니다.
수식
y^=w1x1+w2x2+⋯+wnxn+b
- (x1,x2,...,xn): 독립변수들
- (w1,w2,...,wn): 각 특성에 대한 가중치
- (b): 절편
피처 스케일링 (Feature Scaling)
정의
피처 스케일링은 머신러닝 모델의 학습 안정성과 성능 향상을 위해
입력 데이터(특성)의 범위(스케일)를 일정하게 맞춰주는 전처리 과정입니다.
왜 피처 스케일링이 필요한가?
머신러닝 알고리즘에서는 각 특성(Feature)의 값 크기가 다르면 다음과 같은 문제가 발생합니다:
- 경사하강법 기반 알고리즘에서는 큰 값을 가진 특성이 모델 학습을 지배하게 됩니다.
- 거리 기반 알고리즘 (KNN, SVM, K-Means)에서는 값이 큰 특성이 거리 계산에 큰 영향을 미칩니다.
- 학습 속도 저하, 최적값 수렴 실패, 예측 정확도 저하 등이 발생할 수 있습니다.
📌 예시:
- 키(cm): 150 ~ 200
- 몸무게(kg): 50 ~ 100
- 연봉(만원): 3,000 ~ 10,000
이처럼 값의 크기가 너무 다르면, 모델은 연봉에만 집중하게 됩니다.
피처 스케일링 종류
1️⃣ 표준화 (Standardization)
데이터를 평균 0, 표준편차 1을 갖도록 변환합니다.
정규분포를 따르지 않아도 사용할 수 있으며, 이상치에 비교적 강합니다.
x′=σx−μ
- (μ): 평균
- (σ): 표준편차
- (x′): 스케일링된 값
📌 Python 예시
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
정규화 (Min-Max Scaling)
데이터를 0과 1 사이의 범위로 변환합니다.
신경망 학습에 자주 사용되지만, 이상치에 민감합니다.
x′=xmax−xminx−xmin
- (xmin): 최소값
- (xmax): 최대값
📌 Python 예시
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
최대 절대값 스케일링 (MaxAbs Scaling)
각 데이터를 해당 특성의 최대 절대값으로 나누어
데이터를 \(-1\) ~ \(1\) 사이로 조정합니다.
0 중심 대칭 데이터나 희소 행렬(sparse matrix)에 적합합니다.
x′=∣x∣maxx
- (∣x∣max): 절댓값 기준 최대값
📌 Python 예시
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
X_scaled = scaler.fit_transform(X)
로버스트 스케일링 (Robust Scaling)
중앙값(Median)과 사분위수 범위(IQR)를 기준으로 스케일링합니다.
이상치의 영향을 최소화할 수 있습니다.
x′=IQR(x)x−Median(x)
- (IQR=Q3−Q1): 3사분위수 - 1사분위수
- (Median(x)): 중앙값
📌 Python 예시
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
X_scaled = scaler.fit_transform(X)
✅ 스케일러 비교 표
| 스케일러 | 특징 | 이상치 민감도 | 적합한 모델 |
|---|
| StandardScaler | 평균 0, 표준편차 1 | 중간 | 선형 회귀, 로지스틱 회귀, SVM |
| MinMaxScaler | 0 ~ 1 범위로 정규화 | 높음 | 신경망, KNN |
| MaxAbsScaler | 절댓값 기준 최대값으로 나눔 | 낮음 | 희소 행렬 기반 모델 |
| RobustScaler | 중앙값과 IQR 기준 스케일링 | 낮음 | 이상치 많은 데이터셋 |
✅ 전체 정리
- 피처 스케일링은 머신러닝의 성능과 학습 효율을 높이기 위해 필수적인 전처리 과정입니다.
- 입력 특성 간의 스케일 차이를 맞추어 공정한 학습을 가능하게 합니다.
- 모델과 데이터 특성(정규성, 이상치 포함 여부 등)에 따라 적절한 스케일러를 선택해야 합니다.