파이썬에서 decision tree를 구축할 때 있어서 weighted_memory를 구해야되는데
그 과정에서 entropy 값을 구하는 코드가 이해가 안되서 질문 올립니다.
Weighted_Entropy = np.sum([(counts[i] / np.sum(counts))
* entropy(data.where(data[feature] == vals[i]).dropna()[class]) \
for i in range(len(vals))])
에서 entropy를 값을 구할 때 제가 이해하는 개념은 feature
가 vals[i]
일때 각 class가 각 class일 확률들을 모두 더한 값을 entropy 값이라고 이해하고 있습니다.
제가 이해한 개념은 맞다고 생각하는데 여기서 왜 dropna()
를 사용했고, 바로 뒤에 class가 붙는게 무슨의미인지 문법적으로도 이해가 잘 가지않고 코드상에서의 이해도 잘 되지 않습니다. 제가 이해한 개념이 틀리다면 틀린 것도 지적 환영합니다.
이에 대해서 잘 아시는 분이 계시다면 설명 부탁드리겠습니다!