-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
بازم نگفتین کدوم دستور؟ :)
size(unique([a;b],'rows'),1)
-
نقل قول: ساخت ماتریس تصادفی
مهندس عزیز
هنوز متوجه نشدی واسه چی دستور
[i j]=find(cc>.9);
ij=[i j];
جواب Empty matrix: 0-by-2
میده؟
-
نقل قول: ساخت ماتریس تصادفی
این دستور را بزن تا نتیجه را ببینیم
r=rand(10,5);
[i j]=find(r>0.5);
[i j]
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
این دستور را بزن تا نتیجه را ببینیم
r=rand(10,5);
[i j]=find(r>0.5);
[i j]
جواب میده.
ans =
6 1
8 1
10 1
1 2
2 2
3 2
4 2
9 2
1 3
2 3
3 3
6 3
8 3
9 3
10 3
3 4
5 4
6 4
7 4
8 4
9 4
10 4
1 5
3 5
5 5
8 5
9 5
-
نقل قول: ساخت ماتریس تصادفی
-
نقل قول: ساخت ماتریس تصادفی
ببین!
من این خط برنامه رو به جای 10 گذاشتم 2 . یعنی به دو کلاس تقصیم کن.
fis=genfis3(TrainInputs,TrainTargets,'sugeno',2);
با داده واقعی جواب گرفتم و خطا هم نداد!
ولی قرار بود که از ستون اول 5 تا 5 تا بره تا 43 که میشد 9 تا dataset.
ولی تا 7 تا dataset رفت و برنامه جواب هم داد.
آخرین dataset رو با 33 تا ستون انجام داد.
احتمالن بعض از ستون ها رو بخاطر همبستگی حذف کرد که دیگه نتوست تا 43 تا ستون بره.
درسته؟
-
نقل قول: ساخت ماتریس تصادفی
بله. به خاطر همبستگی تعداد ستونها از 43 به 34 تا کاهش پیدا کرد در نتیجه این جور شد
5 10 15 20 25 30 34
-
نقل قول: ساخت ماتریس تصادفی
یه بار دیگه اجرا کردم دوباره همون خطای قبلی رو داد :
??? Error using ==> evalfismex
Illegal parameters in fisGaussianMF() --> sigma = 0
Error in ==> evalfis at 84
[output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints);
Error in ==> pro at 101
TrainOutputs=round(evalfis(TrainInputs,fis));
احتمالن بعضی موقع داده های تصادفی رو طوری انتخاب میکنه که با شبکه سازگار نیست!
-
نقل قول: ساخت ماتریس تصادفی
برای کدوم داده این خطا را داد سایز ستونش چنده؟
معمولا وقتی تعداد ستونها از سطر ها بیشتر میشه روش least square جواب نمیده
چون anfis هم ترکیبی از روش least square و شبکع عصبی هست
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
برای کدوم داده این خطا را داد سایز ستونش چنده؟
معمولا وقتی تعداد ستونها از سطر ها بیشتر میشه روش least square جواب نمیده
چون anfis هم ترکیبی از روش least square و شبکع عصبی هست
همون داده اصلی دیگه.
ماتریس 163 در 44 که ستون آخرش خروجی هست.
برات آپلود کرده بودم. به اسم data.2
-
نقل قول: ساخت ماتریس تصادفی
نه دیگه مرحله به مرحله سایز ستون زیاد میشه اولش 5 بعد 10 و همین طور زیاد میشه
میخوام بدونم این خطا کدوم زمان رخ میده
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
نه دیگه مرحله به مرحله سایز ستون زیاد میشه اولش 5 بعد 10 و همین طور زیاد میشه
میخوام بدونم این خطا کدوم زمان رخ میده
dataset7 با 33 ستون
این دیتا ست آخری بود. 10 تا ستون رو حذف کرد.
-
نقل قول: ساخت ماتریس تصادفی
به احتمال زیاد دلیلش همین می تونه باشه
یعنی کمتر شدن نسبت بین مشاهدات و متغیرها
-
نقل قول: ساخت ماتریس تصادفی
ضریب همبستگی رو کردم 99 درصد
الآن اینبار روی دیتاست 6 با 30 تا ستون خطا داد.
??? Error using ==> evalfismex
Illegal parameters in fisGaussianMF() --> sigma = 0
Error in ==> evalfis at 84
[output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints);
Error in ==> pro at 101
TrainOutputs=round(evalfis(TrainInputs,fis));
-
نقل قول: ساخت ماتریس تصادفی
چه جالب!
هر چی ضریب همبستگی رو کمتر میکنم. تعداد دیتاست ها کمتر میشه.
مثلن با 50 درصد 3 تا دیتاست میسازه
با 5 و 10 و 13 ستون
-
نقل قول: ساخت ماتریس تصادفی
باید هم همین طور بشه داده ها با هم همبستگی دارن اما اگه این همبستگی خیلی زیاد باشه مدل را خراب می کنه
-
نقل قول: ساخت ماتریس تصادفی
موقعی که خوب کار میکنه نهایتش تا 7 تا دیتاست میره با 33 ستون.
-
نقل قول: ساخت ماتریس تصادفی
آقا مرسی.به یه جاهایی رسیدم فعلن.
-
نقل قول: ساخت ماتریس تصادفی
سلام دوستان عزیز برای رفع مشکلات خودتون در مورد متلب می تونید به سایت مرجع متلب مراجعه کنید :
-
نقل قول: ساخت ماتریس تصادفی
اگه من 10 تا ماتریس داشته باشم از a1 تا a10 و بخوام توی 10 مرحله اینا رو از اکسل فراخونی کنم چطوره؟
به این صورت :
TRR=xlsread('C:\a1.xlsx',1);
بعد دفعه بعد :
TRR=xlsread('C:\a2.xlsx',1);
و الی آخر ...
-
نقل قول: ساخت ماتریس تصادفی
به این صورت
for i=1:10
TRR=xlsread(sprintf('C:\\a%d.xlsx',i),1);
end
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
به این صورت
for i=1:10
TRR=xlsread(sprintf('C:\\a%d.xlsx',i),1);
end
نشد!
Warning: Invalid escape sequence appears in format string. See
help sprintf for valid escape sequences.
??? Error using ==> xlsread at 219
XLSREAD unable to open file C:.
File C:\.xls not found.
-
نقل قول: ساخت ماتریس تصادفی
این را امتحان کن
TRR=xlsread(sprintf('C:/a%d.xlsx',i),1);
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
این را امتحان کن
TRR=xlsread(sprintf('C:/a%d.xlsx',i),1);
نه همون قبلی درست تره!
اگه منظورت slash و back slash هست که همون اولی ولی با یکی درسته. مثل این :
TRR=xlsread(sprintf('C:\a%d.xlsx',i),1);
ولی اصلن مشکل از یه جای دیگه هست.
-
نقل قول: ساخت ماتریس تصادفی
جدا بنویسی هم فایده ای نداره؟ من توی octave انجام میدم مشکلی نیست.
for i=1:10
reshte=sprintf('C:/a%d.xlsx',i);
TRR=xlsread(reshte,1);
end
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
جدا بنویسی هم فایده ای نداره؟ من توی octave انجام میدم مشکلی نیست.
for i=1:10
reshte=sprintf('C:/a%d.xlsx',i);
TRR=xlsread(reshte,1);
end
نه متاسفانه :
Warning: Invalid escape sequence appears in format string. See
help sprintf for valid escape sequences.
??? Error using ==> xlsread at 219
XLSREAD unable to open file E:.
File E:\.xls not found.
-
نقل قول: ساخت ماتریس تصادفی
آقا حل شد.
مرسی
برای رشته باید از / استفاده بشه.
من اشتباه میکردم.
-
نقل قول: ساخت ماتریس تصادفی
مهندس ببخشید!
این برنامه ای که واسه نرمالیزه کردن نوشته بودی از چه روشی استفاده کردی؟
به استادم که گفتم وقتی داده ها نرمالیزه شد ، نتیجه شبکه بدتر شد.
گفت از چه تکنیکی استفاده کردی؟
مگه چند روش داریم؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
مهندس ببخشید!
این برنامه ای که واسه نرمالیزه کردن نوشته بودی از چه روشی استفاده کردی؟
به استادم که گفتم وقتی داده ها نرمالیزه شد ، نتیجه شبکه بدتر شد.
گفت از چه تکنیکی استفاده کردی؟
مگه چند روش داریم؟
اومدیم از هر داده میانگین داده ها را کم کردیم و حاصل را تقسیم بر انحراف معیار کردیم
همچنین به علت اینکه بین بعضی متغیرها همبستگی بسیار زیاد بود اومدیم متغیرهایی که همبستگی بالای 90 درصد داشتند یکیشون را حذف کردیم
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
اومدیم از هر داده میانگین داده ها را کم کردیم و حاصل را تقسیم بر انحراف معیار کردیم
همچنین به علت اینکه بین بعضی متغیرها همبستگی بسیار زیاد بود اومدیم متغیرهایی که همبستگی بالای 90 درصد داشتند یکیشون را حذف کردیم
برای نرمالیزه کردن روش های دیگه ای هم وجود داره؟
راستی، شما با روش های ترکیبی طبقه بندی داده ها هم کار کردین؟
-
نقل قول: ساخت ماتریس تصادفی
میشه کاری کرد که داده ها بین صفر تا یک قرار بگیرن یا مثلا بین -1 و 1 قرار بگیرن
طبقه بندی ترکیبی چیه؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
میشه کاری کرد که داده ها بین صفر تا یک قرار بگیرن یا مثلا بین -1 و 1 قرار بگیرنطبقه بندی ترکیبی چیه؟
مثلن دو روش طبقه بندی رو که جدا میشه ازش استفاده کرد، بصورت ترکیبی استفاده میکنن تا جواب بهتری بگیرن.مثل ترکیب Kmeans با RBF و ...
-
نقل قول: ساخت ماتریس تصادفی
من یه دستوی رو اجرا میکنم به این صورت :
[IDX,c,sumD]= kmeans(Train,numnode);
که که هیچ موقع c نباید تهی بشه.
میخوام یه شرط بذارم که اگه c تهی بود یا صفر بود دوباره این دستور رو اجرا کن وگرنه ادامه بده.
باید چیکار کنم؟
-
نقل قول: ساخت ماتریس تصادفی
c=[];
while (numel(c)==0 || c==0)
[IDX,c,sumD]= kmeans(Train,numnode);
end
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
c=[];
while (numel(c)==0 || c==0)
[IDX,c,sumD]= kmeans(Train,numnode);
end
برنامه اجرا میکنه. مشکلی نداره ولی اون چیزی که میخواستم نشد. ینی هنوز جلوی اون خالی شدن رو نمیتونه بگیره؟
هنوز c بعضی موقع خالی میمونه. این پیغام رو میده :
??? Error using ==> kmeans>batchUpdate at 435
Empty cluster created at iteration 2.
-
نقل قول: ساخت ماتریس تصادفی
فکر نکنم خالی بمونه این را اجرا کنید تا مشخص بشه که سایزش خالی نیست
c=[];
while (numel(c)==0 || c==0)
[IDX,c,sumD]= kmeans(Train,numnode);
end
disp(c)
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
فکر نکنم خالی بمونه این را اجرا کنید تا مشخص بشه که سایزش خالی نیست
c=[];
while (numel(c)==0 || c==0)
[IDX,c,sumD]= kmeans(Train,numnode);
end
disp(c)
وقتی که اون پیغام رو میده. حرف c رو توی command window میزنم خروجی به من اینو میده :
c=[]
ینی هنوز خالیه دیگه!
-
نقل قول: ساخت ماتریس تصادفی
توی راهنمای متلب نگاه کنید یک گزینه وجود داره به نام emptyaction که اگه اون را روی drop تنظیم کنید کلاسترهای اضافی حذف میشن در غیر این صورت گزینه پیش فرض روی error تنظیم شده که خطا میده
IDX=[];
while (numel(unique(IDX))<numnode)
[IDX,c,sumD]= kmeans(Train,numnode, 'emptyaction','drop' );
end
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
rahnema1
توی راهنمای متلب نگاه کنید یک گزینه وجود داره به نام emptyaction که اگه اون را روی drop تنظیم کنید کلاسترهای اضافی حذف میشن در غیر این صورت گزینه پیش فرض روی error تنظیم شده که خطا میده
IDX=[];
while (numel(unique(IDX))<numnode)
[IDX,c,sumD]= kmeans(Train,numnode, 'emptyaction','drop' );
end
طیب الله :))
من به شما ایمان دارم!
چطوری میشه بهترین c رو انتخاب کرد؟
-
نقل قول: ساخت ماتریس تصادفی
نقل قول:
نوشته شده توسط
coronaa
طیب الله :))
من به شما ایمان دارم!
چطوری میشه بهترین c رو انتخاب کرد؟
من هم به شما ایمان دارم
اول به این آدرس یه نگاهی بیندازید. اگه به طور عادی نشد مجبورید با روشهای دیگه برید شاید تو هلپ متلب هم باشه
http://www.mathworks.com/help/stats/k-means-clustering.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};