Hyper-parameter optimization
    조회 수: 7 (최근 30일)
  
       이전 댓글 표시
    
1) When training an ECOC classifier for multiclass classification, with knn as base learner, how can I change the minimized function (from the classification error to a loss function I want to define)?
I'm now using this code (where the loss function is in the last line of code). If Preds are the predicted classes, labels are the true classes, N is the numebr of sample, my loss is:
myLoss = double(sum(abs(resPreds - labels)))/double(N); % this is the loss function I wish to minimize
% variable labels contains the labels of training data 
tknn = templateKNN('Distance', @distKNN); % I WOULD LIKE TO USE THIS DISTANCE
N = size(XKnn,1);
c = cvpartition(N,'LeaveOut');
% Use leave one out 
mdlknnCecoc =  fitcecoc(XKnn,labelsRed, ...
                    'OptimizeHyperparameters','auto', ...
                    'HyperparameterOptimizationOptions',struct( 'UseParallel',...
                        true,'CVPartition',c),  'Learners',tknn);
resPreds = predict(mdlknnCecoc, XKnn); % I don't know why kfoldPredict function does not work
myLoss = double(sum(abs(resPreds - labels)))/double(N); % this is the loss function I wish to minimize
댓글 수: 2
  Don Mathis
    
 2019년 9월 23일
				Is it important for you to use ECOC for this? fitcknn directly supports multiclass problems.
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Classification Ensembles에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!