به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

با سلام
من یه مشکلی تو استفاده از 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))
توسط (104 امتیاز)

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام
شما میتونید از دسته بند Knn پیش فرض همین دستور fitcensemble استفاده کنید طبق روال زیر:

ens = fitcensemble(X,Y,'Method','Subspace','NumLearningCycles',50,'Learners','KNN')

درغیر اینصورت میتونید از دسته بند غیر پیش فرض استفاده کنید طبق روال زیر:

templ = templateTree('Surrogate','all');
ens = fitcensemble(X,Y,'Method','AdaBoostM2','NumLearningCycles',50,'Learners',templ)

که شما میتونید خط اول رو استفاده نکنید و در خط دوم بجای templ همون Class1 رو بزارید

برای اطلاعات بیشتر لینک زیر رو کامل مطالعه کنید:
fitcensemble

توسط (279 امتیاز)
انتخاب شده توسط
سلام.ممنون از پاسخی که دادین.
...