일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- chatGPT
- UDF
- login crawling
- tensorflow text
- BigQuery
- GenericGBQException
- 상관관계
- top_k
- hadoop
- GCP
- youtube data
- API Gateway
- gather_nd
- grad-cam
- spark udf
- correlation
- 유튜브 API
- API
- 공분산
- XAI
- Airflow
- session 유지
- subdag
- TensorFlow
- flask
- Counterfactual Explanations
- requests
- integrated gradient
- airflow subdag
- Retry
- Today
- Total
데이터과학 삼학년
[ISLR] Moving Beyond Linearity 본문
선형 모델은 해석력은 높지만 가정이 강한 단점을 가지고 있다.
이 장에서는 선형모델의 해석력을 여전히 가능한 높게 유지하면서 가정은 완화할 수 있는 방법들에 대해 알아본다.
-
Polynomial regression (다항식 회귀) : X, X^2, X^3 을 설명변수로 사용 --> 삼차회귀
-
Step functions (계단함수) : K개의 영역으로 구분하여 변수생성 --> piecewise constant function
-
Regression splines (회귀 스플라인) : X의 범위를 K개의 영역으로 나눠 각 영역 내에서 다항식을 구함 --> 다항식의 경계에서 매끄럽게 연결되거나 매듭 (knots) 되도록 제한됨
-
Smoothing splines (평활 스플라인) : 회귀 스플라인과 유사하지만 평활도 패널티 조건하에서 잔차제곱합을 최소로 한 모델
-
Local regression (국소 회귀) : 스플라인과 유사하지만 이는 영역이 겹치는 부분을 아주 매끄러운 방식(smooth way)로 적용할 수 있음
-
Generalized additive models (일반화가법모델) : 다중 설명변수들을 다룰 수 있도록 위의 방법들을 확장한 기법
Polynomial regression
표준적인 선형모델을 차수를 이용하여 확장한 것
차수인 d가 커질수록 극심한 비선형 곡선을 만듦
위에 실선은 추정된 곡석이고, 점선은 표준오차 곡선을 의미함
추정된 다항식 회귀는 분류문제에서 쓰기 위해서는 아래 식과 같이 로지스틱 회귀 형태로 바꿔서 구할 수 있다.
Step functions
다항식 회귀 모델처럼 설명변수를 다차식의 변수로 사용하는 것은 X의 비선형 함수에 전역 구조를 도입하는 것과 같다.
이러한 전역구조 도입을 피하기 위해 Step function (계단 함수)를 사용할 수 있다.
X를 여러개의 빈(bin)으로 분할하여 추정된 계수를 다르게 적용하는 것이다.
여기서, I 는 indicator function으로 조건을 만족하면 1, 아니면 0을 반환하여 다항식 회귀에서 일부 변수들을 제거할 수 있다.
이를 식으로 나타내면 아래 식 처럼 나타낼 수 있다.
계단함수 중 piecewise constant function을 이용해 추정된 식을 나타낸 그림은 아래와 같다.
계단 함수를 이용해 분류문제를 푸는 것 역시 로지스틱 회귀를 이용하여 나타낼 수 있다.
Basis function
Basis function 기저함수란 변수 X에 적용될 수 있는 함수 또는 변환의 모임을 가지는 것이다.
아래와 같은 식을 가지는데.
위 식에서 X앞에 해당하는 b1, b2, b3 등은 기저 함수로 미리 선택된다.
즉, 다항식 회귀의 경우 기저함수는
이고, 계단함수의 경우, 기저함수는
나타낼 수 있다.
현재까지는 기저함수를 다항식 함수와 piecewise constanct function(조각별 상수함수)로 사용하는 것을 고려하였는데,
기저함수는 wavelets (웨이브릿) 또는 Fourier series (푸리에 급수) 등을 이용하여 설정할 수 있다.
Regression splines
Regression splines은 basis fuction (기저함수)로서 매우 자주 선택되는 함수이다.
Regression splines의 몇가지 예시를 살펴보자.
* Regression splines 은 간단하게 회귀 곡선이라고 이해하자. 선형이 아닌 곡선 형태의 회귀방법이라 이해
Piecewise Polynomials
Piecewise Polynomials (조각별 다항식) 은 X의 범위를 구분하여 각 범위에 저차식의 다항식을 적합한다.
예를 들어 아래 삼차회귀모델을 적합한다면
위 3차 회귀모델을 범위를 나누어 아래 식처럼 계수를 각각 다르게 추정하여 넣는 것이다.
위의 다항식은 4개의 파라미터를 가지는데 이를 2조각으로 내서 적합하므로 자유도는 8이 된다.
* 자유도 : 모델이 계수를 추정(적합)하기 위해 필요한 최소의 자료(데이터) 갯수
Constraints and Splines
Constraints and Splines (제약조건과 스플라인)은 아래 그림7.3의 왼쪽 위 그림처럼 일반적으로 piecewise 내어 적합하게 되면 조각의 조건인 age=50인 부분에서 선이 이어지지 않는 문제가 있다. 이런 현상을 해결하기 위해 picewise 조건에서 다항식은 연속적일 뿐만 아니라 평활(smooth)해야한다라는 조건을 넣게 된다. 이러한 제한조건은 결과적으로 조각별 다항식 적합의 복잡도를 줄여 실질적으로 자유도를 1만큼 줄이게 된다.
따라서 왼쪽 위 그래프에서는 자유도가 8이지만, 3가지 제한조건(연속성, 1차 도함수 연속성, 2차 도함수 연속성)이 부여된 왼쪽 아래 그래프는 자유도가 5가 된다.
더 많은 제약조건 추가는 가능하다.
The Spline Basis Representation
회귀 스플라인 기저 표현하는 방법을 알아보자.
k개의 매듭 (knots)을 가지는 삼차 스플라인의 기저함 수 표현은 아래와 같다.
3차 스플라인을 나타내는 가장 직접적인 방법은 매듭 (knots)당 하나의 절단 멱 기저 함수 (truncated power basis function)을 추가하는 것이다.
삼차 스플라인을 k개의 knots를 가지는 자료에 적합하기 위해서는 절편과 x, x^2, x^3, h(1),h(2)..gudxodml 3+k 개의 설명변수를 가지는 최소제곱회귀를 수행한다.
즉 k+4의 자유도를 갖게 된다.
Choosing the Number and Locations of the Knots
매듭의 수와 위치를 선택하는 방법에 대해 알아보자.
스플라인을 적합할 때 매듭들은 어디에 위치시켜야 할까?
회귀 스플라인은 많은 매듭을 포함하는 영역일수록 유연하다. 왜냐면 이러한 영역에서는 다항식 계수들이 빠르게 변할 수 있기 때문이다.
따라서 함수가 가장 빠르게 변할 것 같은 곳에 많은 매듭을 위치시키고, 안정적인 곳에선느 적은 수의 매듭을 위치시키는 것이다.
실제로는 보통 균일하게 매듭을 위치시킨다고 함 -> 이 방법은 자유도를 지정해주면 소프트웨어가 자동으로 데이터의 균등 분위수 (uniform quantiles)에 대응하는 수의 매듭을 위치 시킴
자유도의 갯수를 늘리면서 error를 확인하여 최적의 자유도 갯수를 찾는 것도 한 방법이다. 위의 경우 삼차 스플라인의 경우 자유도 4이면 충분해보인다.
Comparision to Polynomial Regression
아래 그림은 3차 스플라인(자유도 15)과 15차 다항식을 비교한 그림이다.
다차 다항식을 사용하는 것보다 3차 다항식에 knots를 적용한 삼차 스플라인이 보다 효과적으로 보인다. 연산 면에서도.
Smoothing splines
회귀 스플라인의 경우 매듭(knots)을 지정하고 기저함수를 도출한 다음 least square를 이용해 스플라인 계수들을 추정하였다. 여기서는 스플라인을 생성하는 다른 방법을 소개한다.
곡선을 적합할때 RSS
가 가장 작게 하는 함수를 선택하지만, 이 방식에는 문제가 있다.
g(Xi)에 아무런 제한 조건을 두지 않으면 모둔 yi를 보간(interpolate)하도록 g를 선택함으로써 항상 RSS가 0이 되게 할 수 있다. 이러한 함수는 데이터에 과적합할 것이다.
g를 평활하게 할 수 있는 방법은 아래식을 최소로 하는 g를 찾는 것이다.
7.11식은 손실(LOSS) + 패널티(Penality)를 주는 형태이다.
g(t)함수의 1차 도함수(1차 미분값)는 t에서의 기울기를 나타내고, 2차 도함수는 기울기가 변하는 정도(양)를 나타낸다. 결국, 2차 도함수는 roughness의 측도이다.
즉, g(t)가 t 근방에서 아주 꾸불꾸불(wiggly)하면 2차 도함수(2차 미분값)의 절대값은 크고 아니면 0에 가까워진다.
7.11 식에서는 패널티로 꾸불꾸불한 정도를 줌으로 써 함수가 보다 smoothing 할 수 있도록 제약한다.
그렇다면 패널티에서 평활 파라미터인 람다(ㅅ)는 어떻게 선택할 수 있을까?
람다는 그 값이 커질수록 패널티에 가중치를 더하기 때문에 보다 곡선을 smoothing 하게 만드는 것을 의미한다.
Local regression
유연한 비선형함수들을 적합하는 기법으로 Local regression이 있다.
위 그림의 파란색 곡선은 데이터를 생성한 f를 나타내고 오렌지 선이 local regression을 나타낸다.
국소회귀 (local regression)은 기억 기반 (memory-based) 절차라고도 한다. 그 이유는 최근접 이웃과 같이 예측을 계산하고자 할때마다 모든 훈련 데이터를 필요로 하기 때문이다.
쉽게 일정 구간 마다 훈련 포인트를 모아서 회귀식을 만드는 것을 의미한다고 보면 된다.
linear 모델을 형성할 위치인 x0를 기준으로 최근접 이웃에 대해 가중치를 두고, 그 이외의 모든점은 가중치를 0으로 둠으로써 local에 대해 linear를 구한다.
Generalized additive models
일반화가법모델은 가산성(additivity)은 유지하면서 각 변수의 비선형함수들을 허용하여 표준선형모델을 확장하는 일반적 체계를 제공한다.
각 설명변수 X에 대해 별도로 f를 계산하고 그 다음 이들의 기여를 모두 더하기 때문에 가법(additive)모델이라 부른다.
GAMs의 장점과 단점
-
(+) GAMs는 X 각각에 비선형 함수 f를 적합할 수 있어 표준 선형회귀로는 놓칠수 있는 비선형 관계를 자동적으로 모델링할 수 있다. 즉, 각 변수에 대해 많은 다른 변환을 수동으로 시도해볼 필요가 없음을 의미한다.
-
(+) 비선형 적합은 반응변수 Y에 대해 정확하게 예측할 가능성이 있다.
-
(+) 가산적 모델이기 때문에 Y에 대한 X 각각의 영향을 다른 변수들은 모두 고정하고서 개별적으로 조사할 수 있다. 추론적 해석에 용이하다
-
(+) 변수 X 에 대한 f의 평활도(smoothness)는 자유도를 통해 요약될수 있다.
-
(-) 모델이 가산적이어야한다는 제한이 있다. 많은 변수들이 있는 경우 중요한 상호작용을 놓칠 수 있다. 이를 극복하기 위해 cross feature (x1 * x2)를 생성함으로서 상호작용을 GAMs에 추가할 수 있다.
GAMs를 분류문제에 적용
분류 문제에 적용하기 위해 간단하다. 앞에서 처럼 결국 선형의 형태와 유사하기 때문에 로지스틱 회귀를 이용해 분류문제를 풀 수 있다.
출처 : An Introduction to Statistical Learning in R
'Statistical Learning' 카테고리의 다른 글
[기초통계] 왜도(Skewness)와 첨도(Kurtosis) (0) | 2020.03.28 |
---|---|
[ISLR] Tree-Based Methods (0) | 2020.03.26 |
[ISLR] Linear Model Selection and Regularization (0) | 2020.03.11 |
자료포락분석(DEA), 토빗 회귀모형(절단회귀 모형 Tobit) (1) | 2020.03.04 |
[ISLR] Resampling Methods (1) | 2020.03.03 |