Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blog:easy_random_forest [2020/04/01 01:03] – [의사결정나무의 원리] prgramblog:easy_random_forest [2025/07/07 14:12] (current) – external edit 127.0.0.1
Line 35: Line 35:
 {{ :blog:draft:pasted:20200331-185001.png }} {{ :blog:draft:pasted:20200331-185001.png }}
  
-가장 좋은 방법은 모든 가능한 나무를 그린 후에 데이터를 잘 설명하는 것을 고르는 것이겠다. 하지만 이는 변수의 수, 데이터의 수가 많아지면 거의 불가능한 일이기 때문에 ''욕심쟁이Greedy'' (귀차니즘) 방법을 사용한다. 가장 잘 나누는 변수 -> 그 다음 변수 -> 그다음 변수... 해서 결론이 나올 때까지 반복하여 나무를 그리는 이다.+가장 좋은 방법은 모든 가능한 나무를 그린 후에 데이터를 잘 설명하는 것을 고르는 것이겠다. 하지만 이는 변수의 수, 데이터의 수가 많아지면 거의 불가능한 일이기 때문에 가장 잘 나누는 변수 -> 그 다음 변수 -> 그다음 변수... 해서 결론이 나올 때까지 반복하여 나무를 그리는 방법을 사용한다. 단계별로 당장의 최선을 찾아간다는 의미로 ''욕심쟁Greedy'' 방법이라고 한다.
  
 {{ :blog:draft:pasted:20200331-185012.png }} {{ :blog:draft:pasted:20200331-185012.png }}
Line 44: Line 44:
   * 그래서 결혼여부를 처음 의사결정의 가지치기 변수로 택한다.   * 그래서 결혼여부를 처음 의사결정의 가지치기 변수로 택한다.
  
-이를 좀 더 그럴듯한 표현으로 바꾸면, 각 변수로 데이터를 둘로 나눴을 때, 가장 ''불순도''가 줄어드는 변수를 선택한다고 한다. 결혼여부로 가지를 치니까 각 구분에서 데이터들이 순도가 가장 높은 것 같지 않은가? 물론 이렇게 눈으로 계산할 수는 없으니까, 불순도를 계산하는 정해진 식을 이용하게 되는데, 여기저기서 많이 들어봤을 듯한 지니계수(Gini Index)나 엔트로피(Entropy) 등을 이용한다. (수식은 [[data_analysis:random_forest|여기]]에)+이를 좀 더 그럴듯한 표현으로 바꾸면, 각 변수로 데이터를 둘로 나눴을 때, 가장 ''불순도''가 줄어드는 변수를 선택한다고 한다. 결혼여부로 가지를 치니까 각 구분에서 데이터들이 순도가 가장 높은 것 같지 않은가? 물론 이렇게 눈으로 계산할 수는 없으니까, 불순도를 계산하는 정해진 식을 이용하게 되는데, 여기저기서 많이 들어봤을 듯한 지니계수(Gini Index)나 엔트로피(Entropy) 등을 이용한다. (수식은 [[data_analysis:random_forest|여기(매운맛 버전)]]에)
  
 단계별로 가장 불순도가 많이 줄어드는 변수들을 계속 선택하면 위의 그림과 같은 의사결정 나무가 만들어진다. 단계별로 가장 불순도가 많이 줄어드는 변수들을 계속 선택하면 위의 그림과 같은 의사결정 나무가 만들어진다.
Line 83: Line 83:
  
 그 전에 미리 알아두어야 할 것은, 모든 머신러닝 방법은 Trade-off 관계가 있다는 것이다. 모든 문제에 무조건 다 잘 들어맞는 모형은 아직까지는 세상에 존재하지 않는다는 것을 알아야 한다. 성능이 좋은 모형은 대부분 복잡한 방법을 사용하고, 계산 시간이 늘어나거나 설명하기가 어려워진다. 반대로 간단한 모형은 계산이 빠르거나 설명이 쉬우나 성능이 못 미친다. 이 점을 염두하고 실제 풀고자 하는 문제와 목적에 맞는 모형을 사용하는 것이다. 그 전에 미리 알아두어야 할 것은, 모든 머신러닝 방법은 Trade-off 관계가 있다는 것이다. 모든 문제에 무조건 다 잘 들어맞는 모형은 아직까지는 세상에 존재하지 않는다는 것을 알아야 한다. 성능이 좋은 모형은 대부분 복잡한 방법을 사용하고, 계산 시간이 늘어나거나 설명하기가 어려워진다. 반대로 간단한 모형은 계산이 빠르거나 설명이 쉬우나 성능이 못 미친다. 이 점을 염두하고 실제 풀고자 하는 문제와 목적에 맞는 모형을 사용하는 것이다.
 +
 +> 성능이 좋다(잘 맞춤) <-> 사람이 이해하기 쉬움, 계산이 빠름
  
 아래의 장단점도 특정 문제나 목적에 따라서 달라질 수 있기 때문에 분석가들이 모형 선택에 고민을 하는 것이다. 아래의 장단점도 특정 문제나 목적에 따라서 달라질 수 있기 때문에 분석가들이 모형 선택에 고민을 하는 것이다.
Line 94: Line 96:
 보통의 비즈니스 문제에서는 모형의 사용자나 의사결정자가 이해할 수 있는 모형을 쓰는 것이 좋기도 하고, 어떤 변수들이 어떻게 영향을 미치는지 설명이 가능한 것이 모형의 성능보다 더 유용한 경우가 많다.  보통의 비즈니스 문제에서는 모형의 사용자나 의사결정자가 이해할 수 있는 모형을 쓰는 것이 좋기도 하고, 어떤 변수들이 어떻게 영향을 미치는지 설명이 가능한 것이 모형의 성능보다 더 유용한 경우가 많다. 
  
-랜덤포레스트는 의사결정자에게 설명하기에 수식을 안쓰고도 '의사결정나무를 무작위로 많이 만들어서 평균 투표하는 것'이라는 상대적으로 간단한 설명을 할 수 있고,  분류에 쓰이는 몇 가지 방법 중에서설명하기 쉬움을 희생하는 것보다 성능 향상을 더 많이 하는 모형라고 할 수 있다.+랜덤포레스트는 의사결정자에게 설명하기에 수식을 안쓰고도 '의사결정나무를 무작위로 많이 만들어서 평균 투표하는 것'이라는 상대적으로 간단한 설명을 할 수 있고,  분류에 쓰이는 몇 가지 방법 중에서 설명하기 쉬운 편이다.
  
  
Line 115: Line 117:
  
  
-===== 단점은 없? =====+===== 단점은 없? =====
 모든 모형에는 단점이 있다. 위의 장점들도 어떤 문제나 상황에서는 틀린 말이 되는 경우도 많다.  모든 모형에는 단점이 있다. 위의 장점들도 어떤 문제나 상황에서는 틀린 말이 되는 경우도 많다. 
  
Line 145: Line 147:
 ''되도록 모형에 대한 질문보다 변수와 데이터에 대한 질문을 해보도록 하자'' ''되도록 모형에 대한 질문보다 변수와 데이터에 대한 질문을 해보도록 하자''
 ===== Reference ===== ===== Reference =====
-[[data_analysis:random_forest|]]+[[data_analysis:random_forest|]] 수식있는 매운맛 버전
 An Introduction to Statistical Learning,  Gareth M. James 外, Springer, 2014 An Introduction to Statistical Learning,  Gareth M. James 外, Springer, 2014
 The Elements of Statistical Learning,  Trevor Hastie 外, Springer, 2001 The Elements of Statistical Learning,  Trevor Hastie 外, Springer, 2001
  • blog/easy_random_forest.1585702985.txt.gz
  • Last modified: 2025/07/07 14:12
  • (external edit)