Hi,

Я использую метод перекрестной проверки crossval, как описано в справке Matlab;

cvmodel = crossval(model) создает секционированную модель из модели, подходящее дерево классификации. По умолчанию crossval использует 10-кратную перекрестную проверку обучающих данных для создания cvmodel.

Я уже создал дерево классификации, в котором M — матрица переменных, а A — вектор-столбец классификации;

tree = ClassificationTree.fit(M, A);

и может просматривать это дерево с помощью «просмотра»

view(tree,'mode','graph')

Раньше я разделял матрицу M на обучающую и выборочную группы, однако теперь я хотел бы использовать метод перекрестной проверки «crossval» для получения более точного прогноза точности.

cvtree = crossval(tree);

Затем я могу использовать kfoldLoss и kfoldPredict для определения эффективности дерева, однако я не могу определить, как «просматривать» дерево в каком-либо смысле. Я попытался сделать следующее;

view(cvtree)

и

view(cvtree,'mode','graph')

однако всегда получайте ту же ошибку;

*__view(cvtree) Ошибка при использовании classreg.learning.internal.DisallowVectorOps/throwNoCatError (строка 57) Объединение объектов classreg.learning.partition.ClassificationPartitionedModel не допускается. Используйте массив ячеек, чтобы содержать несколько объектов.

Ошибка в функции classreg.learning.internal.DisallowVectorOps/horzcat (строка 48) a = horzcat(this,varargin), throwNoCatError(this); конец

Ошибка в представлении (строка 66) ​​if(~all(isnumeric([viewArgs{:}])))_*

Я понял, что метод crossval создает 10 деревьев, каждое из которых содержит 90% данных, и проверяет их на оставшихся 10%, прежде чем выбрать дерево, которое дает наибольшую точность. Это верно? и если да, то почему я не могу просмотреть это результирующее дерево?

Я действительно надеюсь, что кто-то может помочь, так как я часами просматривал документацию в Интернете и Matlab, но безуспешно!

ПРИМЕЧАНИЕ. 

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

при перекрестной проверке результатом является ClassificationPartitionedModel, что означает, что он содержит все деревья, прошедшие перекрестную проверку, и будет использовать их все для прогнозирования. Доступ ко всем отдельным деревьям можно получить следующим образом:

>> cvtree.Trained
>> view(cvtree.Trained{1},'mode','graph')
>> view(cvtree.Trained{2},'mode','graph') % etc

Все отдельные потери (конечно, на основе вашей функции потерь) можно получить, как показано ниже:

>> cvtree.kfoldLoss('mode','individual')

Вы можете просмотреть и использовать отдельное дерево, если хотите. Используйте «kfoldPredict» для прогнозирования всей модели, прошедшей перекрестную проверку.

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



Просмотр дерева классификации с перекрестной проверкой в ​​«Средстве просмотра дерева классификации
Кэти С. Я использую метод перекрестной проверки crossval, как описано в справке Matlab; cvmodel = crossval(model)…www.matlabsolutions.com»





Просмотр дерева классификации с перекрестной проверкой в ​​«Средстве просмотра дерева классификации
cvmodel = crossval(model) создает секционированную модель из модели, подходящее дерево классификации. По умолчанию crossval…matlabarticlesworld.blogspot.com»