Может кто-нибудь сказать мне, если случайный лесной код OpenCV разрешает связи (т. Е. Нет четкого большинства голосов) случайным выбором или если существует более детерминированный механизм? Я не могу найти ответ на форумах OpenCV, в книге O'Reilly OpenCV или в Google.OpenCV Random Forest Tie Breaking
ответ
После углубиться в код OpenCV(), я нашел следующий соответствующий код:
if(nclasses > 0) //classification {
int max_nvotes = 0;
cv::AutoBuffer<int> _votes(nclasses);
int* votes = _votes;
memset(votes, 0, sizeof(*votes)*nclasses);
for(k = 0; k < ntrees; k++) {
CvDTreeNode* predicted_node = trees[k]->predict(sample, missing);
int nvotes;
int class_idx = predicted_node->class_idx;
CV_Assert(0 <= class_idx && class_idx < nclasses);
nvotes = ++votes[class_idx];
if(nvotes > max_nvotes) {
max_nvotes = nvotes;
result = predicted_node->value;
}
}
}
Так, что, как представляется, сделать это:
- Выполнить через каждое дерево и получить предсказание
- Обновить подсчет голосов для данного класса предсказания
- Сравнить количество голосов для этого конкретного класса прогнозирования с максимальным количеством голосов (max_nvotes)
- Обновить кол-макс голосов, при необходимости
Итак, идея случайно разрыв связей не непосредственно интегрированы в этот кусок кода, но следует иметь в виду, что деревья в пределах случайного леса ансамбля генерируются случайно. Таким образом, теоретически, процесс разрыва связи является случайным, так как порядок деревьев (и порядок их предсказаний) является случайным. Еще одна вещь, которую следует отметить, это то, что галстук переходит в первый класс, чтобы получить максимальное количество голосов.
Кроме того, если это большинство голосов, которое подсчитывается, тогда можно закоротить цикл for, если какой-либо из классов превышает более половины числа деревьев. Итак, если есть 50 деревьев, и любой из классов имеет более 25 голосов, тогда нет необходимости проходить и получать прогнозы от оставшихся деревьев (так как они будут неактуальны для изменения большинства голосов).
- 1. Использование OpenCV Random Forest для регрессии
- 2. Random Forest grow
- 3. Random Forest в R
- 4. Random Forest терпит неудачу
- 5. OpenCV 300 - Random Forest Предсказать возвращает неправильный ответ
- 6. R-Random Forest - Важность/varImPlot
- 7. Random Forest - Caret - Time Series
- 8. Python и Random Forest Алгоритм
- 9. Использование scikit Random Forest sample_weights
- 10. Random Forest с классами, которые очень неуравновешенным
- 11. Ошибка с Sklearn Random Forest REGRESSOR
- 12. RANDOM FOREST для классификации с несколькими метками
- 13. Random Forest Классификатор: значение важности вероятности прогноза
- 14. Сравнение между Random Forest байесовский классификатор
- 15. Широковещательная модель Random-Forest в PySpark
- 16. Количество бутстрапов в Random Forest (scikit-learn)
- 17. сокращение скорости FP scikit-learn random forest
- 18. SKlearn Random Forest ошибка на входе
- 19. Python - Random Forest - Итеративное добавление деревьев
- 20. R Caret Random Forest view miss-классифицировано
- 21. вход для scikit-learn random forest
- 22. Определение порога для оценки функций [Random Forest]
- 23. LGPL Machine Learning с Random Forest - C++
- 24. R Text Mining и Random Forest
- 25. Легенда для Random Forest земли в R
- 26. Apache Spark Random Forest slow performance
- 27. Не удалось сформировать двоичную классификацию и использовать prec_prob(): Random Forest, opencv
- 28. Низкая производительность SVM по сравнению с Random Forest
- 29. in R Переменные значения важности места для модели Random Forest
- 30. Как получить древовидные модели, созданные Random Forest в Weka GUI?