توضیحات
ماشین بردار پشتیبان یک دسته بندی کننده باینری می باشد. به عبارت دیگر تنها می تواند دو کلاس را دسته بندی کند.
در بیشتر کاربردها ما تنها با دو کلاس سر و کار نداریم لذا لازم است که به نحوی این دسته بندی کننده را برای تعداد کلاسهای بیشتر استفاده کنیم.
یکی از این روشها ، روش درختی می باشد. در این روش شما برای n کلاس ، به n-1 ماشین بردار پشتیبان نیاز دارید.
مثلا اگر تعداد کلاسهای شما سه باشد، شما به دو ماشین بردار پشتیبان دارید. همانطور که در شکل زیر نیز این مفهوم نشان داده شده است.
ما برای شما یک کد متلب آماده کردیم که شما از ماشین بردار پشتیبان می توانید برای هر چند کلاس استفاده کنید و لازم نیست درگیر حلقه ها و برنامه نویسی شرطی پیچیده شوید.
این برنامه به صورت یک تابع می باشد که از شما داده های آموزش و تست را می گیرد و با داده های آموزش ، سیستم آموزش پیدا می کند و با داده های تست سیستم آموزش یافته را تست می کند و خروجی متناظر هر داده تست را بر می گرداند.
محمد امير –
مرسي ايران متلب
خيلي كار منو جلو انداخت
واقعا كار مشكلي هست خود ادم بخواهد براي تعداد كلاسهاي بالا خودش كدش را بنويسد
اما كد شما كار را خيلي راحت ميكنه
زهرا –
سلام من میخواستم بدونم کدهای متلب برای بردار پشتیبان چند کلاسه را چطور در برنامه متلب استفاده کنم .آیا در ماشین بردار چنندکلاسه این توضیحات وجود دارد یا خیر؟
ایران متلب –
سلام
یک فایل مثال در کنار کد قرار دارند که نحوه استفاده از کد را به شما نشان می دهد.
من –
لیک دانلود خطا میدهد
ایران متلب –
با سلام و احترام
مشکل برطرف شد. لینک های دانلود کد ماشین بردار پشتیبان برای چند کلاسی ایمیل شد.
شاد باشید
مریم –
لینک دانلود که غیر فعاله
ایران متلب –
سلام
کد برای شما ایمیل شد.
محمدخان –
با سلام،
لینک دانلود مشکل دارد و به این کد نیاز فوری دارم. لطفا بررسی کنید.
ایران متلب –
سلام
لطفا دوباره ایمیل خود را چک بفرمایید
نصیری –
سلام کد ماشین بردار چند کلاسه رو میخواستم دانلود کنم ولی لینک غیر فعال هستش لطفا راهنمایی کنید.
ایران متلب –
سلام
هزینه را واریز کنید
کدها براتون ایمیل می شود
زهرا نصیری –
مبلغ خواسته شده واریز شد ولی لینک دانلود کد خطا می دهد
ایران متلب –
سلام
جهت دریافت کدها منتظر بمانید.
M –
سلام. وقتی بردار هدف شامل ارقامی هست که همگی مثبت هستند چگونه میتوان انهارا بامدل svm کلاس بندی کرد و بعد از آن مدلسازی؟
این کدها شامل آموزش هم هست؟
ایران متلب –
با سلام و احترام
در بردار هدف بايد ببينيد چه تعداد كلاس داريد. اگر دو كلاسي باشد با يك ماشين بردار پشتيبان دسته بندي را مي توانيد انجام دهيد. اما اگر چند كلاسي باشد از اين كد بايد استفاده كنيد.
يك مثال هم در كنار اين كد قرار دارد كه به شما نحوه استفاده را نشان مي دهد.
روزبه سلطانی –
سلام لینک دانلود مشکل داره لطفا به ایمیلم بفرستید
روزبه سلطانی –
سلام لینک دانلود مشکل داره اگه میشه به ایمیلم بفرستید سپاس
ایران متلب –
سلام
لینک های دانلود کد متلب ماشین بردار پشتیبان نسخه 2016 برای شما ایمیل شد.
محمد –
با سلام
ببخشید این کدهای متلبی که برای svm یا خیلی از الگوریتم ها هست نسبت به الگوریتم های شما چه فرقی دارند
ایران متلب –
با سلام و احترام
هر کدی که برای ماشین بردار پشتیبان نوشته می شود ، نمی تواند تغییری در الگوریتم svm انجام دهد. ما فقط یک تابع برای شما تهیه کردیم که مشکل دو کلاسی svm را حل کند.
شما بتوانید برای هر تعداد کلاس استفاده کنید.
پیمان رزمی –
باسلام. من یه سوال داشتم اونم اینکه ایا در حین کلاسه بندی یک مثال سه کلاسه ایا خروجی به صورت شکل هم می باشد یعنی بیاد نمونه ها رو به شکلی که در هلپ متلب می باشد تفکیک شون قابل رویت هست یا نه؟ برای سه کلاسه منطورم هست. یعنی منطورم این هست که ابرصفحه ای که غیرخطی هست و بیاد نمونه ها رو تفکیک کنه قابل رویت باشه در یک شکل. ممنون میشم سریع تر حواب بدین. ممنون
ایران متلب –
با سلام و احترام
برای نمایش ابرصفحه ای سه کلاسه ، شما خودتون کد بنویسید.
بردار خروجی ماشین بردار پشتیبان برای داده های تست و آموزش را به شما می دهد. بعدش خودتون شبیه help متلب ، باید نمایش سه بعدی را کدنویسی کنید.
در اصل کار خاصی هم لازم نیست انجام دهید ، کافی است ، بردار خروجی را نمایش دهید و برای هر کلاس یک رنگ متمایز در نظر بگیرید.
پیمان رزمی –
بله ولی دوکلاسش رو میدونم ججوری باید نوشت ولی سه کلاسه ان رو نمیدونم شما میتونین در این باره کمک کنین برام یک کد ساده هست ولی هرجقد میتوسیم به جایی نمیرسم. شدید نیاز دارم ممنون هزینش رو هم بفرمایین
ایران متلب –
ما انجام پروژه نداریم.
ولی میتونی قسمتی از کدت را بگذاری تا جواب بدهیم.
Ali –
سلام, مرسی بابت سایت خوبتون
لینک دانلود منم خطا میده, میشه بررسیش کنید
ایران متلب –
با سلام و احترام
تشکر از شما
با عرض معذرت خواهی برای بوجود آمدن ای مشکل
لینک های دانلود برای شما ایمیل شد.
م.م. –
آیا امکان استفاده از این کد برای شناسایی چهره در قالب 10 کلاس یا بیشتر وجود دارد؟
ایران متلب –
با سلام و احترام
هيچ محدوديتي در تعداد كلاس ها وجود ندارد.
میثم اسدی –
سلام خسته نباشید این کد ایا تک ورودی هس ؟ ورودی من 19 تا است ایا نجام میده ؟ یه SVM چند کلاسه که با چند ورودی کار میکنه منظورمه ایا این کد همونه ؟ لطفا زود جوابمو بدین
ایران متلب –
سلام
این کد برای چند ورودی و چند خروجی هم می تواند استفاده شود.
Morteza –
با سلام.من آموزش ماشین بردار پشتیبان برای چند کلاسی را خریداری کردم ولی لینک دانلود آموزش آن برایم ارسال نشده لطفا لینک مربوط به آموزش آن را برایم ارسال کنید.با تشکر
ایران متلب –
با سلام
این فایل برای شما ایمیل شد.
سعید محمدی –
لینک مشکل داره
ایران متلب –
ایمیلتون دوباره چک بفرمایید.
سحر –
سلام خسته نباشید؟
این کد یک کد کامل است ؟
من یه کد میخوام برای تشخیص موضوع متون فارسی با استفاده از svm.به این صورت که تعدادی مقاله برای آموزش سیستم بگیره و بعد با داده های آموزش درستی آن را بررسی کند.میخواستم ببینم این کد چقدر به من کمک میکنه؟و چه قسمت هایی از کار من را انجام داده !
ایران متلب –
سلام و تشكر از شما
اين كد ، يك كد تست شده و كامل مي باشد.
اين كد براي هر كاربرد ماشين بردار پشتيبان قابل استفاده است. همان طور كه مي دانيد svm براي دسته بندي قابل استفاده است. لذا اين كد در دسته بندي يا classification و تشخيص يا recognition ميتونه به شما كمك كند.
سروین –
سلام. مفید بود .
محمد –
سلام شما می تونید این کد رو خط به خط توضیح بدید ؟دسته بندی های بیش از 2 کلاس هست اصل کد در این لینک https://stackoverflow.com/questions/4976539/support-vector-machines-in-matlab/4980055#4980055
کلا دلیل استفاده از تابع nchoosek و بدست اوردن سایز pairwise برای ساخت مدل رو نمیفهمم چرا سایز یا استفاده از numel برای svm model رو متوجه نمیشم
هزینه ای هم داشته باشه پرداخت میکنم
%# load dataset
load fisheriris
[g gn] = grp2idx(species); %# nominal class to numeric
%# split training/testing sets
[trainIdx testIdx] = crossvalind(‘HoldOut’, species, 1/3);
pairwise = nchoosek(1:length(gn),2); %# 1-vs-1 pairwise models
svmModel = cell(size(pairwise,1),1); %# store binary-classifers
predTest = zeros(sum(testIdx),numel(svmModel)); %# store binary predictions
%# classify using one-against-one approach, SVM with 3rd degree poly kernel
for k=1:numel(svmModel)
%# get only training instances belonging to this pair
idx = trainIdx & any( bsxfun(@eq, g, pairwise(k,:)) , 2 );
%# train
svmModel{k} = svmtrain(meas(idx,:), g(idx), …
‘BoxConstraint’,2e-1, ‘Kernel_Function’,’polynomial’, ‘Polyorder’,3);
%# test
predTest(:,k) = svmclassify(svmModel{k}, meas(testIdx,:));
end
pred = mode(predTest,2); %# voting: clasify as the class receiving most votes
%# performance
cmat = confusionmat(g(testIdx),pred);
acc = 100*sum(diag(cmat))./sum(cmat(:));
fprintf(‘SVM (1-against-1):\naccuracy = %.2f%%\n’, acc);
fprintf(‘Confusion Matrix:\n’), disp(cmat)
ایران متلب –
با سلام
همانطور که در توضیحات کد هم نوشته شده است. چون SVM یک دسته بندی کننده باینری می باشد بعنی تنها می تواند دو کلاس را در خروجی خود دسته بندی کند.
لذا در این کد با دستور nchoosek به ازای تعداد کلاسها ، یک مدل 1 به 1 ساخته است. این دستور در خروجی یک ماتریس می دهد که تعداد سطرهای آن تعداد ترکیبات 1 به 1 می باشد. لذا در خط بعدش یک آرایه سلولی به ازای تعداد سطرهای این ماتریس تولید کرده است.
چرا آرایه سلولی ؟ چون تولباکس svm ماشین بردار پشتیبان را به صورت متغییر سلولی ذخیره می کند. پس اندازه این آرایه سلولی تعداد SVM ها را مشخص می کند لذا از دستور numel برای تعداد شمارش حلقه استفاده کرده است. در این حلقه در حقیقت ما هر ماشین بردار پشتیبان را برای کلاس متناظر خود آموزش می دهیم و تست می کنیم.
اگر از تولباکس libsvm استفاده کنید این دردسر ها را ندارید.
یا کد زیر را استفاده کنید که از تولباکس خود متلب استفاده می کند. .
کد SVM چند کلاسه بدون libsvm با تولباکس متلب
شهاب بنی طبا –
با سلام من برای اجرای برنامه با خطای زیر مواجه می شوم
Undefined function or method ‘fitcsvm’ for input arguments of type
‘double’.
لطفا راهنمایی کنید
ایران متلب –
با سلام
تابع fitcsvm در نسخه های متلب 2015 به بالاتر قابل دسترس است.
نسخه متلب بالاتر از 2015 را نصب کنید.
غلامی –
سلام
1-من می خواستم با استفاده از رگرسیون بردار ئشتیبان SVR جهت پیش بینی یک الگو (برازش منحنی) استفاده کنم. پیشنهاد شما کدوم بسته آموزشی است؟
2- آیا بسته آموزشی برای تعیین ضرائب SVM با استفاده از الگوریتمهای هوشمند (الگوریتم ژنتیک یا غیره) دارید؟
حجت –
سلام
آیا کد متلب SVR هم دارید؟
ایران متلب –
سلام
بله داریم
Suppore Vector Regression
shahram –
سلام
کد برنامه multisvm خریدم که 3تا ورودی داره TrainingSet,GroupTrain,TestSet خواستم ببینم GroupTrain چه وارد کنم
ایران متلب –
سلام
بردار هدف آموزش را وارد کنید. اگر نمی دانید چی هست مجموعه آموزشی زیر را تهیه فرمایید.
مجموعه آموزش جامع شبکه عصبی