열심히 Decision Tree를 만들고저 ID3알고리즘 구현에 여념이 없을때.
엔트로피를 구하고저 java.math 패키지를 열심히 뒤지고 있는데
맙소사 log함수가 밑이 2인것이 없던것이였다. (순간 당황했다.)
엥. Python에서도 밑이2인 로그함수가 있는데 자바가 없다니.. <-- 바로 이런 이유 때문에.. 당황했음
당황한 나머지 궁리를 해봤다. 어떻게 밑이 2인 함수를 만들지..
그러던 찰라 옆에 있던 정석책을 살며시 집어들고 로그함수 부분을 봤다.
정석책에 이 공식이 나오더라
아하…
그래서 바로 메서드 구현에 들어갔다.
한줄짜리..메서드
public double log2(double d){
return Math.log(d)/Math.log(2.0);
}
끝….
Decison Tree구하는데 별 어려움은 없었다.
다만 이래저래 Java의 특성을 살릴까 말까 하는 고민을 너무 많이해서 나중에 거의 손델 가능성이 없는 코드를 엄청 복잡하게 짜버렸다는….디자인 패턴 아는게 죄가 되버렸네.
Java log함수에 대해서 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.