선형 모델의 개념
과자(1,500원)와 우유(1,200원)를 사기위해 마트에서 장을 본다고 가정하자.
total cost = n(과자) 1500 + n(우유) 1200
이처럼, 독립 변수 (n(과자, 우유))가 파라미터 (가격) 값 만큼 일정한 비율로 종속 변수 (total cost)에 영향을 미치는 관계가 선형 관계이다.
종속변수 y에 대해 파라미터들이 선형 결합을 이루고, 이것으로 종속 변수의 값을 표현 할 수 있는 경우, 이를 선형 모델이라고 한다.
데이터가 작을 때 좋은 모델이다
선형 vs 비선형
선형 모델에서는 기본적으로 "독립 변수"들은 서로 상관관계가 없는경우를 가정한다.
다중 공선성 문제 (Multicollinearity Problem) : 독립 변수 사이에 높은 상관관계가 있어 모델의 성능이 저하되는 문제
결과적으로 선형 회귀 모델을 사용하는 것은 :: 입력 데이터의 독립성을 가정하고 데이터 특징에 대한 선형 결합으로 회귀 문제를 풀겠다는 의미이다.
비용 함수(J(w)) = MSE (Mean Squared Error) : 예측값과 실제값의 오차(Error)를 제곱(Square)하여 평균(Mean)을 구한다
선형 모델의 최적화 : 정규 방정식 (OLS)
선형 모델의 최적화 : 경사 하강법
임의로 설정한 초기 w 값을 기준으로 J(w)의 기울기를 계산하여 기울기가 0에 가까워지는 방향으로 w값을 점진적으로 수정
모든 test data에 대해 iterative하게 진행되기 때문에 확률적 경사 하강법 (Stochastic Gradient Decent)를 더 많이 사용한다.
확률적 경사 하강법 (Stochastic Gradient Decent) : 전체 데이터 중 임의로 일부 데이터를 샘플링하여 그것을 대상으로 경사 하강법을 진행한다. 즉, 작은 데이터로 수정 이동을 반복하여 빠른 수렴이 가능하다.
다중공선성 (multicollinearity)
feature들 사이에 상관 관계가 존재할 때 발생하는 문제 상황 -> ML 모델이 작은 데이터의 변화에도 민감하게 반응하여 안정성과 해석력을 저하시킨다
특히 정규 방정식으로 해를 구하는 상황에서 T(X)X의 역행렬이 존재하지 않을 수 있어 치명적이다.
회피 방법 (해결 방법 XXX) = SVD-OLS : 특이값 분해를 사용하여 선형 회귀 모델의 해를 구하는 방법. 정확한 해를 구하는 방법은 아니다.
시간 복잡도 : O(np^2)
다중공선성이 존재하지 않는 경우 SVD-OLS의 결과값과 OLS의 결과값은 (거의) 동일하다.
scikit-learn 패키지에는 성능이 더 좋은 TSVD-OLS가 구현되어 있다
규제를 사용하는 선형 모델
ML 모델에서 overfitting 문제가 발생 할 경우 w의 값이 매우 커진다. 그래서 w의 값이 너무 커지지 않도록 규제(regulation)을 가해 overfitting 문제를 회피하는 모델
라쏘 회귀 (Lasso Regression)
로지스틱 회귀 (Logistic Regression)
기본적으로 이진 분류 문제를 해결하기 위한 알고리즘. 각 후보 클라스의 확률을 예측(확률 추정)하는 방식으로 문제를 해결한다
일반적으로 확률 값이 50% 이상(양성, positive)이면 해당 클래스에 속한다고 예측한다. (<-> 음성)
Logistic Regression의 경우도 선형 모델의 조건(독립 변수간 독립성)을 가정한다
Softmax Regression
의료비 개인 데이터셋을 통한 선형 회귀 실습
목적 : 주어진 건강 및 인구통계학적 정보(독립 변수)를 바탕으로 개인의 연간 의료 보험료(종속 변수)를 예측한다
진행 순서 ([Part4, Chap10] 선형 회귀 실습.ipynb)
기본적인 EDA 진행
데이터 전처리
간단한 선형 회귀 모델을 만들고 결과 확인
feature 레벨로 영향력 확인
잔차분석 진행