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»