일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- GIT
- h2 데이타베이스
- URI 원칙
- 파이썬
- 사이킷런 회귀
- 컬렉션 인터페이스
- 쓰레드 풀
- REST API
- 스프링 부트
- Selenium
- 프로그래머스
- Python
- streamlit
- 차원증가
- Java
- 오라클
- conda remove
- 자바 열거형
- 스프링 부트3
- 셀레니움
- 머신러닝
- 사이킷런
- openai
- db
- 알고리즘
- 완주하지못한선수
- 자바 로그 레벨
- 컬렉션 프레임웍
- WinError5
- oracle
- Today
- Total
노트 :
선형회귀 평가지표 (with Scikit-learn) 본문
1. 회귀(Regression)
: 영국의 통계학자 갈톤(Galton)이 유전적 특성을 연구하면서 체계화함. 부모와 자식의 키의 상관관계를 들여다 보면 부모의 키가 모두 클 때 자식의 키가 크긴 하지만 부모를 능가할 정도로 크지 않고, 부모의 키가 모두 작을 때 그 자식의 키가 작기는 하지만 부모보다는 큰 경향성을 띔. 즉, 사람의 키는 평균 키로 회귀하려는 경향을 가지고 있으며, 회귀 분석은 이러한 자연법칙을 적용하여 데이터의 값이 평균과 같은 일정한 값으로 돌아가려는 점에 착안하여 분석을 진행함
회귀분석: 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링
2. 선형회귀
: 실제값과 예측값의 차이(오류)를 최소화하는 직선형 회귀선을 최적화하는 방식
3. 머신러닝에서의 회귀예측의 목표
: 주어친 피처(data)와 결정값(label) 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것
4. 선형회귀의 종류
① 단순 선형 회귀(Simple Linear Regression)
② 다중 선형 휘귀(Multiple Linear Regression)
③ 다항회귀(Polynomial Regression)
④ 로지스틱 회귀(Logistic Regression) : 분류에 사용
5. 선형회귀 평가지표
① MAE(Mean Absolute Error)
: 실제값과 예측값의 차이를 절댓값으로 변환해 평균화, 0에 가까울수록 좋음
② MSE(Mean Squared Error)
: 실제값과 예측값의 차이를 제곱해 평균화, 0에 가까울수록 좋음
③ RMSE(Root Mean Squared Error)
: MSE는 오류의 제곱을 구하므로 실제 오류보다 더 커지는 특성이 있으므로 MSE에 루트를 씌움, 0에 가까울수록 좋음
④ R^2
: 결정계수, 실제값의 분산 대비 예측값의 분산 비율을 지표로 함, 1에 가까울수록 좋음
6. 사이킷런 평가지표
평가방법 | 사이킷런 평가지표 API | 스코어링 함수 적용 값 |
MAE | metrics.mean_absolute_error | 'neg_mean_absolute_error' |
MSE | metrics.mean_squared_error | 'neg_mean_squared_error' |
RMSE | metrics.mean_square_error사용 후 squared = False 설정 |
'neg_root_mean_suqared_error' |
MSLE (MSE나 RMSE에 log적용) | metrics.mean_squared_log_error | 'neg_mean_squared_log_error' |
R^2 | metrics.r2_score | 'r2' |
* 사이킷런의 스코어링 함수는 숫자가 큰 값을 예측이 높다고 생각하지만, 해당 평가방법은 실제값과 예측값의 오차에 대한 평가방법이므로 숫자가 작을수록 예측성능이 좋다. 따라서 사이킷런의 스코어링 함수에 적용할 때는 negative값으로 바꿔서 적요해주어야 한다.
참고: 「파이썬 머신러닝 완벽 가이드」, 권철민 지음, 위키북스
'ML' 카테고리의 다른 글
이진 분류 성능 지표 - 정확도, 혼동 행렬(AKA 오차 행렬), ROC곡선 (0) | 2023.05.22 |
---|---|
Scikit-learn - 데이터 인코딩 (0) | 2023.04.08 |
피처 스케일링과 정규화 (0) | 2023.03.27 |
활성화 함수 구현하기 (0) | 2023.03.27 |
반응형 머신러닝 앱을 만드는 가장 빠른 방법 - gradio (0) | 2023.03.04 |