728x90
SMALL
- 이번에는 꼭 알아야하는 머신러닝 알고리즘 중 하나인 "선형 회귀(Linear Regression)"에 대해 알아보려고 합니다. 선형 회귀는 데이터의 경향성을 가장 잘 설명할 수 있는 직선 형태의 모델을 찾는 기법으로, 여러분들을 위해 자세한 내용을 소개하겠습니다.
선형 회귀의 개념
- 선형 회귀는 종속 변수와 한 개 이상의 독립 변수 간의 관계를 모델링하는 방법입니다. 주어진 데이터를 기반으로 최적의 직선을 찾아 예측 및 분석에 활용합니다. 선형 회귀는 단순 선형 회귀(Simple Linear Regression)와 다중 선형 회귀(Multiple Linear Regression)로 나뉩니다.
- 단순 선형 회귀: 단순 선형 회귀(Simple Linear Regression)는 종속 변수(Y)와 한 개의 독립 변수(X) 간의 관계를 모델링하는 방법입니다. 이때, 종속 변수와 독립 변수 사이에는 직선 형태의 관계가 있다고 가정합니다.
- 단순 선형 회귀에서는 주어진 데이터를 기반으로 X와 Y 사이의 최적의 직선을 찾아서 새로운 입력 값 X에 대한 Y 값을 예측하는 데 사용됩니다. 이 최적의 직선은 기울기(slope)와 절편(intercept)으로 정의됩니다.
- 기울기는 X가 1 단위 증가할 때 Y가 변하는 평균 변화량을 나타내며, 절편은 X가 0일 때 Y의 예측값을 나타냅니다. 따라서, 단순 선형 회귀 모델은 주어진 데이터를 가장 잘 설명할 수 있는 기울기와 절편을 찾아내는 것이 목표입니다.
- 학습 알고리즘 중 가장 일반적으로 사용되는 방법은 최소 제곱법(Ordinary Least Squares, OLS)입니다. OLS 방식은 주어진 데이터셋에서 오차 제곱합을 최소화하는 기울기와 절편 값을 찾아냅니다. 이를 통해 모델이 주어진 데이터에 가장 잘 적합된 직선을 구축할 수 있습니다.
- 단순 선형 회귀 모델에서 중요한 점은 결정 계수(R-squared)를 통해 모델의 설명력을 평가할 수 있다는 것입니다. 결정 계수는 실제 종속 변수 값과 예측된 종속 변수 값 간의 상관 관계 정도를 나타내며, 0부터 1까지 범위 내에서 값을 가집니다. 높은 결정 계수 값은 모델이 주어진 데이터를 잘 설명한다는 것을 의미합니다.
- 마지막으로, 단순 선형 회귀에서는 과적합(overfitting) 문제에 유념해야 합니다. 과적합은 학습 데이터에만 너무 맞추어져서 일반화 능력이 낮아지는 현상을 의미합니다. 이러한 문제를 해결하기 위해서는 규제(regularization) 기법 등을 활용하여 모델 복잡도를 조절하거나 다른 유효한 특성들과 함께 사용함으로써 일반화 성능을 개선할 수 있습니다.
- 다중 선형 회귀: 다중 선형 회귀(Multiple Linear Regression)는 종속 변수(Y)와 여러 개의 독립 변수(X1, X2, ..., Xn) 간의 관계를 모델링하는 방법입니다. 다중 선형 회귀에서는 종속 변수 Y를 여러 개의 독립 변수들과 함께 고려하여 예측합니다.
- 다중 선형 회귀에서는 각 독립 변수들이 종속 변수에 어떤 영향을 미치는지를 파악하기 위해 각 독립 변수의 계수(coefficient) 값을 추정합니다. 이 계수 값은 해당 독립 변수가 종속 변수에 미치는 영향력을 나타내며, 양수인 경우 해당 독립 변수가 증가할 때 종속 변수도 증가하는 경향을 보이고, 음수인 경우 반대로 감소하는 경향을 보입니다.
- 예를 들어, 주택 가격을 예측하기 위해 주택 크기(X1), 방 개수(X2), 위치(X3), 건축인지 아파트인지 등 다양한 요소들을 고려한다고 해보겠습니다. 이 경우, X1부터 X3까지 여러 개의 독립 변수가 있으며, Y는 주택 가격입니다.
- 다중 선형 회귀 모델에서도 기울기(coefficient) 및 절편(intercept)과 같은 파라미터들이 있으며 이들은 학습 알고리즘에 의해 추정됩니다. 최소 제곱법인 OLS나 경사 하강법인 Gradient Descent 등이 자주 사용되는 알고리즘입니다.
- 다중 선형 회귀에서 중요한 점은 상호작용(interaction), 다항식 변환(polynomial transformation), 특성 스케일링(feature scaling), 과적합(overfitting) 등과 같은 추가적인 처리가 필요할 수 있다는 것입니다.
선형 회귀 문제 접근 방법
(1) 데이터 탐색 및 전처리
- 선형 회귀 모델을 구축하기 전에 데이터를 탐색하고 전처리하는 과정이 중요합니다. 이 단계에서는 다음과 같은 작업을 수행할 수 있습니다.
1. 결측치 처리: 데이터에 결측치가 있는 경우, 해당 결측치를 적절한 값으로 대체하거나 해당 샘플을 제거합니다.
2. 이상치 처리: 이상치는 모델의 학습에 부정적인 영향을 줄 수 있으므로, 이상치를 탐지하고 처리하는 작업이 필요합니다. 이상치를 제거하거나 대체하는 등의 방법을 사용할 수 있습니다.
3. 특성 스케일링: 독립 변수들 간의 스케일이 크게 다르면 모델의 성능에 영향을 줄 수 있으므로, 특성들을 일정한 범위로 스케일링해줍니다. 대표적인 방법으로는 표준화(Standardization)와 정규화(Normalization)가 있습니다.
4. One-Hot 인코딩: 범주형 변수가 포함된 경우, 해당 변수들을 One-Hot 인코딩하여 숫자 형태로 변환해줍니다.
- 위 방법 중 표준화, 정규화, 그리고 One-Hot 인코딩에 대해 조금 더 자세히 설명드리겠습니다.
- 표준화: 표준화는 독립 변수들 간의 스케일 차이를 제거하여 모델의 성능을 개선하는 전처리 기법입니다. 주로 평균이 0이고 표준편차가 1인 분포로 변환하는 방식을 사용합니다. 표준화를 수행하기 위해서는 다음과 같은 단계를 따릅니다.
- 각 독립 변수(X)의 평균을 구합니다.
- 각 독립 변수(X)에서 평균을 뺍니다.
- 독립 변수(X)의 표준 편차로 나눕니다.
- 이렇게 하면 각 독립 변수들은 평균이 0, 표준편차가 1인 분포를 가지게 됩니다. 이러한 스케일링은 다른 단위나 범위를 가진 독립 변수들 사이에서 발생할 수 있는 문제를 완화시켜 모델 학습에 유용합니다.
- 정규화: 정규화는 데이터의 범위를 [0, 1] 또는 [-1, 1] 등으로 조정하여 모델 학습에 영향을 줄 수 있는 값을 일반적인 범위로 맞추는 전처리 기법입니다. 정규화를 수행하기 위해서는 다음과 같은 단계를 따릅니다.
- 각 독립 변수(X)에서 최솟값(minimum)을 뺍니다.
- 1번 결과의 각 독립 변수(X)에서 최댓값(maximum - minimum)으로 나눕니다.
- 결과적으로, 정규화된 데이터는 주어진 범위 내에서 값을 가지게 되며, 이렇게 조정된 값은 상대적 크기 비교가 용이하므로 모델 학습에 유용합니다.
- One-Hot 인코딩: One-Hot 인코딩은 범주형(categorical) 데이터를 숫자 형태로 변환하는 방법 중 하나입니다. 머신러닝 알고리즘은 일반적으로 숫자 형태의 입력만 처리할 수 있으므로, 범주형 데이터가 있을 경우 이를 숫자 형태로 변환해야 합니다.
- One-Hot 인코딩을 수행하기 위해서는 다음과 같은 단계를 따르며, n개의 고유한 카테고리 값이 있다면 n개의 새로운 이진(dummy) 열(column)을 생성합니다.
- 원본 카테고리 값 중 하나만 1(true), 나머지는 0(false)으로 설정하여 새 열(column)들을 생성합니다.
- 예시: ['사과', '바나나', '오렌지']라는 카테고리 값이 있다면 '사과'일 때 [1, 0, 0], '바나나'일 때 [0, 1, 0], '오렌지'일 때 [0, 0, 1]와 같은 형태가 됩니다.
- One-Hot 인코딩은 범주형 데이터의 순서 정보 없이 해당 카테고리 여부만 포함하므로 컬럼 개수가 증가할 수 있습니다. 그러나 알고리즘이 해당 카테고리와 관련된 가중치 및 상호작용 파악에 용이하도록 해주기 때문에 많은 경우 유용하게 활용됩니다.
(2) 특성 선택 및 추출
- 선형 회귀 모델에서는 종속 변수와 관련이 있는 독립 변수들을 선택하거나 새로운 특성들을 추출하여 활용할 수 있습니다. 몇 가지 일반적인 방법은 다음과 같습니다.
1. 상관 분석: 종속 변수와 각 독립 변수 간의 상관 관계를 분석하여 상관 계수를 계산하고, 상관 계수가 높은 독립 변수들을 선택합니다.
2. 변수 선택 기법: 정보 이론 기반인 AIC(Akaike Information Criterion), BIC(Bayesian Information Criterion) 등과 같은 기준으로 독립 변수들 중 가장 유의미한 변수들만 선택합니다.
3. 다항식 변환: 선형 관계가 아닌 비선형인 관계일 때, 독립 변수에 대해 다항식 변환(예: 2차, 3차 등)을 적용하여 비선형인 관계도 설명할 수 있도록 합니다.
(3) 모델 구축
- 모든 전처리 작업이 완료되면 선형 회귀 모델 파라미터(기울기와 절편)를 조정하는 단계입니다. 주요 알고리즘으로는 최소 제곱법인 Ordinary Least Squares(OLS), 경사 하강법인 Gradient Descent 등이 사용됩니다.
- OLS: OLS는 주어진 데이터셋에서 오차 제곱합을 최소화하여 선형 회귀 모델의 파라미터를 추정하는 방법입니다. 기본적으로 주어진 독립 변수(X)와 종속 변수(Y) 사이의 관계를 가장 잘 설명하는 직선을 찾기 위해 사용됩니다.
- OLS 알고리즘은 다음과 같은 단계로 수행됩니다.
- 주어진 데이터셋에서 독립 변수(X)와 종속 변수(Y)의 쌍을 가져옵니다.
- 이들 데이터 포인트에 대해 오차(Error, 잔차: 실제 Y 값과 예측된 Y 값 간의 차이)를 계산합니다.
- 이 오차들의 제곱을 합하여 전체 오차 제곱합(Sum of Squared Errors, SSE) 값을 구합니다.
- SSE 값을 최소화하기 위한 최적의 기울기(slope, β1)와 절편(intercept, β0) 값을 계산합니다.
- 계산된 기울기와 절편으로 모델을 구축하고 예측값을 생성할 수 있습니다.
- OLS는 계산 과정이 수학적으로 닫힌 형태로 풀릴 때 쉽게 적용할 수 있으며, 해석적 솔루션(Analytical Solution)이라고도 합니다.
- 경사 하강법: 경사 하강법은 OLS와 유사한 목표를 가지지만, 보다 일반적인 경우에도 적용 가능한 반복적인 최적화 알고리즘입니다. 경사 하강법은 비용 함수(Cost Function 또는 Loss Function: 예측값과 실제값 사이의 차이를 나타내는 함수)가 최소가 되도록 모델 파라미터를 업데이트해나가는 방식으로 작동합니다.
- 경사 하강법 알고리즘은 다음과 같은 단계로 수행됩니다.
- 초기에 임의로 설정된 기울기(slope, β1), 절편(intercept, β0), 학습률(learning rate: 한 번에 얼마나 많이 업데이트할지 결정하는 값) 값을 선택합니다.
- 각 반복(iteration)마다 현재 파라미터 값을 사용하여 예측값(Predicted Y 값 또는 Hypothesis H(x))을 계산하고, 실제값과 비교하여 오류(Error 또는 Cost 값: H(x)-Y)를 구합니다.
- 각 파라미터에 대해 편미분(Partial Derivative of Cost Function with respect to each parameter/variable: ∂J/∂βi)을 계산하여 기울기(gradient)를 구합니다.
- 구한 기울기를 사용하여 파라미터를 업데이트합니다. 경사 하강법은 비용 함수가 최소가 되는 방향으로 이동하기 위해 기울기의 반대 방향으로 일정 크기만큼 이동합니다.
- 2번부터 4번까지의 과정을 반복하면서 비용 함수가 최소화되는 파라미터 값을 찾습니다.
- 미리 정의한 종료 조건(예: 최대 반복 횟수, 비용 함수 감소율 등)을 만족하거나 원하는 수렴 정도에 도달하면 알고리즘을 종료합니다.
- 경사 하강법은 배치 경사 하강법(Batch Gradient Descent), 확률적 경사 하강법(Stochastic Gradient Descent), 미니 배치 경사 하강법(Mini-Batch Gradient Descent) 등 다양한 변형이 존재합니다. 이들은 데이터셋의 크기와 계산 성능 등에 따라 선택될 수 있습니다.
- 경사 하강법은 OLS와 달리 반복적인 업데이트 과정을 거치므로, 초기 설정 값과 학습률 등의 선택이 중요합니다. 너무 작은 학습률로 인해 수렴 속도가 느려질 수 있고, 너무 큰 학습률로 인해 발산할 수도 있으므로 적절한 학습률을 선택하는 것이 중요합니다.
- 마지막으로, 경사 하강법인 경우 전체 데이터셋을 한 번에 사용하지 않고 일부 데이터(배치 또는 샘플)를 사용하여 파라미터를 업데이트하기 때문에 계산 속도가 상대적으로 빠릅니다. 그러나 일부 데이터만 사용하므로 OLS보다 추정된 파라미터 값이 덜 정확할 수 있습니다.
(4) 모델 평가
- 구축된 선형 회귀 모델의 예측력과 일반화 능력 등을 평가합니다. 주요 평가 지표로는 평균 제곱 오차(Mean Squared Error), 평균 절대 오차(Mean Absolute Error), 결정 계수(R-Squared), 잔차 분석 등이 일반적으로 사용됩니다.
- 평균 제곱 오차(Mean Squared Error): 평균 제곱 오차는 실제 값과 예측 값 간의 차이를 제곱하여 평균한 값으로, 회귀 모델의 예측 성능을 측정하는 지표입니다. MSE는 다음과 같이 정의됩니다.
MSE = (1/n) * Σ(yᵢ - ŷᵢ)²
- 여기서 n은 데이터 포인트의 개수, yᵢ는 실제 값, ŷᵢ는 예측 값입니다. MSE는 차이값을 제곱하여 계산하므로 예측 오차가 클수록 더 큰 가중치를 가지게 됩니다. 따라서 작은 MSE 값일수록 모델이 더 좋은 예측 성능을 가진다고 할 수 있습니다.
- 평균 절대 오차(Mean Absolute Error): 평균 절대 오차는 실제 값과 예측 값 간의 차이를 절댓값으로 변환하여 평균한 값으로, 회귀 모델의 예측 성능을 측정하는 지표입니다. MAE는 다음과 같이 정의됩니다.
MAE = (1/n) * Σ|yᵢ - ŷᵢ|
- MAE는 차이값에 대한 절댓값을 계산하므로 예측 오차 크기에 직접적으로 영향을 받습니다. MSE와 같이 작은 MAE 값을 가질수록 모델이 더 좋은 예측 성능을 가진다고 할 수 있습니다.
- 결정 계수(R-Squared): 결정 계수(R-Squared 또는 Coefficient of Determination)은 회귀 모델이 주어진 데이터를 얼마나 잘 설명하는지를 나타내는 지표입니다. R-Squared 값은 종속 변수(Y)에서 독립 변수(X)로 설명할 수 있는 변동성 비율을 나타냅니다.
- R-Squared 값을 구하기 위해서는 다음과 같은 단계를 따릅니다.
- 전체 변동성(SST: Total Sum of Squares) = Σ(yᵢ - ȳ)²
- 회귀에 의해 설명되지 않고 남아있는 변동성(SSE: Sum of Squares due to Error/Residuals) = Σ(yᵢ - ŷᵢ)²
- 결정 계수(R-Squared): R² = 1 - SSE/SST
- 결정 계수(R-Squared)값은 0부터 1까지 범위 내에서 값을 가집니다.
- R² = 0: 독립 변수가 종속 변수를 전혀 설명하지 못함
- R² = 1: 독립 변수가 종속 변수를 완벽하게 설명함
- 따라서 R²가 높을수록 모델이 주어진 데이터셋에서 종속 변수(Y)를 잘 설명한다고 할 수 있습니다.
- 잔차 분석: 잔차 분석(Residual Analysis)은 회귀 모델에서 추정된 파라미터와 관련된 잔차(Residuals: 실제 Y와 추정된 Y 사이의 차이 혹은 에러 항목들로 이루어진 벡터 형태 데이터)들에 대한 검증 및 시각화 과정입니다. 잔차 분석을 통해 모델의 적합성과 가정의 타당성을 평가할 수 있습니다. 잔차 분석에 사용되는 방법들 중 일부는 다음과 같습니다.
- Residual Plot: X축에 독립 변수(X), Y축에 잔차(residuals or errors: y-ŷ) 값을 표시하여 비교를 시각화합니다. 이를 통해 잔차가 어떤 패턴을 가지고 있는지, 선형성, 등분산성, 독립성 등의 가정을 확인할 수 있습니다. 예를 들어, 잔차가 무작위로 분포되어 균등하게 퍼져 있으면 선형성과 등분산성 가정이 만족됩니다.
- Q-Q Plot: 정규성 검사 등에 활용되며, 이론적인 분위 함수와 관측값 간의 비교를 시각화합니다. Q-Q Plot은 잔차가 정규분포를 따르는지 확인하는 데 유용합니다. 만약 점들이 대략 직선 상에 위치하면, 잔차가 정규분포를 따른다고 할 수 있습니다.
- Autocorrelation: 시계열 데이터나 공간 데이터에서 주로 사용되며, 잔차 간의 자기상관 여부를 확인합니다. 만약 자기상관이 존재한다면 모델에서 시간적 또는 공간적인 구조나 경향을 놓치고 있다는 의미일 수 있습니다.
- 이상치 탐지: 모델에서 예측한 값과 실제 값 사이의 큰 차이를 나타내는 이상치(outlier)를 탐지하여 제거하거나 조치할 필요가 있는지 확인합니다.
- 다중공선성(Multicollinearity): 다중 선형 회귀 모델에서 독립 변수 간의 상관 관계를 평가하여 다중공선성 문제 여부를 확인합니다. 독립 변수 간에 강한 상관 관계가 있다면 모델 해석력 및 안정성에 영향을 줄 수 있으므로 조치가 필요할 수 있습니다.
- 선형 회귀(Linear Regression)는 머신러닝에서 가장 기본적이고 널리 사용되는 알고리즘 중 하나입니다. 데이터의 선형 관계를 모델링하여 종속 변수와 독립 변수 간의 관계를 설명하고 예측하는 데 사용됩니다.
- 선형 회귀는 직관적이고 해석하기 쉬우며, 다양한 분야에서 활용됩니다. 그러나 입력과 출력 사이에 비선형 관계가 있는 경우에는 적합하지 않을 수 있습니다. 이를 위해 다른 고급 회귀 기법들도 개발되었습니다.
- 지금까지 머신러닝의 핵심 알고리즘 중 하나인 선형 회귀에 대해 간략히 알아보았습니다.
728x90
LIST