یعنی اینکه میخوام خروجی swmclassify رو با خروجی واقعی که باید باشه مقایسه کنم و در صد بگیرم
Printable View
یعنی اینکه میخوام خروجی 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??
سسسسسسسسسسسسسسسسسس
قبل از خط
svmStruct = svmtrain(xdataamoozesh,groupamoozesh,'showplot',tr ue);
این را بذارید دیه فکر کنم هر دفعه جواب یکسان بده
rng(100);
بازم تغییرکرده،الان 66% شده
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
من در یک جای دیگه غیر متلب اتحان کردم مشکلی نبود
بهتره از کتابخانه 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);
روش دیگه ای نداره؟؟ اخه متلبم رو ویندوز64 من نصب نمیشه،(خیلی از درایورام واسه ویندوز64 کمیابه )
این هم نسخه 32 بیتی
http://www.csie.ntu.edu.tw/~cjlin/li...-mat-3.0-1.zip
سلام
من نتونستم فایلی ک فرمودید داخل ویندوز هست را پیداکنم،اگه میشه مراحلشو بگید که این libsvm رو چجوری نصب کنم؟بعداینکه برناممو اجراکنم یا اینکه همون چند خطی که فرستادین اونو فقط اجرا کنم؟؟
in karo krardam vali error dad
Error: C <= 0
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled7 (line 7)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
>>
این را بزنید:
size(azmayesh)
چه جوابی میاد؟
Error: C <= 0
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled7 (line 7)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
>>
فقط این را بزنید:
size(azmayesh)
چه جوابی میاد؟
Undefined function or variable 'azmayesh'.
Error in Untitled7 (line 1)
size(azmayesh)
من گفتم این کد را اجرا کنید
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);
اگه همین دستور را زده اید احتمالا باید خطاهای بیشتری هم داده باشه
لطفا کل خطا ها را بذارید
in code ro k mizanam in khataro mide
Error: C <= 0
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled10 (line 7)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
اصلا تک تک خط ها را در متلب کپی و پیست کنید اولین مورد که خطا داد گزارش کنید
خط 6 این ارورو میده(یکی مونده به اخری)
Error: C <= 0خط اخرم این ارور رو میده
model file should be a struct array
Error: C <= 0بقیه خط ها ارور نمیده
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled10 (line 9)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
فایل svmtrain.mexw32 را به svmtrain2.mexw32 تغییر نام بدهید سپس این کد را اجرا کنید
load xdataazmayesh.mat
load xdataamoozesh.mat
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
svmStruct = svmtrain2(groupamoozesh, double(xdataamoozesh), '-c 0');
[azmayesh, accuracy, dec_values] = svmpredict(groupazmayesh, xdataazmayesh, svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
دوباره ارور داد
Error: C <= 0
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled11 (line 7)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
این دستورات خود libsvm هست . ببینید اجرا میشه؟
[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
model = svmtrain2(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model)
چه چیزی چاپ میشه؟
فقط همین کدروزدم اررور دادError using svmtrain2
Matrix API is called with negative size or index.
Error in Untitled2 (line 4)
model = svmtrain2(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
فایل heart_scale را داخل همون فولدر اکسترکت کنید
http://www.sharefile.ir/uploads/1408827087.zip
Accuracy = 86.6667% (234/270) (classification)
دیگه ارور ندادولی قبلا 98% بود الان 86%
پس مشکلی نیست. این کد را اجرا کنید:
load xdataazmayesh.mat
load xdataamoozesh.mat
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
svmStruct = svmtrain2(double(groupamoozesh), double(xdataamoozesh), '-c 0');
[azmayesh, accuracy, dec_values] = svmpredict(double(groupazmayesh), double(xdataazmayesh), svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
بازم ارور داد
Error: C <= 0
model file should be a struct array
Error using perfcurve
Argument 'scores' failed validation
@(x)~isempty(x)&&(isnumeric(x)||iscell(x)).
Error in perfcurve (line 313)
p.parse(labels,scores,posClass,varargin{:});
Error in Untitled3 (line 9)
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
این هم ارور میده؟
load xdataazmayesh.mat
load xdataamoozesh.mat
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
svmStruct = svmtrain2(double(groupamoozesh), double(xdataamoozesh));
[azmayesh, accuracy, dec_values] = svmpredict(double(groupazmayesh), double(xdataazmayesh), svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
in error nadad
Accuracy = 64.5161% (400/620) (classification)
vali darsadesh kheyli omade peiyn
accuracy را ولش کن auc را ببین چند شده؟
auc=0.5000
این که افتضاحه معلوم نیست مشکل کجاست جون من یه جا دیگه امتحان کردم فقط دو مورد اشتباه طبقه بندی شده بود
خب پس چیکارمیشه کرد
ای یکی چه طوره؟
load xdataazmayesh.mat
load xdataamoozesh.mat
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
svmStruct = svmtrain2(double(groupamoozesh), double(xdataamoozesh),'-s 2');
[azmayesh, accuracy, dec_values] = svmpredict(double(groupazmayesh), double(xdataazmayesh), svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
auc=0.4988
صبر کنید من تست می کنم فردا خبر میدم