본문 바로가기
머신러닝

Entropy와 Gini 계수

by 미생22 2024. 2. 21.
728x90

1. Entropy

 

확률적으로 희소성이 있을 때 해당 정보의 가치가 커진다고 봅니다.
어떤 속성을 선택하므로 인해서 데이터가 더 잘 구분되는 것을 정보 이득이라고 합니다.

엔트로피 : 무질서도(disorder), 불확실성(uncertainty)를 나타내므로 정보의 무질서도로도 표현할 수 있습니다.
정보가 획일적이라면 질서가 잘 갖춰져 있고 그럴 때 엔트로피가 낮다라고 표현합니다.
무질서할수록 엔트로피가 높다고 얘기할 수 있습니다.

어떤 확률분포로 일어나는 사건은 아래 수식을 따릅니다


p는 해당 데이터가 해당 클래스에 속할 확률이며, 이 값이 커질수록 확률분포의 불확실성이 커지며 결과에 대한 예측이 어려워집니다.

 

파이썬을 통해 한번 그려보겠습니다.

 

import numpy as np

p = np.arange(0.001, 1, 0.001)
plt.grid()
plt.title('$-p \log_{2}{p}$') 
#$로 감싸주면 수학적 기호가 된다. #\로 log가 기울어지지 않게 이것이 수학기호다 라고 나타냄
#(수학기호는 기울어지면 안됨, italic체로 수학기호를 나타내면 안됨)

plt.plot(p, -p*np.log2(p));

 

 

엔트로피는 이 확률들의 합이다. 즉 모든 -plog₂(p)를 다 더한 값이다. 따라서 앞에 sigma k=1부터 m까지를 붙여주면 entropy가 됩니다.
빨간공 10개 파란공 6개인 경우에 Entropy는 다음 식과 같습니다
-(10/16)*np.log2(10/16)-(6/16)*np.log2(6/16) = 0.954434002924965

 

2. 지니계수

컴퓨터는 log를 계산하기 어려워서 새로운 무질서도를 표현하는 방식을 만들었습니다.
그것이 지니계수입니다.


Gini index혹은 불순도율이라고 나타냄
엔트로피의 계산량이 많아서 비슷한 개념이면서 보다 계산량이 적은 지니계수를 사용하는 경우가 많습니다.

 

지니계수도 낮을수록 좋습니다.
빨간공이 10개, 파란공이 6개인 경우,
1-(6/16)**2-(10/16)**2의 식을 사용할 수 있습니다.

728x90