Я не могу говорить о скорости конкретных алгоритмов в R, но должно быть очевидно, что вызывает длительное время вычислений. Для каждого дерева в каждой ветви CART ищет форму наилучшего двоичного разбиения. Таким образом, для каждой из 34 функций наиболее подробно рассматриваются расщепления, заданные каждым из уровней переменных. Умножьте время выполнения каждого разбиения в дереве на количество веток в дереве, а затем умножьте его на количество деревьев в лесу, и у вас будет длительное время выполнения. Кто знает? Может быть, даже с быстрым компьютером это может занять годы, чтобы закончить?
Я думаю, что лучший способ ускорить процесс состоит в том, чтобы объединить некоторые уровни вместе, чтобы каждая переменная снизилась до 3–5 уровней, а не до 300. Конечно, это зависит от возможности сделать это без потери важных информация в ваших данных.
После этого, возможно, вы могли бы посмотреть, есть ли какой-нибудь умный алгоритм, который может ускорить время поиска для разделения на каждом узле отдельных деревьев. может случиться так, что в определенном дереве разделенный поиск - это повторение поиска, уже выполненного для предыдущего дерева. Так что, если вы можете сохранить решения предыдущих разделенных решений и определить, когда вы повторяете, возможно, эта стратегия может немного сэкономить на вычислительном времени.