متوجه نشدم،ببینید من فایلامو جداکردم ولی به ماتریس تبدیل نکردم،نمیدونم میشه بگید مراحلش به چه صورت باید باشه دقیقا؟اول باید پلاک و نان پلاک رو به ماتریس تبدیل کنم طبق کدی که دادید و ازتوش واسه اموزش و ازمایش جداکنم؟؟؟؟یا اینکه فایلایی رو که ازقبل جداکردم به عنوان ازمایش و اموزش رو بزارم تو این کد وبه ماتریس تبدیل کنم ؟؟؟
ببینید همون طور که گفتم باید فایلها را به ماتریس تبدیل کنید تا بتونید وارد svm کنید
طبق همون کدی که گذاشتم فرض کنید فایلهای شما در دو فولدر باشه شما دو تا ماتریس درست کنید و اسم اون ماتریسها را هر چه دلتون خواست بذارید و نهایتا به من بگید این ماتریسهایی که ایجاد شده هر کدوم شامل چه داده هایی هست و تعداد سطر و ستون اون را بگویید تا برسیم به مرحله بعدی
دقیقا بگید در فولدرها چی گذاشتید در هر فولدری چه تعداد فایل هست
من دوتا فولدر دارم
از کدوم دسته استفاده کنم؟؟؟؟
آخرین ویرایش به وسیله sama.66 : شنبه 22 فروردین 1394 در 22:06 عصر
ok chejuri bayad vase amuzesho azmayesh az tu matrisa joda konam??
xdataamoozesh=[pelakdata(1:440,:);nonpelakdata(1:800,:)];
xdataazmayesh=[pelakdata(441:end,:);nonpelakdata(801:end,:)];
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
الان من حلقه رو چجوری بنویسم؟؟a= zeros(1240,1);
for i=1:440
b=rand( ,);
a(i,:)=b;
end
بعدش بایداینطور نوشت؟؟svmStruct = svmtrain(xdataamoozesh,groupamoozesh,'showplot',tr ue);
groupazmayesh = svmclassify(SVMStruct,Sample,'Showplot',true)
آخرین ویرایش به وسیله sama.66 : چهارشنبه 15 مرداد 1393 در 21:14 عصر
بله همین روش
به علاوه اینها
azmayesh=svmclassify(svmStruct,xdataazmayesh ,'ShowPlot',true);
[x,y,auc]=perfcurve(azmayesh,groupazmayesh,1);
plot(x,y)
xlabel('False positive rate'); ylabel('True positive rate')
title('ROC for classification by SVM')
disp(auc)
اگه شاخص auc از 80 درصد بیشتر بود معلومه کارایی روش خوب بوده
auc یه ماتریسه که به این صورت دراومده؟؟
1
1
0
خب میشه بگید این یعنی چی؟؟؟
حالا نمودار را کشید نمودار چه شکلیه؟
auc هم فقط باید یک عدد باشه قاعدتا نه سه تا و بین 0.5 تا 1 باید باشه
ببخشید یه اشتباه شده این خط را اصلاح کنید
[x,y,auc]=perfcurve(groupazmayesh,azmayesh,1);
auc همانطورکه گفتم به این صورته {1,1,0}
اینم نمودارشCapture.PNG
این اشتباه را هم اصلاح کنید
نمودار نشون میده کارآیی بسیار عالی بوده چون منحنی به سمت گوشه بالا سمت چپ کاملا نزدیک شده
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
واقعا خیلی لطف میکنید شما،درست شد الان شده 0.9803
یه سوال؟چجوری باید بفهمم که جواب ازمایشsvmclassifyنسبت به جواب واقعی چند درصد ه؟؟
یعنی اینکه میخوام خروجی swmclassify رو با خروجی واقعی که باید باشه مقایسه کنم و در صد بگیرم
khoroji c be in surete??
[397,3,7,213]
میشه بگید این ماتریس منظورش چیه
همون چیزی که به دنبالش بودید
اینها را مطالعه کنید:
http://fa.wikipedia.org/wiki/ماتریس_درهمریختگی
http://en.wikipedia.org/wiki/Confusion_matrix
مرسی،اونجا نوشته بود هر ستون نمونه ای ازمقدارپیش بینی شده است ،ستون اول میشه 7+397 خب این جمعش میشه 404ولی ما 400 تا غیرپلاک داشتیم یه توضیح کوچیک میدین من متوجه بشم قضیه به چه صورته؟؟
هر ستون از ماتریس، نمونهای از مقدار پیش بینی شده را نشان میدهد. در صورتی که هر سطر نمونهای واقعی (درست) را در بر دارد.
اینی که شما نوشتید واسه سطره نمونه ی واقعیه من میخوام ببینم داده های تست نسبت به واقعی چنددرصد شده باید ستونی درنظربگیرم؟؟؟؟
میتونم اینجوری حساب کنم که کل داده 620تابوده و213+397=610تا در svmجواب داده که میشه 98%
یعنی نسبت خروجی svm به خروجی واقعی 98% نیست ؟
ببنید نسبت فکر نکنم شاخص خوبی باشه همون auc شاخص خیلی خوبی هست که همه چیز را در نظر می گیره الان هم که 98 درصد اومده خیلی خوبه
شما می گین نسبت. نسبت چی؟ نسبت طبقه بندی درست از میان طبقه بندی واقعی
یا نسبت طبقه بندی غلط از میان طبقه بندی واقعی
هر کدوم باشه ماتریس ابهام به شما نسبت را میده
یعنی منظور اینه که تنها اکتفا به نسبت کار درستی نیست
ولی این شاخص auc هست که شما باید استفاده کنید که تمام موارد بالا را در نظر می گیره
ممنونم از راهنماییتون
salam
har dafe k in barnamaro run mikonam auc taghir mikone,ye darsade sabeti nadare,bayad chikar kard??
سسسسسسسسسسسسسسسسسس
آخرین ویرایش به وسیله sama.66 : جمعه 21 فروردین 1394 در 22:53 عصر
قبل از خط
svmStruct = svmtrain(xdataamoozesh,groupamoozesh,'showplot',tr ue);
این را بذارید دیه فکر کنم هر دفعه جواب یکسان بده
rng(100);
بازم تغییرکرده،الان 66% شده
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
آخرین ویرایش به وسیله sama.66 : شنبه 22 فروردین 1394 در 22:10 عصر
من در یک جای دیگه غیر متلب اتحان کردم مشکلی نبود
بهتره از کتابخانه libsvm استفاده کنید
از اینجا دانلود کنید
http://www.csie.ntu.edu.tw/~cjlin/cg...lin/libsvm+zip
وقتی اکسترکت کردید در فولدر windows فایلهای مربوطه قرار داره ( البته برای ویندوز 64 بیتی هست)
دو تا فایل mat که درست کردید را بذارید داخل همون فولدر و اون فولدر را مسیر جاری قرار بدید
بعد این دستورات را بزنید
load xdataazmayesh.mat
load xdataamoozesh.mat
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
svmStruct = svmtrain(groupamoozesh, double(xdataamoozesh), '-c 0');
[azmayesh, accuracy, dec_values] = svmpredict(groupazmayesh, xdataazmayesh, svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
آخرین ویرایش به وسیله rahnema1 : یک شنبه 26 مرداد 1393 در 18:00 عصر