28일차 머신러닝1

차지예·2025년 6월 23일

생성AI

목록 보기
23/56
post-thumbnail

🤖 머신러닝(Machine Learning)이란?

머신러닝(Machine Learning)은 컴퓨터가 명시적인 프로그래밍 없이 데이터를 통해 학습하고, 스스로 예측하거나 판단할 수 있도록 만드는 기술입니다. 즉, 사람이 일일이 규칙을 짜지 않아도 컴퓨터가 경험(데이터)을 통해 패턴을 학습하고, 미래를 예측하는 것입니다.

머신러닝의 정의

머신러닝은 데이터로부터 자동으로 패턴을 학습하고, 그 학습된 패턴을 기반으로 미지의 데이터를 예측 또는 분류하는 기술입니다.


선형회귀분석과 피처 스케일링

✅ 단변량 선형회귀
✅ 다변량 선형회귀
✅ 피처 스케일링 (Feature Scaling)


단변량 선형회귀분석 (Simple Linear Regression)

정의

독립변수(feature) 1개와 종속변수(target) 1개 간의 선형 관계를 모델링하는 회귀 분석 기법입니다.
즉, 하나의 변수로 결과를 예측하는 가장 단순한 회귀 모델입니다.

수식

y^=wx+b\hat{y} = wx + b
  • (y^)( \hat{y} ): 예측값
  • (x)( x ): 독립변수
  • (w)( w): 가중치(기울기)
  • (b)( b ): 절편

손실 함수 (Mean Squared Error)

MSE=1ni=1n(yiy^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
  • (yi)( y_i ): 실제값
  • (y^i)( \hat{y}_i ): 예측값

목표

데이터를 가장 잘 설명하는 직선을 찾는 것 → 잔차 제곱합 최소화


다변량 선형회귀분석 (Multiple Linear Regression)

정의

2개 이상의 독립변수를 사용하여 종속변수를 예측하는 선형 회귀 기법입니다.

수식

y^=w1x1+w2x2++wnxn+b\hat{y} = w_1x_1 + w_2x_2 + \cdots + w_nx_n + b
  • (x1,x2,...,xn)( x_1, x_2, ..., x_n ): 독립변수들
  • (w1,w2,...,wn)( w_1, w_2, ..., w_n ): 각 특성에 대한 가중치
  • (b)( 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' = \frac{x - \mu}{\sigma}
  • (μ)( \mu ): 평균
  • (σ)( \sigma ): 표준편차
  • (x)( x' ): 스케일링된 값

📌 Python 예시

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

정규화 (Min-Max Scaling)

데이터를 0과 1 사이의 범위로 변환합니다.
신경망 학습에 자주 사용되지만, 이상치에 민감합니다.

x=xxminxmaxxminx' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}}
  • (xmin)( x_{\text{min}} ): 최소값
  • (xmax)( x_{\text{max}} ): 최대값

📌 Python 예시

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

최대 절대값 스케일링 (MaxAbs Scaling)

각 데이터를 해당 특성의 최대 절대값으로 나누어
데이터를 \(-1\) ~ \(1\) 사이로 조정합니다.
0 중심 대칭 데이터나 희소 행렬(sparse matrix)에 적합합니다.

x=xxmaxx' = \frac{x}{\left|x\right|_{\text{max}}}
  • (xmax)( \left|x\right|_{\text{max}} ): 절댓값 기준 최대값

📌 Python 예시

from sklearn.preprocessing import MaxAbsScaler

scaler = MaxAbsScaler()
X_scaled = scaler.fit_transform(X)

로버스트 스케일링 (Robust Scaling)

중앙값(Median)과 사분위수 범위(IQR)를 기준으로 스케일링합니다.
이상치의 영향을 최소화할 수 있습니다.

x=xMedian(x)IQR(x)x' = \frac{x - \text{Median}(x)}{\text{IQR}(x)}
  • (IQR=Q3Q1)( \text{IQR} = Q_3 - Q_1 ): 3사분위수 - 1사분위수
  • (Median(x))( \text{Median}(x) ): 중앙값

📌 Python 예시

from sklearn.preprocessing import RobustScaler

scaler = RobustScaler()
X_scaled = scaler.fit_transform(X)

✅ 스케일러 비교 표

스케일러특징이상치 민감도적합한 모델
StandardScaler평균 0, 표준편차 1중간선형 회귀, 로지스틱 회귀, SVM
MinMaxScaler0 ~ 1 범위로 정규화높음신경망, KNN
MaxAbsScaler절댓값 기준 최대값으로 나눔낮음희소 행렬 기반 모델
RobustScaler중앙값과 IQR 기준 스케일링낮음이상치 많은 데이터셋

✅ 전체 정리

  • 피처 스케일링은 머신러닝의 성능과 학습 효율을 높이기 위해 필수적인 전처리 과정입니다.
  • 입력 특성 간의 스케일 차이를 맞추어 공정한 학습을 가능하게 합니다.
  • 모델과 데이터 특성(정규성, 이상치 포함 여부 등)에 따라 적절한 스케일러를 선택해야 합니다.

0개의 댓글