-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
من هم به شما ایمان دارم
اول به این آدرس یه نگاهی بیندازید. اگه به طور عادی نشد مجبورید با روشهای دیگه برید شاید تو هلپ متلب هم باشه
http://www.mathworks.com/help/stats/...lustering.html
با تکرار میشه بهترین حالت را پیدا کرد. یعنی چند بار ( مثلا اینجا 5 بار) اجرا می کنیم و بهترین انتخاب می کنیم
sumD=[];
c={};
IDX={};
for i=1:5
IDX=[];
while (numel(unique(IDX))<numnode)
[IDX{i},c{i},sumD(i)]= kmeans(Train,numnode, 'emptyaction','drop' );
end
end
indexbest=find(sumD=min(sumD));
cBest=c{indexbest};
میگه اون پیج وجود نداره.
برنامه رو اجرا میکنم این پیغام رو میده :
??? Comma separated list expansion has cell syntax for an array that
is not a cell.
Error in ==> rb12 at 48
[IDX{i},c{i},sumD(i)]= kmeans(Train,numnode,
'emptyaction','drop' );
به جای کاما، سمیکالن هم گذاشتم نشد.
-
نقل قول: ساخت ماتریس تصادفی
sumD=[];
c={};
IDX={};
IDX0=[];
for i=1:5
IDX=[];
while (numel(unique(IDX0))<numnode)
[IDX0,c0,sumD0]= kmeans(Train,numnode, 'emptyaction','drop' );
end
IDX{i}=IDX0;
c{i}=c0;
sumD(i)=sumD0;
end
indexbest=find(sumD==min(sumD));
cBest=c{indexbest};
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
sumD=[];
c={};
IDX={};
IDX0=[];
for i=1:5
IDX=[];
while (numel(unique(IDX0))<numnode)
[IDX0,c0,sumD0]= kmeans(Train,numnode, 'emptyaction','drop' );
end
IDX{i}=IDX0;
c{i}=c0;
sumD(i)=sumD0;
end
indexbest=find(sumD==min(sumD));
cBest=c{indexbest};
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> rb12 at 52
sumD(i)=sumD0;
-
نقل قول: ساخت ماتریس تصادفی
c با numnode در ارتباطه.
پس اگه بخوام بهترین c رو انتخاب کنم باید numnode هم در بهترین حالت قرار داشته باشه دیگه.
درسته؟
-
نقل قول: ساخت ماتریس تصادفی
sumD=[];
c={};
IDX={};
IDX0=[];
for i=1:5
IDX=[];
while (numel(unique(IDX0))<numnode)
[IDX0,c0,sumD0]= kmeans(Train,numnode, 'emptyaction','drop' );
end
IDX{i}=IDX0;
c{i}=c0;
sumD(i)=sum(sumD0);
end
indexbest=find(sumD==min(sumD));
cBest=c{indexbest};
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
c با numnode در ارتباطه.
پس اگه بخوام بهترین c رو انتخاب کنم باید numnode هم در بهترین حالت قرار داشته باشه دیگه.
درسته؟
بله توی اون لینکی که گذاشتم توضیح داده
مثلا توی همین حلقه for شما می تونید به تدریج numnode را از کم به زیاد افزایش بدید ببنید در کدام حالت مقدار sumD حداقل میشه
-
نقل قول: ساخت ماتریس تصادفی
مرسی جواب داد.
تعداد centerها کمتر شد ولی انگار درصد specificity پایین تر اومد!
ربطی به numnode داره؟
اینو چطوری باید بهینه انتخاب کنم؟
-
نقل قول: ساخت ماتریس تصادفی
ظاهرن تعداد numnode با cBest برابره.
خب اینطوری هرچی ما numnode رئ انتخاب کنیم همون میشه تعداد centerهامون دیگه!
اونوقت چطوری بهترین انتخاب میشه؟
-
نقل قول: ساخت ماتریس تصادفی
حالا اگه بخوام سنترها رو پلات کنم یه مشکلی پیش میاد.
IDX بصورت سلول هست.
این دستور رو واسه پلات میدم :
plot(Train(IDX==1,1),Train(IDX==1,2),'.','Color',[1 0 0]);
hold on;
plot(Train(IDX==2,1),Train(IDX==2,2),'.','Color',[0 0.7 0]);
plot(Train(IDX==3,1),Train(IDX==3,2),'.','Color',[0 0 1]);
plot(c(:,1),c(:,2),'kx','MarkerSize',12,'LineWidth ',2);
plot(c(:,1),c(:,2),'ko','MarkerSize',12,'LineWidth ',2);
این پیغام رو میده :
??? Undefined function or method 'eq' for input arguments of type
'cell'.
Error in ==> rb12 at 61
plot(Train(IDX==1,1),Train(IDX==1,2),'.','Color',[1 0 0]);
-
نقل قول: ساخت ماتریس تصادفی
تست نکردم اما مقادیر بهینه را پیدا می کنه
cBest={};
IDXBest={};
SumDbest=[];
for j=1:40
sumD=[];
c={};
IDX={};
IDX0=[];
numnode=j;
for i=1:5
IDX=[];
while (numel(unique(IDX0))<numnode)
[IDX0,c0,sumD0]= kmeans(Train,numnode, 'emptyaction','drop' );
end
IDX{i}=IDX0;
c{i}=c0;
sumD(i)=sum(sumD0);
end
SumDbest[j]=min(sumD);
indexbest=find(sumD==bestSum[j]);
cBest{j}=c{indexbest};
IDXBest{j}=IDX{indexbest};
end
indexbest=find(SumDbest==min(SumDbest));
c=cBest{indexbest};
IDX=IDXBest{indexbest};
numnode=indexbest;
disp(numnode)
-
نقل قول: ساخت ماتریس تصادفی
برای این خط خطا میده :
SumDbest[j]=min(sumD);
خطا :
??? Error: File: rb13.m Line: 59 Column: 9
Unbalanced or unexpected parenthesis or bracket.
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
برای این خط خطا میده :
SumDbest[j]=min(sumD);
خطا :
??? Error: File: rb13.m Line: 59 Column: 9
Unbalanced or unexpected parenthesis or bracket.
مهندس حل شد.
بجای براکت ، پرانتز گذاشتم.
فعلن اجرا میکنه
-
نقل قول: ساخت ماتریس تصادفی
درصدهایی که میگیرم بطور میانگین به این صورته :
Mean of Sensitivity = 85.882353
Mean of specificity = 44.193548
Mean of accuracy = 66.000000
هنوز روی کلاس صفر مشکل دارم. خوب تشخیص نمیده!
-
نقل قول: ساخت ماتریس تصادفی
یعنی چی روی کلاس صفر مشکل دارین؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
یعنی چی روی کلاس صفر مشکل دارین؟
همون چیزی که توی پیام خصوصی گفتم. تعداد 65 نمونه داده ی تست دارم. وقتی شبکه آموزش دید حالا باید این داده های تست روی شبکه تست بشه. یه سری کلاس یک هستن یه سری کلاس صفر. وقتی تست شد باید این نمونه ها رو طبقه بندی کنه دیگه. ینی اونایی که به کلاس 1 تعلق دارند قرار بده در کلاس 1 و همچنین برای کلاس صفر.برنامه ی من به تعداد داده ای که در کلاس صفر قرار دارند فقط 40 درصدش رو درست تشخیص میده. بقیه رو اشتباهی میبره کلاس 1واسه همین sensitivity بالاست همش ولی specificity پایینه.منظورم رو رسوندم؟
-
نقل قول: ساخت ماتریس تصادفی
من همزمان دارم رو دوتا برنامه RBF کار میکنم تا ببینم کدوم جواب بهتری میده.
اون برعکسه. تمام داده های تست رو میبره به کلاس صفر.
یعنی کلاً test output رو صفر میکنه.
-
نقل قول: ساخت ماتریس تصادفی
مشکل اول اینه که شما داده های آموزش (TRR) و تست (TEE) رو تصادفی انتخاب کردین.
داده های آموزش و تست من همونی هستن که فراخونی میشن. نباید دست بخورن. چون از قبل تقسیم بندی شدن.
فقط موقعی که میخوایم کل داده ها رو یکجا به شبکه بدیم با هم توی یه ماتریسی به اسم inputs قرار میدیم.
-
نقل قول: ساخت ماتریس تصادفی
من بر اساس B.5.xlsx و M.5.xlsx عمل کردم حالا داخل TrainData%d.xlsx و TestData%d.xlsx چی هست خدا می دونه
-
نقل قول: ساخت ماتریس تصادفی
دستور roc رو کجای برنامه باید بنویسم؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
من بر اساس B.5.xlsx و M.5.xlsx عمل کردم حالا داخل TrainData%d.xlsx و TestData%d.xlsx چی هست خدا می دونه
من B.5 و M.5 رو از قبل گرفتم با هم قاطی کردم. طوری که 60 درصد داده های B و M در TRR قرار گرفتن و بقیه در TEE که به ترتیب داده های آموزش و تست هستن. پس من الآن باید randperm رو حذف کنم دیگه! درسته؟
به همون صورت قبلی باید باشه :
TrInd=randperm(98);
TR=[TRR(TrInd(1:98),:)];
TeInd=randperm(65);
TE=[TEE(TeInd(1:65),:)];
inputs=[ TR(:,1:end-1); TE(:,1:end-1)]';
targets=[ TR(:,end); TE(:,end)]';
trainInputs = TR(:,1:end-1)';
trainTargets = TR(:,end)';
testInputs = TE(:,1:end-1)';
testTargets = TE(:,end)';
بقیه ی برنامه مشکل داره.
-
نقل قول: ساخت ماتریس تصادفی
همون کدی که گذاشتم را روی b , m اعمال کن دیگه خیلی تغییر نده
این دستور هم وجود داره
[X,Y,T,AUC] = perfcurve(testTargets,testOutputs',1);
-
نقل قول: ساخت ماتریس تصادفی
خب اینو میده. حالا منظورش چیه از این؟
من باید sensitivity و ... رو در بیارم.
area under curve= 0.532336
-
نقل قول: ساخت ماتریس تصادفی
این مقدار از 0.5 شروع میشه تا 1
مقدار نیم یعنی طبقه بندی داغونه
اگه بالای 0.8 باشه خوبه
-
نقل قول: ساخت ماتریس تصادفی
Input را فراموش کرده بودم
inputs=data(Indx,1:end-1);
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
این مقدار از 0.5 شروع میشه تا 1
مقدار نیم یعنی طبقه بندی داغونه
اگه بالای 0.8 باشه خوبه
نه . متاسفانه این به دردم نمیخوره.
معیار ارزیابی نتایج شبکه من باید همون سه تا پارامتر باشه.
مهندس! مشکل من همون testoutputs هست که همه رو صفر میده. یعنی همه در کلاس صفر قرار میگیرن و دلیلش اینه که اندیس هایی که برای داده های تست انتخاب کردیم اشتباست. ینی 99:163 نباید باشه. باید بگیم در ماتریس inputs اندیسهایی که برای داده های تست هستن.
من اینو نمیدونم چطوری بهش بفهمونم.
testOutputs = round(((outputs(:,99:163))));
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
Input را فراموش کرده بودم
inputs=data(Indx,1:end-1);
اینو خودم گذاشته بودم.
در ضمن، الگوهای من باید روی ستونها باشن که گرفتم ترنسپوزشون کردم.
-
نقل قول: ساخت ماتریس تصادفی
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
مهندس شرمنده.میگه این فایل وجود نداره. میشه یه جایی آپلودش کنی؟ببخشید.
-
نقل قول: ساخت ماتریس تصادفی
سلام مهندس. شرمنده. باز یه سوال :
چطوری میتونم بین سطرها همبستگی ایجاد کنم؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
سلام مهندس. شرمنده. باز یه سوال :
چطوری میتونم بین سطرها همبستگی ایجاد کنم؟
سلام،دشمنت شرمنده
یعنی چی می خواهی همبستگی ایجاد کنی؟ و چه لزومی داره؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
سلام،دشمنت شرمنده
یعنی چی می خواهی همبستگی ایجاد کنی؟ و چه لزومی داره؟
مثل همون برنامه ای که با corr نوشته بودی منتها اون واسه ستونها بود.
حالا من میخوام بین داده هایی که میدم یه برنامه همبستگی باشه که مثلن همونطور که قبلن گفتی اگه بالای 95 درص وابسته بودن سطرها رو حذف کنه. میخوام ببینم جواب بهتری میگیرم یا نه!
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
مثل همون برنامه ای که با corr نوشته بودی منتها اون واسه ستونها بود.
حالا من میخوام بین داده هایی که میدم یه برنامه همبستگی باشه که مثلن همونطور که قبلن گفتی اگه بالای 95 درص وابسته بودن سطرها رو حذف کنه. میخوام ببینم جواب بهتری میگیرم یا نه!
جواب بهتر گرفتن به هر قیمتی که درست نیست. شما با این کار ماهیت داده ها را دارید کلا تغییر می دهید. این روش درست نیست
-
نقل قول: ساخت ماتریس تصادفی
وقتی جواب بهتری میگیرم ینی داره خوب تشخیص میده. در ضمن ، من که نمیخوام نرمالیزه کنم!
فقط میخوام تعداد سطرهایی که 95 درصد شبیه هم هستن رو حذف کنم.
حالا شما کدشو بگین چطوری میشه. امتحان کردنش ضرر نداره!
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
وقتی جواب بهتری میگیرم ینی داره خوب تشخیص میده. در ضمن ، من که نمیخوام نرمالیزه کنم!
فقط میخوام تعداد سطرهایی که 95 درصد شبیه هم هستن رو حذف کنم.
حالا شما کدشو بگین چطوری میشه. امتحان کردنش ضرر نداره!
این حرف کاملا اشتباهه. اگه باور نمی کنی از استادت بپرس. عزیز من یه کم دقت کن می خواهی چی کار کنی. می خواهی داده ها را تغییر بدی تا مطابق میل شما جواب بده؟
اصلا چرا این کار می کنی؟ یه سری داده های الکی درست کن که جواب خوب بده. اگه بلد نیستی راهش را بلدم. بعدش این را به جای داده های اصلی جا بزن:)
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
این حرف کاملا اشتباهه. اگه باور نمی کنی از استادت بپرس. عزیز من یه کم دقت کن می خواهی چی کار کنی. می خواهی داده ها را تغییر بدی تا مطابق میل شما جواب بده؟
اصلا چرا این کار می کنی؟ یه سری داده های الکی درست کن که جواب خوب بده. اگه بلد نیستی راهش را بلدم. بعدش این را به جای داده های اصلی جا بزن:)
باشه . انجام نمیدم. حرف شما برام قبوله.
قبلن گفتم دیگه. به شما ایمان دارم :))