본문 바로가기
머신러닝 딥러닝

0118 confusion matrix( 오차 행렬), Information Gain(IG)

by 대금부는개발자 2022. 1. 18.
SMALL

 

confusion matrix( 오차 행렬)

우리가 만든 logistic regression이 잘 만들어진 model 인지를 평가하는 지표.(로지스틱의 특징은 0,1로 나와요)

→ 우리의 model이 예측한 결과와 실제 정답(Lable)의 차이를 이용해서 모델의 정확도를 계산할 수 있어요!

 

 

1. Accuracy

전체 중 모델이 바르게 분류한 비율 → confusion matrix의 대각선

일반적으로 정확도로 많이 사용(직관적)

하지만 Domain(내가 가지고 있는 Data의 bias(편차)에 상당히 민감해요.

→ 데이터가 한쪽으로 치우쳐져 있는 경우

 

 

2.Precision(정밀도) 정확도랑 착각 Nono~

모델이 Positive라 분류한 것 중 실제 Positive인 비율 → confusion matrix의 첫 번째 열 방향

 

→ Recall(재현도)와 반비례, 1에 가까워질수록 정밀도가 높아요.

 

 

3. Recall(재현도, Hit rate, sensitivity)

실제 값이 Positive인 것 중 모델이 Positive라 분류한 비율 → confusion matrix의 첫 번째 행 방향

1로 가까워질수록 재현도가 높아요 → precision 과 반비례

 

 

 

4. F1 Score(F-Measure)

precision과 recall의 조화평균

→ confusion matrix의 첫 번째 행, 열

 

 

데이터가 한쪽으로 편향될 때 쓰면 좋다.

다중 Class에서 F1 Score 구하는 법 - 각 Class에 대한 Precision을 구한 후,

평균값으로 F1 Score 계산

 

 

 

 

5. Fall-out

실제 False인 data 중에서 모델이 True라고 예측한 비율

→ 즉, 모델이 실제 false data인데 True라고 잘못 예측(분류) 한 것

 

 

6. ROC curve

Recall과 Fall-out의 변화를 시각화한 그래프

Fallout은 실제 False인 data 중에서 모델이 True로 분류한, 그리고 Recall은 실제 True인 data 중에서 모델이 True로 분류한 비율을 나타낸 지표

이 두 지표를 각각 x, y의 축으로 놓고 그려지는 그래프를 해석

→ curve가 왼쪽 위 모서리에 가까울수록 모델의 성능이 좋다고 평가합니다. 즉, Recall이 크고 Fall-out이 작은 모형이 좋은 모형인 것입니다. 또한 y=x 그래프보다 상단에 위치해야 어느 정도 성능이 있다고 말할 수 있습니다.

 

 

classification_report 보는 법

 

support - 분류된 수

accuracy부터 밑에 있는 support - 전체 데이터 수

macro avg - 단순평균

 

weight avg - 가중 평균

분류된 개수/전체 데이터 수

ex) precision의 가중평균

(0의 계산된 precision * support + 1의 계산된 precision * support) / 전체 데이터 수

 

 

 

Entropy

정보량을 의미

 
엔트로피(Entropy)
정보량
확률
높다
많다
낮다
낮다
적다
높다

 

ex) 해가 동쪽에서 뜬다(100% 확률) → 엔트로피 낮다, 정보량이 적다.

해가 서쪽에서 뜬다(0% 확률) → 엔트로피 높다, 정보량 많다.

 

 

Information Gain(IG)

어떤 속성을 선택함으로 인해서 데이터를 더 잘 구분하게 되는 것

Information Gain을 계산해서 컬럼 중요도 계산(0~1 사잇값 가짐)

원래 Gini가 높았는데(막 섞여있음) 이 컬럼 값으로 분류하니까 Gini가 낮아짐(잘 분류) 일 때

Information Gain 값이 높아요(변별력이 좋다.)

 

어떤 분류를 통해 얼마나 Information(정보)에 대한 gain(이득)이 생겼는지를 나타낸다.

→ Entropy 사용(상위 노드의 엔트로피 - 하위 노드의 엔트로피)

어떠한 특징(속성)을 선택함으로써 example을 구분하게 될 때 감소되는 entropy의 양 → 데이터를 잘 구분

Information Gain에서 모든 사건이 평균적인 확률을 지닐 때 가장 엔트로피가 높게 나타냄

자식들의 지니가 0일 때 Information Gain이 크고 자식들의 지니가 클 때 Information Gain이 낮다.

 

Information Gain 크다 → 순도(Purity)가 더 높게 나뉘었다.(더 잘 분류되도록 나뉘었다)

Information Gain이 없을 때(부모 노드의 정보량과 자식노드의 정보량의 차이가 없을때)

 Tree는 분기(split)을 멈춤(정보 획득이 없기 때문)

 

 

칼럼의 중요도

값이 큰게 좋아요(Information Gain가 큰 칼럼 → 원래 Gini가 높았는데 분류하고 나서 Gini가 낮아진 칼럼)

 

https://mindsee-ai.tistory.com/74

 

[Applied Predictive Modeling] Feature Importances 특성 중요도

study 우선순위 렉쳐노트에서 특성 중요도 구하는 방법 3가지와 xgb 학습 과정 전반적으로 이해하기. 과제 제출 내데이터 조합하기 그걸로 과제.. xgboost 개념 이해하기 Feature Importances 질문 정리 특

mindsee-ai.tistory.com

 

 

 


여담으로 보통의 경우 엔트로피(Entropy)가 지니보다 더 높은 성능을 낸다.(평가에 더 가혹하다)

반면 연산 속도는 지니가 엔트로피를 더 앞선다.(로그를 사용하기 때문)

→ 시간을 투자해서라도 조금 더 나은 성능을 얻고자 할 때 Entropy,

준수한 성능과 빠른 계산을 원할 때 Gini 사용

 

https://wyatt37.tistory.com/9

 

지니(Gini) vs 엔트로피(Entropy) 그리고 정보 이득량(Information Gain)

안녕하세요, 끙정입니다. 오늘은 Tree Based Method에서 파티션(노드)을 분할할 때 기준으로 쓰이는 두 가지 측정방법, Gini(지니)와 Entropy(엔트로피)를 알아보겠습니다. 그리고 추가로 Information Gain(정

wyatt37.tistory.com

 

 

 

LIST

'머신러닝 딥러닝' 카테고리의 다른 글

0119 Ensenble, XGBoost  (0) 2022.01.19
GridSearchCV  (0) 2022.01.19
0117 Random Forest  (0) 2022.01.17
0114 Decision Tree  (0) 2022.01.14
1004 CNN 구조 정리, Fine Tuning  (0) 2021.10.04

댓글