DATOR


Oracle의 순환전개를 활용한 Decision Tree 구현사례. 4 (마지막 편) SQL


참 오래전에 해묵은 자료를 꺼내면서 다시 정리하기 위해서는 많은 노력이 필요하다는 것을 느끼게 됩니다. 또한 자료는 그때그때 정리해야 수고도 덜 수 있다는 것을 알면서도 지키지 못하는 것일까요? 간단한 퀴즈를 내겠습니다. "엔티티나 속성의 정의는 언제 작성하나요?" 라는 질문에 어떻게 답하는게 좋을까요? 끝에 답을 알려드리겠습니다.

-----------------------------------------------------------------------------------------------------------------------------------------------------

이 모델과 SQL을 이용하여 데이터를 돌리다보면 아래와 같은 상황이 만들어 질 수 있습니다. 우선은 검사하고자 하는 데이터셋의 량이 변동할 수 있고, 의사결정나무의 갯수가 변경될 수 있습니다. 또 하나의 다른 상황은 의사결정나무의 깊이가 바뀌는 상황이 올 수 있는데 의사결정나무의 형태를 바꾸는 것 말고는 별다른 방안이 없는 관계로 이는 무시하도록 하겠습니다.

이를 상황별로 구분해보면 아래와 같이 구분할 수 있습니다.

Case 1. 데이터 셋 적음, 의사결정나무 갯수 적음
Case 2. 데이터 셋 적음, 의사결정나무 갯수 많음
Case 3. 데이터 셋 많음, 의사결정나무 갯수 적음
Case 4. 데이터 셋 많음, 의사결정나무 갯수 많음

이러한 상황이 언제 발생할 수 있는지와 SQL 옵티마이저 전략을 어떻게 가져가야 하는지에 대해서 일일히 설명을 적다가 이런 생각이 들었습니다. '꼭 그럴 필요 있을까?' 이 모델을 보고 활용하실분들을 위해서 SQL 옵티마이저 전략 이 부분은 남겨놓도록 하겠습니다.

이 모델의 제약사항은 의사결정나무를 개발하는 과정에는 적합하지 않다는 것입니다. 의사결정나무를 개발중이고, 적은 데이터를 가지고 테스트하는 과정이 이에 해당이 됩니다. 이런 경우는 이 모델의 사용하는 것에 적합하지는 않습니다만, 그 문제가 성능에 대한 문제를 말하는 것은 아닙니다. 이 모델을 만든 이유는 많은 데이터 셋들에 대해서 수행을 하여야 할 경우 다른 통계프로그램을 이용하는 것 보다 빠른 속도를 보이지만 의사결정나무의 값을 바꿔가면서 테스트 하기에는 의사결정나무 데이터를 조작하는 애플리케이션 개발이 선행되어야 합니다. 물론 이는 지속적인 발전을 하다보면 나중에 극복해야 하는 문제입니다.

이 방안의 가장 큰 장점은 많은 데이터 셋을 돌릴때 가장 큰 장점입니다. 앞에서도 설명했지만 통계 패키지를 이용하여 의사결정나무에 결과를 돌릴 경우에는 성능이 떨어지는 것을 볼 수 있습니다. 통계 패키지내에 세부적인 로직은 모르겠지만 반복적인 수행을 한다는 것을 느낄수 있을 성능입니다. 대용량의 데이터를 다루는 것의 한계라고 볼 수 있습니다. 물론 최근에야 통계 패키지 내에서 대용량 데이터를 처리하는 방안이 생겼지만 전문적으로 튜닝을 수행하는 사람으로써는 SQL로 처리하고 싶은 생각이 많이 들기 때문입니다.
둘째로 의사결정나무를 로직이 아니라 테이블 구조안에서 관리한다는 것입니다. 추가적인 확장과 많은 응용이 가능하다는 것이지요. 제가 지금까지 약 4년정도이지만 많은 기업이 데이터 계산 과정을 로직안에 기술하여 처리하는 경우가 많습니다. 그러한 과정을 조금이라도 덜 수 있는 방안을 모색하는 것이 이 직업을 가지고 있는 사람의 사회적 역할이 아닐까 하는 생각을 하게됩니다. 이러한 의사결정나무는 값의 크기에 따라 비교하여 다음 과정으로 넘기는 if처리과정을 로직이 아니라 데이터에서 관리하고자 하는 것입니다. 데이터로 관리된다는 것은 많은 확장과 융통성을 가지게 해주죠.

-----------------------------------------------------------------------------------------------------------------------------------------------------

너무 급하게 마무리 하게 되었습니다. 더 이상의 설명은 활용에 관한 문제이기 때문에 미리 상황을 예측하기에는 무리가 있다는 판단에서 작성을 하지 않았습니다. 그리고 앞에서 기술된 문제의 답은 '지금! 모델을 그리면서 가능한 빨리' 입니다. 한번에 바로바로 했어야 했는데 너무 게으른 저에게 하는 질문 이였습니다. 여기까지 읽어주셔서 감사합니다.
TAG

Leave Comments


profile우리는 하나님을 믿는다. 다른 모든 것들은 데이터로 검증해야 한다. 

Recent Trackback