با سلام
من یه مشکلی تو استفاده از knn تجمیعی دارم.میخوام به جای استفاده از knn ساده از knn تجمیعی استفاده کنم.تو متلب کدهاش تا حدودی هست ولی نتونستم ازش ستفاده کنم.
ens = fitcensemble(X,Y,Name,Value)
https://www.mathworks.com/help/stats/framework-for-ensemble-learning.html?requestedDomain=true
این هم کدهای من هست . اگه کسی قبلا کار کرده لطفا راهنمایی کنه.واقعا لازمه برای پایان نامه.به جای knnclassify
باید از fitcensemble
استفاده کرد.
BestSol_value=BestSol.Value;
train_set=zeros(size(data,1),size(BestSol_value,2));
target_index=zeros(size(BestSol_value,1),2);
for i=1:size(BestSol_value,1)
index=randi(size(BestSol_value,1));
target_index(i)=index;
train_set(i,:)=BestSol_value(index,:);
target_index(i,2)=labels(index);
end
%target
target_index(:,3)=[1:size(data,1)];
target=target_index(:,2);
%test_set
ind=setdiff(target_index(:,3), target_index(:,1));
% test_set=zeros(size(ind,1),size(BestSol_value,2));
% for i=1:size(ind,1)
test_set=BestSol_value(ind,:);
ind(:,2)=labels(ind);
% end
target_train=target_index(:,3);
target_test=ind(:,2);
cp = classperf(labels);
k=7;
Class1 = knnclassify(test_set,train_set,target, k,'euclidean');
t1=0;
f1=0;
for i=1:size(test_set,1)
if Class1(i)==target_test(i)
t1=t1+1;
else
f1=f1+1;
end
end
acc=100*(t1/size(test_set,1))