나장승현
|2024. 12. 28. 21:50
1. 개념
- 입력변수(독립 변수)에 기초하여 출력변수(종속 변수)을 설명하거나 예측하는 통계적 모델
- 오차를 최소화 할 수 있는 기울기와 절편을 계산하는 과정
- 회귀분석은 입력변수와 출력변수에 선형적 관계가 존재해야 예측 성능이 좋음
2. 유형
- 단순 선형회귀(Simple Regression) : 입력변수가 1개
- 다중 선형회귀 : 입력변수가 k개
- 다항선형회구 : 입력변수와 출력변수와의 관계가 1차 함수 이상인 관계
- 로지스틱 회귀(Logistic Regression) : 회귀식을 이용한 분류모델(이진분류)
- 페널티(정규화, Regulization) 기법을 사용한 회귀분석
- 오버피팅을 막기 위한 방법
- Redgie, Lasso, elasticNet 등
- 비선형 회귀 : 입력과 출력이 비선형 관계
3. 모델 이해
3.1 기본 표현식
- y = b + Wx + e
- W : 가중치
- b : 편향
- e : 오차(잔차)
- 오차(Error) : 모집단에서 예측된 값과 실제 값의 차이
- 잔차(Residual) : 표본집단에서 예측된 값과 실제 값의 차이
3.2 성능지표
- 평균제곱오차(MSE, Mean Square Error) : 실제 값과 예측 값 차이를 제곱한 평균값
- 절대평균제곱오차(RMSE, Root Mean Square Error) : MSE는 이상치에 민감하기에 여기에 루트를 취한 값
- 절대평균오차(MAE, Mean Absolute Error) : 실제 값과 예측 값의 차이를 절대값으로 변환 후 평균값
- 결정계수(R-squared)
- SST(Total sum of squares) : 총 제곱합
- SSR(Sum of squares due to regression) : 회귀모델에 의한 제곱합
- SSE(Sum of squares due to residual errors) : 오차에 의한 제곱합
- R^2 = SSR / SST = 1 - (SSE / SST)
- MAE, MSE, RMSE는 데이터의 scale에 따라 값이 다르나, R^2 값은 0~1 범위 값을 가짐
- 수정 결정계수(Adj. R-squared)
- 다중회귀분석에서 사용(일반 결정계수와 함께 사용)
- 결정계수는 입력변수 개수가 많아질수록 결정계수 값이 커지는 특성이 있음
4. Python API
- 모델(sklearn.linear_model)
- LinearRegression
- LogisticRegression
- Lasso
- Ridge
- ElasticNet
- 모델 공통 함수
- fit(train_x, train_y) : 학습
- coef : 가중치
- intercept_ : 편향
- predict(test_x) : 예측
- score(test_x, test_y) : 성능 평가
- 성능 측정(sklearn.metrics)
- mse : mean_squared_error
- rmse : mse에 루트
- mae : mean_absolute_error
- r2 : r2_score
- 구현 프로세스
- 데이터셋 분리
- 전처리
- 모델 객체 생성
- 학습
- 예측
- 성능평가