엑스트라 트리 질문 드립니다.

22 views
Skip to first unread message

hocas...@gmail.com

unread,
Feb 16, 2019, 10:01:31 AM2/16/19
to 머신러닝/딥러닝 도서 Q&A
핸즈온 머신러닝 251쪽의 엑스트라 트리 설명에서 한참 헤매다가 원문을 보고 에러타가 아닌가 해서 질문 드립니다.


우선 250쪽 14번 각주에는 랜덤포레스트가 최적 특성 분할을 한다는 의미로 "splitter(무조건 "best")"라고 씌어 있는데, 이는 251쪽에 나오는 내용인 "랜덤 포레스트 알고리즘은 트리의 노드를 분할할 때 전체 특성 중에서 최선의 특성을 찾는 대신 문작위로 선택한 특성 후보 중에서 최적의 특성을 찾는 식으로 무작위성을 더 주입합니다.)와 모순됩니다. 바로 뒤에 나온 예제 코드도 "random"으로 되어 있습니다. 원문에도 랜덤포레스트는 splitter가 "random"으로 설정되는 것으로 나옵니다.

251쪽 엑스트라 트리를 설명하는 항목을 읽으면 더 헷갈립니다. 앞부분에서는 랜덤 포레스트가 사용하는 결정 트리의 splitter가 best인지 random인지 혼동이 오는 중에, 251쪽 제1문단에서는 다음과 같이 설명하고 있습니다. "트리를 더욱 무작위하게 만들기 위해.... 후보 특성을 사용해 무작위로 분할한 다음 그중에서 최상의 분할을 선택합니다." 이는 엑스트라 트리가 랜덤 포레스트와 다른 점이 엑스트라 트리는 특성을 무작위로 선택하는 점에 있다고 설명하는 것으로 읽기 쉬웠습니다. 하지만 원문을 확인한 결과 엑스트라 트리는 무작위 특성에 더해 무작위 임계값(이게 뭔지 잘 감은 안 오지만)을 사용한다는 것이었습니다.

그런데 블로그를 확인해보니, 

"사실 엑스트라 트리의 베이스 트리인 ExtraTreeClassifier는 DecisionTreeClassifier를 상속한 것이며 splitter=’best’가 아니고 splitter=’random’인 것과 max_features=’auto’인 것을 제외하고는 동일합니다."

라고 되어 있어서 또 헷갈립니다. 제가 지적한 점이 맞는지, 엑스트라 트리가 랜덤 포레스트와 무엇이 다른지 설명해주시면 감사하겠습니다!!

(책과 깃허브, 블로그가 꼼꼼하게 되어 있어서 도움이 많이 되고 있습니다. 감사드립니다)

Haesun Park

unread,
Feb 16, 2019, 7:43:58 PM2/16/19
to hocas...@gmail.com, 머신러닝/딥러닝 도서 Q&A
안녕하세요. 박해선입니다.
랜덤포레스트가 종종 혼돈이 오는 경우가 많습니다. 매개변수 설정에 따라 달라지므로 기본값을 가정하고 설명하겠습니다.
트리 모델은 크게 세 종류의 무작위성이 가능합니다. 훈련 세트의 랜덤 서브셋을 만드는 부트스트래핑, 특성 중 일부를 랜덤하게 선택하는 것, 특성을 사용하여 트리를 분할할 때 임의로 하는 것입니다.
splitter에 지정하는 best 혹은 random은 세 번째인 트리 분할의 임계값을 최적으로 정하느냐 무작위로 나누는지를 결정합니다.
랜덤포레스트는 특성 중 일부를 랜덤하게 선택합니다. 선택한 특성들을 최적으로 분할합니다. 그 중에 가장 좋은 것을 선택합니다.
엑스트라트리는 특성 중 일부를 랜덤하게 선택합니다. 선택한 특성들을 랜덤하게 분할합니다. 그 중에 가장 좋은 것을 선택합니다.
배깅을 사용하여 랜덤 포레스트와 유사하게 만들었다는 코드는 결과를 유사하게 만들었다는 의미라고 생각했습니다.
만약 알고리즘을 동일하게 구현한 것이라면 제가 저자에게 의견을 보냈을 텐데 그러지 않았습니다.^^
임계값(threshold)이란 용어는 여러가지 용도로 사용됩니다. 트리 모델에서는 분할 기준값입니다.
이해하는데 도움이 되셨는지 모르겠네요.
즐거운 주말 되세요.~

2019년 2월 17일 (일) 오전 12:01, <hocas...@gmail.com>님이 작성:
--
이 메일은 Google 그룹스 '머신러닝/딥러닝 도서 Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ml-dl-book-qn...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ml-dl-book-qna에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ml-dl-book-qna/e18098e1-af93-48e5-af32-5ca911add132%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.
Reply all
Reply to author
Forward
0 new messages