임의의 포리스트가 무작위로 mtry 변수를 선택하여 각 의사 결정 트리를 작성한다는 것을 이해합니다. 따라서 mtry = ncol / 3 인 경우 각 변수는 평균적으로 나무의 1/3에서 사용됩니다. 그리고 나무의 2/3는 그것을 사용하지 않을 것입니다.
그러나 단일 변수가 매우 중요하다는 것을 알고 있다면 각 트리에서이 변수를 선택할 확률을 수동으로 높이는 것이 좋을까요? R의 randomForest 패키지로 실현 가능합니까?
임의의 포리스트가 무작위로 mtry 변수를 선택하여 각 의사 결정 트리를 작성한다는 것을 이해합니다. 따라서 mtry = ncol / 3 인 경우 각 변수는 평균적으로 나무의 1/3에서 사용됩니다. 그리고 나무의 2/3는 그것을 사용하지 않을 것입니다.
그러나 단일 변수가 매우 중요하다는 것을 알고 있다면 각 트리에서이 변수를 선택할 확률을 수동으로 높이는 것이 좋을까요? R의 randomForest 패키지로 실현 가능합니까?
답변:
참고 mtry을각 분할에서 후보로 무작위로 샘플링 된 변수의 수입니다. 그리고이 후보들 중에서 가장 좋은 것이 분리를 수행하도록 선택됩니다. 따라서 언급 한 비율이 완전히 만족스럽지 않습니다. 더 중요한 변수가 더 자주 나타나고 덜 중요해집니다. 따라서 변수가 실제로 매우 중요한 경우 트리에서 선택 될 가능성이 높으며 수동 수정이 필요하지 않습니다. 그러나 때로는 회귀에서 변수의 존재를 중요하게 생각할 수있는 경우가 있습니다. 내가 아는 한 R 패키지 임의 포리스트는 이러한 가능성을 지원하지 않습니다. 그러나이 변수에 다른 변수와의 상관 관계가없는 경우이 변수를 단일 용어로 일반 회귀 분석 한 다음이 일반 회귀의 잔차에 대해 임의의 포리스트 회귀 분석을 실행할 수 있습니다. 미리 지정된 변수를 선택할 가능성을 여전히 수정하려면 다음 컴파일시 소스 코드를 수정하는 것이 좋습니다.
2015 년 6 월부터 'ranger'라고하는 R-CRAN의 새로운 유망한 RF 알고리즘에이 기능이 있습니다. 또, 불통으로되고 split.select.weights : "숫자 벡터를 0과 1 사이의 가중치를, 분할을위한 변수를 선택하는 확률을 나타내는."