일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- assignment1
- C++
- Adam
- marchine learning
- dropout
- 밑바닥부터 시작하는 딥러닝
- RNN
- 밑바닥부터 시작하는 딥러닝2
- CNN
- Transformer
- 딥러닝
- computer vision
- CPP
- Regularization
- assignment2
- SQLD
- Positional Encoding
- Machine Learning
- Python
- Algorithm
- Baekjoon
- Alexnet
- DFS
- do it! 알고리즘 코딩테스트: c++편
- deep learning
- Optimization
- mask r-cnn
- Multi-Head Attention
- cs231n
- BFS
- Today
- Total
newhaneul
[Seoul National Univ: ML/DL] Lecture 4. Linear Regression 2 본문
[Seoul National Univ: ML/DL] Lecture 4. Linear Regression 2
뉴하늘 2025. 3. 4. 18:16 본 포스팅은 서울대학교 이준석 교수님의 M3239.005300 Machine Learning & Deep Learning 1을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
이준석 교수님에게 강의 자료 사용에 대한 허락을 받았음을 알립니다.
https://youtu.be/mobx_8AhwrM?si=iQnmhk5dLhV4lTeP
이번 Lecture에서는 Liner regression을 세 가지 방법으로 확장시킨다.
1. Categorical variables
2. Modeling interactions among variables
3. Feature selection
1. Categorical variables
Linear regression은 일반적으로 continuous variable(= quantitative variable)를 예측하는 데 사용되지만, categorical variable(= qualitative variable)도 포함하여 모델을 구축할 수 있다. 이러한 범주형 변수는 보통 더미 변수(dummy variable) 또는 원-핫 인코딩(one-hot encoding) 방식으로 변환하여 선형 회귀 모델에 포함다.
위의 표에서 base category인 'Red'를 제외한 선형 회귀식을 표현하면 아래와 같다.
- X_Blue=0, X_Green=0: 종속 변수 Y는 β0 + ϵ.
- X_Blue=1, X_Green=0: 종속 변수 Y는 β0 + β1 + ϵ.
- X_Blue=0, X_Green=1: 종속 변수 Y는 β0 + β2 + ϵ.
이 방법을 사용하면 category끼리의 비교를 할 수 있다.
2. Modeling interactions among variables
때때로 variables 간의 interaction을 고려해야 한다.
예를 들어, Color와 Price가 판매량에 미치는 영향을 분석할 때 모델 아래와 같다.
Machine Learning에서 Linear Regression 모델에서 variables 간의 interaction을 고려할 때, Hierarchy Principle을 만족해야 한다.
Hierarchy Principle은 모델에서 상호작용 항(interaction term)을 포함할 때, 상호작용에 관련된 하위 수준의 변수들도 반드시 포함해야 한다는 원칙이다. 즉, 상호작용 항을 모델에 추가할 때 하위 수준의 변수가 먼저 들어가야 하고, 그 후에 해당 변수들의 상호작용이 포함되어야 한다는 의미이다. 이 규칙은 해석의 일관성과 모델의 의미 있는 관계를 유지하기 위한 목적이다.
상호작용 항 추가 시, 기본 변수도 포함
- 상호작용 항을 모델에 추가하려면 해당 변수들의 기본 항도 포함해야 한다.
- 예를 들어, 모델이 다음과 같은 형태일 때:
이 모델에서는 Interaction term을 추가했지만, 각각의 기본 변수인 X1과 X2도 포함되어져 있다. 만약 기본 변수가 포함되어 있지 않으면 해석에 문제가 생기고, 모델이 비효율적이거나 부정확한 예측을 할 수 있다.
- 잘못된 모델:
- 올바른 모델:
Linear Regression 모델에서 같은 변수의 여러 제곱을 포함시키는 것이 가능하다. 이를 통해 Non-Linear Relationships를 모델링할 수 있기 때문에, 때때로 매우 유용할 수 있다.
3. Feature selection
Linear Regression에서 Least Squares Solution(최소제곱법의 해)은 항상 존재하지 않지 않는다. Least Squares Solution은 다음과 같은 식을 통해 구할 수 있다.
최소제곱법을 통해 해가 존재하려면, (XT)X 행렬이 역행렬(Invertible) 을 가져야 한다는 조건이 있다. 즉, (XT)X 행렬이 가역행렬이어야 최소제곱 해가 존재합니다. 행렬식(Determinant)가 0이 되어야 한다.
- (XT)X 가 가역행렬이어야만 역행렬이 존재하고, 그 결과로 유일한 해를 얻을 수 있다.
- 이 행렬이 가역적인지는 선형 독립성에 의해 결정된다. 즉, X의 열들이 선형 독립이라면 (XT)X는 가역적이고 해가 존재한다.
- 만약 열들 사이에 선형 종속성이 존재하면, (XT)X 는 비가역적이 되어, 역행렬을 구할 수 없게 되고, 그 경우 최소제곱법을 통해 해를 구할 수 없다. 선형 종속성이란, X 행렬의 열들 중 일부가 다른 열들의 선형 조합으로 표현될 수 있다는 것을 의미한다.
Machine Learning에서 Subset Selection (특징 선택)은 모델을 훈련할 때 모든 변수를 사용하는 대신 중요한 변수만 선택하여 모델의 성능을 개선하고 과적합을 방지하는 방법이다. Subset Selection은 모델을 더 간결하고 효율적으로 만들며, 특히 계산 비용을 줄이고 해석 가능성을 높이는 데 유용하다.
1. Best Subset Selection
Best Subset Selection은 Subset Selection에서 가장 좋은 조합을 찾기 위한 방법 중 하나로, 주어진 데이터셋에서 최적의 변수 집합을 선택하는 데 사용된다. 이 방법은 반복적으로 부분적인 최적 선택(Greedy Algorithm)을 하여 전역 최적 해에 근접하려는 방식이다.
2. Forward Stepwise Selection
Foward Stepwise Selection은 처음에 모든 변수를 제외하고 시작한 후, 하나씩 변수를 추가해가며 모델을 개선하는 방식이다. 모든 가능한 변수 조합을 평가하지 않아서 최적의 모델을 찾지 못한다.
과정:
- 초기 모델은 아무 변수도 포함하지 않은 모델(즉, 절편만 포함)로 시작한다.
- 각 변수들에 대해, 모델 성능을 가장 많이 개선할 수 있는 변수를 하나씩 추가한다 .
- 변수 추가 후, 모델의 성능을 평가하고, 성능이 가장 개선되는 변수부터 차례로 선택한다 .
- 변수를 더 이상 추가해도 성능 향상이 없을 때 종료한다.
3. Backward Stepwise Selection
Backward Stepwise Selection는 처음에 모든 변수를 포함한 모델을 시작하고, 점차 변수를 하나씩 제거해가면서 모델을 단순화하는 방식이다.
과정:
- 모든 변수를 포함한 모델을 시작한다.
- 각 변수의 중요도를 평가한 뒤, 가장 덜 중요한 변수를 하나씩 제거한다.
- 변수를 제거한 후, 모델 성능을 평가하고, 성능이 악화되지 않으면 해당 변수를 제거한다.
- 더 이상 변수를 제거할 수 없거나 성능이 크게 저하되면 종료다.
4. Forward Stagewise Selection
Forward Stagewise Selection은 단계적으로 변수를 추가하는 방식으로, 전체 변수 중에서 중요한 변수만을 선택하는 데 중점을 둔다. 변수를 중복하여 추가할 수 있다.
Test data는 최종 모델을 결정하기 전까지 절대로 사용해서는 안된다. 모델을 학습시킬 때는 Training data로 학습을 시키고, 여러 모델들 중 최종 모델을 결정하고자 할 때는 Validation set으로 평가한다. 그 후 최종 모델을 결정한 뒤 Test data를 진행하여 최종 결과를 얻는다.
Data를 분할하는 방법 중 하나로 K-Fold Cross-Validation이 있다. 방법은 모델을 여러 번 학습시키고 평가하여 성능의 일관성을 확인하고, 데이터의 분할 방식에 따른 성능 편차를 줄이는 데 도움을 준다.
K-Fold Cross-Validation의 절차
- 데이터 분할:
- 주어진 데이터를 K개의 동일한 크기의 폴드(fold)로 나눈다. 각 폴드는 서로 겹치지 않으며, 전체 데이터셋을 커버한다. 예를 들어, 100개의 데이터가 있을 때 K=5로 설정하면, 5개의 폴드가 각각 20개의 데이터를 갖게 된다.
- 모델 훈련과 검증:
- 각 반복(iteration)에서, K개의 폴드 중 하나를 검증 세트(validation set)로 선택하고, 나머지 K-1개의 폴드를 훈련 세트(training set)로 사용하여 모델을 훈련시킨다.
- 성능 평가:
- 모델을 훈련시킨 후, 검증 세트에서 모델의 성능을 평가한다. 이때의 성능 지표로는 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-score, RMSE(평균제곱근오차) 등 다양한 지표를 사용할 수 있다.
- 반복:
- 이 과정을 K번 반복한다. 각 반복에서 다른 폴드를 검증 세트로 사용하고, 훈련 세트는 다르게 설정된다.
- 결과 평균화:
- K번의 검증이 끝난 후, 각 검증 단계에서 얻은 성능 지표를 평균하여 모델의 최종 성능을 계산한다.