Привет, сообщество Matlabsolutions

В настоящее время я работаю с классом TreeBagger над созданием некоторых подобий дерева классификации. Теперь я хотел бы знать, как он решает, какие функции используются для разделения данных. Если я создам, например, ансамбль пней с 5000 деревьев и использую его для классификации набора данных с двумя функциями (например, значением VRQL и максимальной частотой), а затем проверю, какой признак был выбран для разделения для каждого отдельного дерева следующим образом:

cellArray={};
for y=1:length(Random_Forest_Model.Trees)
cellArray{y}=Random_Forest_Model.Trees{y}.CutPredictor{1};
end

В некоторых случаях бывает, что из всех 5000 деревьев был выбран только один признак, а другой признак не был выбран ни в одном случае (т.е. cellArray выглядит так: {'x2', 'x2', 'x2', …, ' х2', }). Это также может произойти с несколькими функциями: выбрана только одна функция, остальные игнорируются.

Возможно, важные вещи, которые следует упомянуть о наборе данных:

- Одна функция достигает значений от 1 до 100, другая примерно от 200 до 1200.

- Классы несбалансированы (класс 1: 52 записи, класс 2: более 300 записей)

- только старший класс содержит NaN

-обе функции содержат NaN

Теперь мой вопрос: как я могу добиться, чтобы TreeBagger использовал все функции для классификации, а не только одну, или как я могу в жанре добиться более сбалансированного выбора функций.

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Настройкой по умолчанию в TreeBagger для количества объектов, которые нужно выбрать из исходного набора объектов, является ceil(sqrt()).

Почему именно этот номер? Я не знаю…

Но почему важно брать подмножество функций, а не весь набор функций? Это потому, что если вы всегда берете одни и те же функции (скажем, весь набор функций), вы будете получать сильно коррелированные деревья решений на каждой итерации и, таким образом, не сможете отменить присущую им большую дисперсию.

Я полагаю, что выборка функций осуществляется единообразно, а это означает, что если у вас много деревьев, примерно все функции должны быть представлены одинаково во всех деревьях.

Однако в вашем случае подмножество функций имеет одинаковый размер

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ