Statistical Learning
머신러닝의 목적은 x를 예측하는 것이 아닌 error를 제외하고 x와 y의 관계를 정의하는 f를 만드는 것입니다.
다시 말해, 입력 변수(x)와 출력 변수(y) 사이의 관계를 모델링하기 위해 함수 f를 추정하는 것이 핵심적인 작업이죠.
이를 통해 새로운 입력 값에 대한 출력 값을 예측하거나, 입력 변수가 어떤 결과에 영향을 미치는지를 추론할 수 있습니다.
이번 장에서는 f를 추정하는 방법에 대해 알아보겠습니다.
1.1. f(x)를 추정하는 이유 (Why Estimate f?)
함수 f를 만들어내면 좋은 이유는 바로 예측(prediction)과 추론(inference)을 할 수 있기 때문입니다.
여기서 예측이란 한 번도 관측하지 않았던 x에 대해서 y를 예측할 수 있다는 것이고,
추론이란 x와 y의 관계를 알 수 있을 가능성이 높다는 것입니다.
예측(prediction)


추론(inference)
- 어떤 매체가 매출과 관련이 있는가?
- 어떤 매체가 매출에 가장 큰 영향을 미치는가?
- TV 광고 증가에 따른 매출 증가의 크기는 어느 정도인가?
관련된 연습문제를 보겠습니다.
Pracitce 2-2.
분류 또는 회귀 중 어떤 문제인지 설명하고, 가장 관심 있는 것이 예측인지 추론인지 명시하여라. 마지막으로 n과 p를 제시하여라.
(a) We collect a set of data on the top 500 firms in the US. For each firm we record profit, number of employees, industry and the CEO salary. We are interested in understanding which factors affect CEO salary.
미국 내 상위 500개 회사. 각 회사의 이익, 직원 수, 업종, CEO 연봉. 어떤 요소가 CEO 연봉에 영향을 주는지 이해하는데 관심이 있다.
회귀, 추론
n : 500 (미국 상위 500개 회사)
p : 이익, 직원 수, 업종
(b) We are considering launching a new product and wish to know whether it will be a success or a failure. We collect data on 20 similar products that were previously launched. For each product we have recorded whether it was a success or failure, price charged for the product, marketing budget, competition price, and ten other variables.
새로운 제품을 출시할 때, 이게 성공할 것인지 또는 실패할 것인지.
이미 출시된 20개의 유사한 제품에 대한 데이터는 각 제품에 대한 성공/실패, 판매 가격, 마케팅 예산, 경쟁사 가격, 기타 10개의 다른 변수를 포함한다.
분류, 예측
n : 20 (이전에 출시된 20개의 유사한 제품)
p : 판매 가격, 마케팅 예산, 경쟁 가격, 기타 10가지 변수
(c) We are interested in predicting the % change in the USD/Euro exchange rate in relation to the weekly changes in the world stock markets. Hence we collect weekly data for all of 2012. For each week we record the % change in the USD/Euro, the % change in the US market, the % change in the British market, and the % change in the German market.
세계 주식 시장에서 주별 변동과 관련하여 미국 달러화의 % 변화를 예측하고자 한다. 2012년 전체의 주별 데이터가 있고. 각 주에 대한 달러의 % 변화와 미국, 영국, 그리고 독일의 각 % 변화에 대한 기록을 포함한다.
회귀, 예측
n : 52 (weeks of 2012 weekly data)
p : % change in 미국, 영국, 독일 market
1.2. f의 추정 (How Do We Estimate f?)
그렇다면 f를 어떻게 추정할 수 있을까요?
f를 추정하는 방법에는 모수적 방법(Parametric Methods)과 비모수적 방법(Non-parametric Methods)이 있습니다.
비모수적 방법(Non-parametric Methods)
1. 평균을 낸다 (optimal/ideal regression)
f(x) = E(Y|X=x)
- MSE를 최소화하는 관점에서의 최적의 방법
- 궁금한 값에 대해 관측데이터가 항상 있어야 함
하지만 추정하고자 하는 값에 대한 관측 데이터가 정확하게 항상 있는 경우는 일반적으로 잘 없습니다.
x=4라고 특정하게 주어졌을 때 y의 값이 딱! 존재하는 경우처럼요.
그렇기 때문에 주변부의 평균을 내는 방법을 사용합니다.
2. 주변부의 평균을 낸다 (Nearest Neighbor)
E(Y|X∈N(x))
하지만 이 방법은 데이터가 dense 한 경우 강력하지만, 데이터의 차원이 높을 경우 쓰기가 어렵습니다.
왜냐하면 1차원에서 2차원으로 가기만 해도 데이터 간의 거리가 너무 멀어지고, 이 말은 곧 주변에 데이터 없을 가능성이 높다는 뜻이죠.
그렇게 되면 예측에 필요한 샘플 수가 기하급수적으로 증가하게 되어 NN 알고리즘의 성능이 저하됩니다.
모수적 방법(Parametric Methods)
3. 함수의 꼴을 가정하고, 계수(parameter)를 예측한다


하지만 함수의 꼴을 가정하는 게 가장 어렵습니다. 위의 식과 같이 f=ax+b의 꼴일 수도 있지만 더 복잡할 수도 아니면 간단할 수도 있습니다. 그렇다면 어떤 복잡도를 가진 함수를 써야 할까요?
2.1. Measuring the Quality of Fit
Overfitting
- 복잡한 모델만이 정답은 아니다
- 학습 에러가 적기 때문에 복잡한 모델이 좋아 보이지만 데이터 많이 필요하고 계산도 많이 필요하며 test error도 크게 생김
- MSE(TR), 학습 에러만 보고 모델을 선택하면 과적합 모델을 고르는 오류가 생김
Good fit
- (accuracy 관점) Ground truth의 함수의 복잡도와 비슷한 함수를 찾아야 한다
- MSE(TE), Test Error의 최저점으로 모델을 선택할 때
Underfitting
- linear regression처럼 단순한 모델의 경우
- 설명력(interpretability)이 높다 : 계산(computation)이 적고 적은 데이터로 fit이 가능하며 간단해서 설명 가능함
- 제약(constraint)이 많은 경우 어떤 방향으로 가야 할지 힌트를 줌
Q. 그러면 어떻게 하면 good fit model을 찾을 수 있을까요?
- 복잡도가 다른 함수에 대해 계수를 예측해 보고
- 학습에 사용되지 않은 데이터들에 대해서 테스트해 보고 error가 가장 작은 모델을 찾아낸다
Q. 어떤 모델을 선택하는 게 좋을까요?
바로 Ground truth에 가까운 모델!입니다.
복잡한 모델은 모든 샘플이 가능하면 다 적합하도록 만들어졌기 때문에 학습 시에는 학습 에러가 낮을 수 있지만,
테스트 시에는 에러가 높아질 수 있기 때문이에요.
아래 그림을 보고 Good fit 모델을 찾아보겠습니다.
Ground truth에 따른 모델별 MSE
- 검은색 : Ground truth
- 주황색 : 선형 회귀 (자유도=2)
- 하늘색 : 자유도가 5인 smoothing spline
- 초록색 : 자유도가 더 높은(복잡한) smoothing spline
- 빨간색 : 검정 오차(Test error)
- 회색 : 학습 오차(Train error)
1) Ground truth가 곡선인 경우
- 복잡한 함수(초록색)는 Train error가 낮지만 Test error가 높음 (Overfit)
- 적당히 복잡한 함수(하늘색)가 Good fit!

2) Ground truth가 복잡한 곡선인 경우
- 복잡한 함수(초록색)와 적당히 복잡한 함수(하늘색) 비슷함, Good fit!

3) Ground truth가 단순한 선형 회귀에 가까운 경우
- 복잡한 함수(초록색) 은 Overfit
- Ground truth와 비슷한 선형모델과 자유도가 낮은 하늘색 곡선이 비슷함, Good fit!

2.2. Bias-Variance Trade-off
분산(Variance)과 편향(Bias)은 머신러닝에서 모델의 성능을 평가하고 개선하는 데 중요한 개념입니다.
- 분산(Variance) : 학습 데이터에 의해 모델이 변동되는 정도
- 편향(Bias) : 모델의 예측값이 실제 값과 얼마나 잘 맞는가
분산은 모델의 예측값이 학습 데이터에 따라 얼마나 변하는지를 나타내는데요. 모델이 복잡할수록 예측값이 불안정해지고 분산이 증가합니다. 높은 차원의 다항식 모델을 사용하면 분산이 높아질 수 있습니다.
편향은 모델의 예측값과 실제 값 사이의 차이를 나타냅니다. 모델이 단순할수록 예측값과 실제 값 사이의 차이가 커지고 편향이 증가합니다. 단순한 모델의 예 중 하나인 선형 회귀의 경우 데이터의 패턴을 잘 파악하지 못할 수 있겠죠?
이와 같이 분산과 편향 사이에는 모델이 너무 복잡하면 분산이 증가하고, 모델이 너무 단순하면 편향이 증가하는 trade-off 관계가 있습니다. 적절한 모델의 복잡도를 찾기 위해서는 이후 살펴볼 교차 검증(Cross-validation)과 같은 방법을 사용하면 됩니다.

마지막으로 관련된 이번 장 연습 문제 중 하나를 살펴보고 마무리하겠습니다.
Pracitce 2-5.
회귀 또는 분류에 대한 기법 중에서 매우 유연한(복잡한) 방법이 덜 유연한 방법에 비해 가지는 장점과 단점은 무엇인가?
어떤 경우에 더 유연한 기법을 선호하고, 또 어떤 경우에 덜 유연한 기법을 선호하는가?
1) 장점과 단점
- 장점 : 매우 유연한 방법은 복잡한 패턴을 모델링할 수 있으며, (비선형 모델의 적합성을 높임)
덜 유연한 방법에 비해 데이터에 대한 더 정확한 적합을 제공할 수 있다. (Bias 측면에서 유리)
- 단점 : overfitting 발생할 가능성 높다. (variance 측면에서 불리)
새로운 데이터에 대한 예측력이 낮아질 수 있다. (더 많은 매개 변수의 추정이 필요)
2) 더 유연한 기법을 선호하는 경우
- 데이터나 모델링하는 패턴이 매우 복잡하거나 데이터의 양이 매우 큰 경우
- 결과 해석에 관심이 없고 예측에 관심이 있는 경우
3) 덜 유연한 기법을 선호하는 경우
- 데이터의 양이 적을 때 (overfitting 우려)
- 결과 해석에 관심이 있고, 추론에 관심이 있을 때
Reference
- An Introduction To Statistical Learning with Applications in R
'Data Science > Machine Learning' 카테고리의 다른 글
| [ML] An Introduction to Statistical Learning 머신러닝 교재 추천 (0) | 2023.04.30 |
|---|