- DB
- PY4E
- python
- Machine Learning
- Ai
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- boostcoures
- AI 플랫폼을 활용한 데이터 분석
- 정보처리기사
- 오라클
- 코딩테스트
- 인공지능기초다지기
- 이기적
- 빅데이터분석기사
- 파이썬
- 데이터베이스
- SQL
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- Oracle
- boostcourse
- 빅분기
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 난생처음 R코딩&데이터 분석 저서
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- 프로그래머스
- 부스트코스
- 네이버부스트캠프
- r
- 기초다지기
- 코딩테스트 python
- Today
- Total
매일공부
[sklearn] 모델 정확도 평가; 오차측정 지표 본문
* 데이터 과학 모형
>> 정답을 얻을 수는 없지만 유용한 해답을 얻을 수 있음
>> 정답이 아닌 해답이기에 오차(error) 존재
오차측정 지표
회귀 분석은 실제 값과 예측값의 차이를 기반으로 분석 결과를 평가함
- 실제 값과 예측값의 차이 : 오차 , 잔차
- 제 값과 예측값의 차이의 제곱합 : SSE(sum of squared error) 오차 제곱합
- RSS(Residual Sum of Square) 오차 제곱 합
: 오류 값의 제곱을 구해서 더하는 방식, 미분 등의 계산 편리
: Error^2 = RSS - MAE (Mean absolute error) 평균 절대 오차
: from sklearn.metrics import mean_absolute_error, neg_mean_absolute_error
: 실제 값과 예측값의 차이를 절대값으로 변환해 평균한 것
: 지표 자체가 직관적이며 예측변수와 단위 같음
: 스케일 의존적 - MSE(mean square error) 평균제곱오차
: from sklearn.metrics import mean_squared_error, neg_mean_squared_error
: 실제 값과 예측값의 차이를 제곱해서 평균한 것
: 지표 자체가 직관적
: 예측 변수와 단위가 다름
: 이상치에 민감
: 스케일 의존적
: 큰 값에 대해 벌점이 크게 매겨짐 - RMSE (root mean square error) 평균 제곱근 오차
: np.sqrt(sklearn.metrics.mean_squared_error(origin, pred)))
: MSE에 루트를 씌운 평가지표
: 지표 자체가 직관적이며 예측변수와 단위가 같음
: 스케일 의존적
: 이상치에 민감
: 잔차를 제곱해서 생기는 값의 왜곡이 MSE에 비해 좀 덜함 - MAPE (Mean Absolute Percentage Error)
: MAE를 비율(%)로 표현한 것
: 지표 자체가 직관적
: MAE, MSE, RMSE에 비해 비교에 용이|
: 비율로 해석이 의미있는 값에만 적용가능 - MPE (Mean Percentage Error)
: MAPE에서 절댓값을 제외한 지표
: MPE > 0 underperformance (underestimates)
: MPE < 0 overperformance (overestimates)
: 지표 자체가 직관적이지 않으며 예측변수와 단위가 다름 - MSLE (Mean Squared Log Error)
: from sklearn.metrics import mean_squared_log_error
: MSE에 로그를 적용한 평가지표 - RMSLE(root mean square Log error)
: np.sqrt(sklearn.metrics.mean_squared_log_error(origin, pred)))
: MSLE에 루트를 씌운 평가지표
: 이상치에 강건
: 실제값과 예측값에 로그를 적용한것이므로 상대적인 Error를 측정함
ex) 예측값 =100, 실제값=90인 경우 RMSE=10 , RMSLE=0.1053
예측값 =10000, 실제값=9000으로 절대적 크기가 변경된 경우 RMSE=1000 , RMSLE=0.1053
: over estimation보다 under estimation에 더 큰 페널티를 부여함
ex) 예측값 =600, 실제값=1000인 경우, MSE=400 , RMSLE=0.510
예측값 =1400, 실제값=1000인 경우, MSE=400 , RMSLE=0.33
# MAE, MSE, RMSE, MSLE, RMSLE는 실제값과 예측값의 차이를 의미하므로 작을수록 예측 성능이 좋음을 의미함
>> 오차 파이썬 함수 : https://mizykk.tistory.com/102
>> 오차 그래프 : https://satchellhong.tistory.com/37
분산(Variance) 오차
- 학습용 데이터를 잘 예측하도록 만들어진 모형이 평가용 데이터를 예측하면 발생한 데이터 간의 차이로 발생하는 오차
- 과적합 발생
R² (R Sqaure; 결정계수)
: 예측값 분산/실제값의 분산
: from sklearn.metrics import r2_score, r2
: X가 Y를 얼마나 잘 설명/예측하는가를 알려주는 통계량
: 분산을 기반으로 예측성능을 평가
: 1에 가까울수록 예측 정확도가 높음
: 상대적으로 얼마나 성능이 나오는지를 측정한 지표
: Goodness of Fit = X로 설명할 수 있는 Y 변화량의 크기를 나타내며 0에서 1사의 값을 가짐
(1이면 차이를 100% 설명한다는 의미)
>> 값을 정확히 예측하기 위해선 R 2 값이 중요하지만, 경향성 정보가 중요한 경우 R 2 가 낮다고 꼭 나쁜 모양은 아님
SSE = (residuals**2).sum() #잔차 제곱 합
SST = ( (df['Price'] - df['Price'].mean())**2).sum()
R_squared = 1- (SSE/SST) #결정계수 - 예측 능력 평가
# 선형회귀 (Linear Regression) 분석에서 X가 Y를 얼마나 잘 설명/예측하는가를 알려주는 통계량(평가지표)?
R2 (R-SQUARED; 결정계수) = 1-SSE/SST = 예측값의 분산/실제값의 분산
편향 오차
- 모형이 너무 단순해서 예측을 제대로 못하는 경우 발생하는 오차
- 과소적합 발생
축소 불가능한 오차
- 반응 변수에 영향을 주는 변수 중 일부가 수집되지 않았거나 분석에 이용된 데이터가 갖고 있지 않은 다른 정보에 의해 발생한 오차 >> 줄일 수 없는 오차
교차검증 >> https://dailystudy.tistory.com/112
* 내용참고&출처 : 태그에서 수강한 수업을 복습 목적으로 정리한 내용입니다.
'IT > ML' 카테고리의 다른 글
[sklearn] 의사결정트리(Decision Tree) (0) | 2022.11.03 |
---|---|
[Machine Learning] TensorFlow, Keras (0) | 2022.11.03 |
Machine Learning 수업 전체 흐름 & 키워드 (0) | 2022.11.03 |
[Machine Learning] 로지스틱 회귀분석(분류) (0) | 2022.11.03 |
[Machine Learning] 인공지능이란? (0) | 2022.11.03 |