머신러닝의 중요한 기초 개념인데, 어렵다..
오늘은 회귀를 알아보자.
오늘의 배움 |
|
1. 머신러닝 모델 선정: 회귀분석
회귀 분석은 독립 변수(feature)와 종속 변수(label)의 관계를 분석하는 방법이다.
회귀(Regression)는 연속적인 값을 예측하는 지도학습 문제이다.
주택 가격, 주식 가격 등의 예측에 사용된다.
회귀분석 종류
- 독립 변수의 개수에 따른 분류
- 단순 회귀(Simple Regression): 독립 변수가 1개인 것으로 선형 그래프 구조를 보인다.
- 다중 회귀(Multiple Regression): 독립 변수가 여러 개인 것으로 비선형 그래프 구조를 보인다.
- 종속 변수의 성질에 따른 분류
- 연속형 회귀(Continuous Regression): 종속 변수가 연속적인 값을 가지는 경우에 해당한다. (주택 가격 예측, 키와 몸무게 관계 등)
- 범주형 회귀(Categorical Regression): 종속 변수가 범주형 값을 가지는 경우에 해당한다. (이진 분류를 위한 로지스틱 회귀 등)
- 모델 형태에 따른 분류
- 선형 회귀(Linear Regression): 독립 변수와 종속 변수 간의 관계가 직선 형태로 나타나는 경우이다.
- 비선형 회귀(Nonlinear Regression): 독립 변수와 종속 변수 간의 관계가 곡선 형태로 나타나는 경우이다.
회귀모델 종류 요약
모델 | 요약 설명 |
Linear Regression (선형 회귀) | 독립 변수와 종속 변수 사이의 선형 관계를 가정한 모델 |
Ridge Regression (릿지 회귀) | L2 정규화를 추가하여 과적합을 방지하는 모델 |
Lasso Regression (라쏘 회귀) | L1 정규화를 사용해 변수 선택 효과를 제공하는 모델 |
Random Forest Regressor (랜덤 포레스트 회귀) | 여러 결정 트리를 앙상블하여 예측하는 모델 |
Gradient Boosting Regressor (GBM) | 약한 예측기를 순차적으로 결합하여 성능을 향상시키는 모델 |
XGBoost Regressor | 그래디언트 부스팅의 확장판으로 성능이 좋은 모델 |
LightGBM Regressor | 대용량 데이터에서 빠른 부스팅 모델 |
2. 경사 하강법
경사 하강법(Gradient Descent)은 모델의 최적화 과정을 수행하는 알고리즘이다.
경사 하강법의 작동 원리
- 모델의 파라미터를 임의의 값으로 초기화한다.
- 현재 파라미터에서 손실 함수의 기울기를 계산한다.
- 파라미터를 기울기의 반대 방향으로 이동시킨다.
- 손실 함수가 수렴할 때까지 또는 사전에 정한 반복 횟수만큼 2-3단계를 반복한다.
θ:=θ−η⋅∇J(θ)
경사 하강법의 종류
- 배치 경사 하강법 (Batch Gradient Descent)
- 전체 데이터셋을 사용하여 기울기를 계산하고 파라미터를 업데이트한다.
- 장점: 안정적인 수렴을 보이며, 최적의 방향으로 이동할 수 있다.
- 단점: 대규모 데이터셋에서는 계산 비용이 높고 메모리 사용량이 많다. (시간적/공간적 비용이 가장 큼)
- 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
- 각 반복(iteration)마다 하나의 샘플을 사용하여 기울기를 계산하고 파라미터를 업데이트한다.
- 장점: 대규모 데이터셋에서도 빠르게 업데이트가 가능하며, 지역 최적점에 빠지지 않고 전역 최적점을 찾을 가능성이 있다.
- 단점: 업데이트에 노이즈가 많아 수렴이 불안정할 수 있다.
- 미니 배치 경사 하강법 (Mini-batch Gradient Descent)
- 전체 데이터셋을 작은 배치로 나누어 각 배치마다 기울기를 계산하고 파라미터를 업데이트한다. -> 일부만 사용
- 장점: 배치 경사 하강법과 확률적 경사 하강법의 장점을 모두 가지며, 효율적인 연산이 가능하다.
- 단점: 배치 크기 선택에 따라 성능이 달라질 수 있다. (일부만 사용하기 때문에)
학습률 (Learning Rate)의 중요성
학습률은 파라미터를 업데이트할 때 이동하는 비율을 결정하는 하이퍼파라미터이다. 학습률의 선택은 알고리즘의 수렴 속도와 안정성에 큰 영향을 미친다.
- 학습률이 너무 작을 경우: 수렴 속도가 매우 느려지며, 많은 반복이 필요하다.
- 학습률이 너무 클 경우: 최적의 파라미터를 지나쳐 발산할 수 있다.
⇒ 따라서 적절한 학습률을 선택하는 것이 중요하며, 학습률을 점진적으로 조정하는 기법(예: 학습률 스케줄링, 적응형 학습률 알고리즘 등)을 사용하는 것이 일반적이다.
경사 하강법의 한계와 해결 방안
- 경사 하강법은 강력한 최적화 도구이지만 몇 가지 한계가 존재한다.
- 비볼록 함수의 경우, 지역 최적점에 빠질 수 있다.
- 특히 복잡한 모델에서는 수렴 속도가 느릴 수 있다.
- 적절한 학습률을 선택하는 것이 어려울 수 있다.
⇒ 이러한 문제를 해결하기 위해 다양한 변형 알고리즘이 개발되었다. 예를 들어, 모멘텀(Momentum), 아담(Adam), RMSProp과 같은 최적화 알고리즘은 경사 하강법의 단점을 보완하여 더 빠르고 안정적인 수렴을 도모한다.
# 필요한 라이브러리 임포트
import numpy as np
import matplotlib.pyplot as plt
# 데이터 생성
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 6 + 4 * X + np.random.randn(100, 1)
# 데이터 시각화
plt.scatter(X, y)
plt.show()
# 경사 하강법 실행
# ...
3. 선형 회귀
선형 회귀는 연속적인 숫자 값을 예측하는 데 사용되는 지도 학습 알고리즘이다.
선형 회귀의 종류
- 단순 선형 회귀(Simple Linear Regression)
- 하나의 독립 변수와 하나의 종속 변수 사이의 관계를 모델링한다.
- y는 예측 값, x는 독립 변수, θ는 파라미터(가중치)이다.
- 다중 선형 회귀(Multiple Linear Regression)
- 둘 이상의 독립 변수와 하나의 종속 변수 사이의 관계를 모델링한다.
- y는 예측 값, x는 독립 변수, θ는 파라미터(가중치)이다.
선형 회귀의 종류
- 단순 선형 회귀(Simple Linear Regression)
- 하나의 독립 변수와 하나의 종속 변수 사이의 관계를 모델링한다.
- y는 예측 값, x는 독립 변수, θ는 파라미터(가중치)이다.
y=θ 0 +θ 1 x
- 다중 선형 회귀(Multiple Linear Regression)
- 둘 이상의 독립 변수와 하나의 종속 변수 사이의 관계를 모델링한다.
- y는 예측 값, x는 독립 변수, θ는 파라미터(가중치)이다.
y=θ 0 +θ 1 x 1 +θ 2 x 2 +⋯+θ n x n
파라미터 학습 방법
- 정규 방정식 (Normal Equation)
- 비용 함수를 최소화하는 파라미터의 해를 직접 계산하는 방법이다.
- 장점: 해를 한 번에 계산할 수 있다.
- 단점: 계산 복잡도가 높아 데이터셋이 큰 경우 비효율적이다.
- 경사 하강법 (Gradient Descent)
- 경사 하강법을 이용하여 비용 함수를 최소화하는 파라미터를 iterative하게 찾아나간다.
- 장점: 대용량 데이터셋에도 적용 가능하다.
- 단점: 학습률 등의 하이퍼파라미터 설정이 필요하다.
선형 회귀의 가정
선형 회귀 모델이 유효하려면 다음과 같은 가정이 성립해야 한다.
- 선형성(Linearity): 독립 변수와 종속 변수 사이의 관계가 선형이어야 한다.
- 독립성(Independence): 각 관측치는 서로 독립적이어야 한다.
- 등분산성(Homoscedasticity): 오차의 분산이 모든 수준의 독립 변수에 대해 일정해야 한다.
- 정규성(Normality): 오차가 정규 분포를 따라야 한다.
회귀 모델 성능 평가 지표
- 평균 제곱 오차(Mean Squared Error, MSE): 오차(실제 값과 예측값의 차이)의 제곱 평균으로, 값이 작을수록 좋다.
- 평균 제곱근 오차(Root Mean Squared Error, RMSE): MSE 값은 오류의 제곱을 구하므로 실제 오류 평균보다 더 커지는 특성이 있다. 따라서 MSE에 루트를 씌운 것이다.
- 평균 절대 오차(Mean Absoulte Error, MAE): 오차(실제 값과 예측값의 차이)의 절대값 평균으로, 해석이 직관적이다.
- 결정 계수(R² score): 모델이 데이터를 얼마나 잘 설명하는지 나타내며, 분산 기반으로 예측 성능을 평가한다. 실제 값의 분산 대비 예측값의 분산 비율을 지표로 하며, 1에 가까울수록 좋다.
다중 선형 회귀
다중 선형 회귀는 둘 이상의 독립 변수를 사용하는 선형 회귀 모델이다. 예를 들어, 주택 가격을 예측할 때 면적, 방의 수, 위치 등의 여러 특성을 고려할 수 있다.
선형 회귀의 한계와 개선 방안
- 선형 회귀는 단순하고 해석이 용이하지만, 다음과 같은 한계가 있다
- 독립 변수와 종속 변수 사이의 관계가 비선형인 경우 적합하지 않다.
- 데이터의 이상치에 크게 영향을 받는다.
- 독립 변수들 간의 상관관계가 높은 경우 문제가 발생한다.
⇒ 이러한 한계를 극복하기 위해 다항 회귀, 규제 회귀(Ridge, Lasso 등), 비선형 모델 등이 사용된다.
4. 다항 회귀
독립 변수와 종속 변수 간의 비선형 관계를 모델링할 수 있는 회귀 분석 기법이다. 회귀 분석을 위한 요소 항이 여러 개 있는 경우로, 선형 회귀 모델에서 독립 변수의 다항식을 추가하여 복잡한 데이터 패턴을 표현할 수 있다.
다항 회귀 사용 이유
데이터 분포가 선형이 아닌 곡선 형태를 띠는 경우, 선형 회귀 모델로는 정확한 예측이 어렵다. 이러한 비선형 패턴을 잡아내기 위해 다항 회귀를 사용하여 모델의 복잡도를 높이고, 데이터에 더 잘 맞는 예측선을 생성할 수 있다.
데이터의 분포가 왼쪽이 아닌 오른쪽 그림과 같이 되어 있다면, 선형으로 회귀 모델을 그렸을 때 예측이 잘 맞지 않을 것이다. 따라서 아래처럼 비선형으로 관계 모델링을 해 예측해야 한다.
다항 회귀의 장단점
- 장점
- 선형 회귀로는 잡아내기 어려운 비선형 패턴을 효과적으로 모델링할 수 있다.
- 차수를 조절하여 모델의 복잡도를 쉽게 변경할 수 있다
- 단점
- 차수가 높아질수록 모델이 학습 데이터에 지나치게 적합하여 새로운 데이터에 대한 일반화 성능이 떨어질 수 있다. (과적합)
- 고차 다항식의 경우 모델의 해석이 복잡해진다.
과적합 방지 방법
- 차수 조절: 적절한 다항식의 차수를 선택하여 모델의 복잡도를 제어한다.
- 규제 기법 적용: Ridge, Lasso 등의 규제 기법을 사용하여 가중치의 크기를 제한한다.
- 교차 검증: 교차 검증을 통해 모델의 일반화 성능을 평가하고 최적의 차수를 찾는다.
- 데이터 확장: 더 많은 데이터를 수집하여 모델의 일반화 능력을 향상시킨다.
5. 학습 곡선
학습 곡선(Learning Curve)은 머신러닝 모델의 성능을 학습 데이터와 검증 데이터에 대한 학습 진행 과정에서 학습 데이터 크기 또는 학습 단계(에포크) 대비 시각화한 그래프다. 학습 곡선은 모델이 학습하는 동안의 성능 변화를 보여주며, 과적합(Overfitting)이나 과소적합(Underfitting) 문제를 진단하는 데 유용하다.
- 학습 곡선은 두 개의 곡선으로 구성되며, 이를 통해 학습 데이터와 검증 데이터에서의 성능 차이를 확인할 수 있다.
- 훈련 곡선(Training Curve): 학습 데이터에 대한 모델 성능
- 검증 곡선(Validation Curve): 검증 데이터에 대한 모델 성능
학습 곡선의 패턴
- 정상적인 학습
- 학습 데이터와 검증 데이터의 성능 차이가 점차 감소하며, 두 곡선이 수렴한다.
- 모델이 학습 데이터를 잘 학습하고, 일반화 능력도 충분함을 나타낸다.
- 과적합 (Overfitting)
- 학습 데이터에서의 성능은 좋지만, 검증 데이터에서의 성능은 낮다.
- 이는 모델이 학습 데이터를 지나치게 암기하고 검증 데이터에는 일반화하지 못하는 경우이다.
- 해결 방법
- 규제 기법(Ridge, Lasso 등) 사용
- 모델의 복잡도 감소 (파라미터 수 줄이기)
- 더 많은 학습 데이터 제공
- 과소적합 (Underfitting)
- 학습 데이터와 검증 데이터 모두에서 성능이 낮으며, 두 곡선이 높은 손실 값을 유지한다.
- 이는 모델이 충분히 복잡하지 않거나, 학습이 충분하지 않은 경우이다.
- 해결 방법:
- 더 복잡한 모델 사용 (예: 더 많은 특성 추가)
- 더 긴 학습 시간 제공
학습 곡선의 활용
- 학습 곡선을 통해 학습 과정에서의 문제점을 조기에 발견하고, 학습을 조정할 수 있다.
- 검증 곡선이 계속 개선되는 경우, 더 많은 데이터를 추가함으로써 성능을 향상시킬 수 있다.
- 학습 곡선을 통해 모델의 복잡도나 하이퍼 파라미터를 조정하여 최적의 성능을 얻을 수 있다.
6. 선형 모델
선형 모델은 독립 변수와 종속 변수 간의 관계를 선형 방정식으로 모델링하는 알고리즘이다. 선형 회귀, 규제 선형 모델, 그리고 일반화 선형 모델(GLM)이 이에 해당한다.
규제 선형 모델
규제 선형 모델은 선형 회귀의 단점을 보완하기 위해 추가적인 제약(규제)을 도입한 모델이다. 과적합 문제를 완화하고, 모델의 일반화 성능을 향상시키기 위해 사용된다.
선형 회귀 모델의 경우 특성에 곱해지는 계수(또는 기울기)의 크기를 작게 만든다.
- Ridge Regression (L2 규제)
- Ridge 회귀는 L2 규제를 사용하는 선형 회귀 모델이다. 손실 함수에 가중치의 제곱합을 추가하여 큰 가중치를 억제한다.
- 특징
- 큰 가중치를 줄여 과적합 문제를 완화한다.
- 가중치가 0에 가까워질 뿐, 완전히 0이 되지는 않는다.
- 하이퍼파라미터
- λ (규제 강도): 값이 클수록 규제가 강해진다.
- Lasso Regression (L1 규제)
- Lasso 회귀는 L1 규제를 사용하는 선형 회귀 모델이다. 손실 함수에 가중치의 절댓값 합을 추가한다.
- 특징
- 일부 가중치를 0으로 만들어 불필요한 특성을 제거한다. (특성 선택 기능)
- 하이퍼파라미터
- λ: 값이 클수록 더 많은 가중치를 0으로 만든다.
- ElasticNet
- ElasticNet은 L1 규제와 L2 규제를 결합한 모델이다. Ridge와 Lasso의 장점을 모두 활용할 수 있다.
- 특징
- Lasso의 특성 선택 기능과 Ridge의 안정성을 모두 제공한다.
- 하이퍼파라미터
- λ1, λ2: L1과 L2 규제의 가중치를 조절한다.
- α: 규제 강도를 조절한다.
일반화 선형 모델 (GLM)
일반화 선형 모델(Generalized Linear Model, GLM)은 선형 회귀를 확장하여 종속 변수가 비선형적이거나 특정 분포를 따르는 경우에도 적용할 수 있도록 만든 모델이다. GLM은 다양한 종류의 데이터에 유연하게 적용할 수 있는 강력한 모델이다.
- GLM의 구조
- 선형 예측기(Linear Predictor)여기서 X는 독립 변수, β는 회귀 계수이다.
- 링크 함수(Link Function) : 종속 변수의 기대값 μ와 선형 예측기 η를 연결하는 함수이다.
- 확률 분포: 종속 변수는 지수 분포군(Exponential Family) 중 하나를 따른다.
- GLM의 예
- 선형 회귀:
- 링크 함수: 항등 함수 g(μ)=μ
- 분포: 정규 분포
- 로지스틱 회귀:
- 링크 함수: 로짓 함수
- 분포: 이항 분포
- 포아송 회귀:
- 링크 함수: 자연 로그 g(μ)=log(μ)
- 분포: 포아송 분포
- 선형 회귀:
- GLM의 활용 사례
- 선형 회귀: 연속형 데이터를 예측
- 로지스틱 회귀: 이진 분류 문제 (예: 스팸 메일 분류)
- 포아송 회귀: 이산형 데이터의 예측 (예: 시간당 사건 수)
- GLM의 장점
- 다양한 데이터 분포와 관계를 모델링할 수 있는 유연성을 제공한다.
- 선형 회귀의 단점을 보완하여 비선형 데이터에도 적용할 수 있다.
훈련하고 평가하는 절차는 비슷한데....
수학이 나오니 어렵다...머리가 아찔해.....
'Develop > ML·DL' 카테고리의 다른 글
앙상블 학습 및 랜덤 포레스트를 알아보자. (2) | 2025.01.21 |
---|---|
서포트 벡터 머신(SVM)을 알아보자. (2) | 2025.01.21 |
결정 트리를 알아보자. (2) | 2025.01.21 |
분류와 로지스틱 회귀를 알아보자. (0) | 2025.01.20 |
머신 러닝을 알아보자. (feat. 인공지능) (2) | 2025.01.18 |