نمایش نتایج 1 تا 35 از 35

نام تاپیک: nb

  1. #1

    nb

    سلام.

    من قصد دارم train برنامه ای رو که با بیز نوشتم و کلی هست رو:

    naive_bayes = NaiveBayes.fit(trainsample, trainlabel);
    در یک حلقه ی for قرار بدم و به ازای هر داده ترینش کنم:


    f=numel(trainsample(:,1));

    for i=1:1:f

    naive_bayes(i,:)= NaiveBayes.fit(trainsample(i,:), trainlabel(i,:));

    end
    اما متاسفانه این خطا رو داره:
    Error using NaiveBayes.fit>gaussianFit (line 479) For Gaussian distribution, each class must have at least two observations.
    Error in NaiveBayes.fit (line 450) obj = gaussianFit(obj, training, gindex);

    میدونید چطور میتونم این خطا رو رفع کنم و این حلقه رو اجرا؟

  2. #2

    نقل قول: nb

    سلام،با یک رکورد داده که train کردن بی معنیه
    اصلا ما در train کردن با خصوصیت آماری کل نمونه سر و کار داریم نه یک رکورد داده

  3. #3

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    سلام،با یک رکورد داده که train کردن بی معنیه
    اصلا ما در train کردن با خصوصیت آماری کل نمونه سر و کار داریم نه یک رکورد داده
    آخه ببینید روال کارم اینطوریه که طی یه سری مراحل بیام داده های ترینم رو دونه دونه به کلاسیفایرام آموزش بدم.
    چطور میشه؟
    نباید کلی آموزششون بدم.
    باید دونه دونه یاد بگیرن.

  4. #4

    نقل قول: nb

    منظورتون را درست متوجه نشدم شاید راه حلش این باشه که شما بیایید در مرحله اول فقط یک داده، در مرحله دوم بیایید روی دو داده 1:2 مدل بزنید و در مرحله سوم 1:3 و همین طور شما f تا مرحله دارید و در نتیجه f تا مدل ایجاد می کنید

  5. #5

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    منظورتون را درست متوجه نشدم شاید راه حلش این باشه که شما بیایید در مرحله اول فقط یک داده، در مرحله دوم بیایید روی دو داده 1:2 مدل بزنید و در مرحله سوم 1:3 و همین طور شما f تا مرحله دارید و در نتیجه f تا مدل ایجاد می کنید
    نه، ببینید اول یه سری داده ی برچسب دار دارم و یه سری بدون برچسب.
    برچسب دارا رو ترین میکنم(معمولی).
    بدون برچسبارو هم با کلاسیفایرام لیبل میزنم(منتها این تو یه حلقه هست که دونه دونه لیبل میزنه، بعد از بین این برچسبایی که کلاسیفایرا بدست آوردن رای گیری میکنیم و تعداد برچسب بیشتر میشه برچسب داده ی جدیدمون.
    حالا که تصمیم گیریا تمومم شد، قراره دونه دونه این لیبل زده ها رو به انتهای اون ترینا(لیبل دارا ی قیلی اضافه کنیم) بعد دوباره کلاسیفایرا رو با این نمونه های ترین زیادی که الان در اختیار داریم(از قبل و طی همین مراحل) دونه دونه آموزششون بدیم و بایه سری داده ی جدید تستشون کنیم.
    الان میخوام اون دونه دونه آموزش دوم رو انجام بدم.

  6. #6

    نقل قول: nb

    دونه دونه لازم نیست لیبل زده بشه و می شه یکجا همه را بدون حلقه لیبل زد یعنی یک بار fit می کنید و برای لیبل زدن برای همه لیبل نخورده ها predict می کنید

  7. #7

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    دونه دونه لازم نیست لیبل زده بشه و می شه یکجا همه را بدون حلقه لیبل زد یعنی یک بار fit می کنید و برای لیبل زدن برای همه لیبل نخورده ها predict می کنید
    این کارو کردم اما استاد گفتن دونه دونه لیبل بزن اینطوری مشکل پیش میاد وگرنه خودم کلی ترین کردم.
    فرمودید اینکار ممکن نیست؟

  8. #8

    نقل قول: nb

    من کد شما را ندیدم اما از اون دو خط بالا معلومه کارتون اشتباهه چون به جای predict دارید از fit استفاده می کنید

  9. #9

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    من کد شما را ندیدم اما از اون دو خط بالا معلومه کارتون اشتباهه چون به جای predict دارید از fit استفاده می کنید
    فرقشون چیه؟

    با predicate چطور میشه نوشت؟

    من اینطوریه کدم:

    nb = NaiveBayes.fit(Ytrain, Traininglabel);
    y = nb.predict(Ytest);

    predicate رو که زمان ترین انجام نمیدیم.
    آخرین ویرایش به وسیله hhamidy : جمعه 29 خرداد 1394 در 15:52 عصر

  10. #10

    نقل قول: nb

    predict واسه لیبل زدنه دیگه

  11. #11

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    predict واسه لیبل زدنه دیگه
    پس اون زمان که آنلیبل میخواد لیبل زده بشه.

    نه زمانی که لیبلا رو داریم و فقط میخوایم آموزش بدیم.

  12. #12

    نقل قول: nb

    قرار بود به قول استادتون تک تک لیبل بزنید نه تک تک آموزش بدید گرچه تک تک لیبل زدن فرقی با یکجا لیبل زدن نداره ضمن اینکه توی حلقه for میذارید و سرعت را در لیبل زدن کاهش می دهید

  13. #13

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    قرار بود به قول استادتون تک تک لیبل بزنید نه تک تک آموزش بدید گرچه تک تک لیبل زدن فرقی با یکجا لیبل زدن نداره ضمن اینکه توی حلقه for میذارید و سرعت را در لیبل زدن کاهش می دهید
    نه استاد گفتن تک تک آموزش بده. اشتباه نوشتم بالاتر.
    منظورم ترین بود.

    لیبلو که تک تک میزنه، اون مشکلی نداره.

    گفتن تک تک این آموزش دوم رو انجام بده.

  14. #14

    نقل قول: nb

    شما کدی که نوشتید را بفرستید تا من اصلاح کنم

  15. #15

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    شما کدی که نوشتید را بفرستید تا من اصلاح کنم
    کل کد یا این بخش؟
    این بخش که همینه دیگه:

    f=numel(trainsample(:,1));

    for i=1:1:f

    naive_bayes(i,:)= NaiveBayes.fit(trainsample(i,:), trainlabel(i,:));

    end
    خطاشم اینه:



    Error using NaiveBayes.fit>gaussianFit (line 479) For Gaussian distribution, each class must have at least two observations.
    Error in NaiveBayes.fit (line 450) obj = gaussianFit(obj, training, gindex);

  16. #16

    نقل قول: nb

    کل کد را بفرستید

  17. #17

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    کل کد را بفرستید
    خصوصی میفرستم اگر ممکنه.

  18. #18

    نقل قول: nb

    ابتدا شما داده ها را به دو قسمت برچسب زده و برچسب نزده تقسیم کردید
    شما یه سری کلاسیفایر دارید همه ی اونها را با داده برچسب زده آموزش می دهید
    فقط برای یک داده بر چسب نزده با اون کلاسیفایرها predict می کنید و اون داده را از داده های برچسب نزده جدا و به داده های برچسب زده اضافه می کنید
    سپس دو باره کلاسیفایر ها را روی داده برچسب زده آموزش می دهید و الی آخر درسته؟

  19. #19

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    ابتدا شما داده ها را به دو قسمت برچسب زده و برچسب نزده تقسیم کردید
    شما یه سری کلاسیفایر دارید همه ی اونها را با داده برچسب زده آموزش می دهید
    فقط برای یک داده بر چسب نزده با اون کلاسیفایرها predict می کنید و اون داده را از داده های برچسب نزده جدا و به داده های برچسب زده اضافه می کنید
    سپس دو باره کلاسیفایر ها را روی داده برچسب زده آموزش می دهید و الی آخر درسته؟
    نه، ببینید اول یه سری داده ی برچسب دار دارم و یه سری بدون برچسب.
    برچسب دارا رو ترین میکنم(معمولی).
    بدون برچسبارو هم با کلاسیفایرام لیبل میزنم(منتها این تو یه حلقه هست که دونه دونه لیبل میزنه، بعد از بین این برچسبایی که کلاسیفایرا بدست آوردن رای گیری میکنیم و تعداد برچسب بیشتر میشه برچسب داده ی جدیدمون.
    حالا که تصمیم گیریا تمومم شد، قراره دونه دونه این لیبل زده ها رو به انتهای اون ترینا(لیبل دارا ی قبلی اضافه کنیم) بعد دوباره کلاسیفایرا رو با این نمونه های ترین زیادی که الان در اختیار داریم(از قبل و طی همین مراحل) دونه دونه آموزششون بدیم و بایه سری داده ی جدید تستشون کنیم.
    الان میخوام اون دونه دونه آموزش دوم رو انجام بدم.

  20. #20

    نقل قول: nb

    والا من از این توضیحات چیزی سر در نمیارم اگه بتونید یه مثال با چند تا داده کوچک عددی همین جا بزنید
    لطفا یه جدول کوچک همین جا بذارید با اعداد داخلش و روی اون مثال بزنید

  21. #21

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    والا من از این توضیحات چیزی سر در نمیارم اگه بتونید یه مثال با چند تا داده کوچک عددی همین جا بزنید
    لطفا یه جدول کوچک همین جا بذارید با اعداد داخلش و روی اون مثال بزنید
    من فقط تصمیم دارم ترینم داخل حلقه باشه.
    نمیدونم راستش چطوری مثال بزنم.

  22. #22

    نقل قول: nb

    نقل قول نوشته شده توسط hhamidy مشاهده تاپیک
    من فقط تصمیم دارم ترینم داخل حلقه باشه.
    نمیدونم راستش چطوری مثال بزنم.
    اگه توضیح از خودتونه بیشتر و واضح تر توضیح بدید و اگه از استادتونه ازشون بخواهید مفصل تر و واضح تر توضیح بدهند

  23. #23

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    اگه توضیح از خودتونه بیشتر و واضح تر توضیح بدید و اگه از استادتونه ازشون بخواهید مفصل تر و واضح تر توضیح بدهند
    اون خب یه برنامه ی کلی هستش از یه روشی خاص.
    توضیح دادم خدمتتون دیگه.

    فقط یه چیزی که هست اینه که میخوام اون خطوطی که دیدید برای ترین داده ها، داخل یه حلقه باشه و دونه دونه بگیردشون.

  24. #24

    نقل قول: nb

    اگه صلاح دونستید بیشتر توضیح بدید. دارم جدی میگم

  25. #25

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    اگه صلاح دونستید بیشتر توضیح بدید. دارم جدی میگم
    خواهش می کنم.
    فکر کردم خسته میشید.

    خب یه سری داده داریم که از استخراج ویژگی بدست اومدن.
    همون خطای اول.

    اینا رو یه تعدادشونو با تعداد صفر و یک برابر که مشکلی نباشه تو ترین و تستشون بعد از کاهش بعد به کلاسیفایرا میدیم.که شما نظرتون اینه که این داده ها خراب و نویز هستن.

    یه تعداد که ترین شدن یه تعداد دیگه هم که بدون لیبل هستن رو دونه دونه لیبل میزنیم.
    بعد همین دونه دونه رو (یعنی به ازای هر دونه ای که دارن تصمیم میگیرن) خروجیا رو میذاریم کنار هم تو یه بردار بعد با تابع مد بیشترین تعداد تکرارشونو میگیریم هر چی بود اون میشه لیبلی که تصمیم گرفتن و اتفاق نظر دارن.
    بعد این داده های آنلیبل و این برچسباشون رو که الان زدیم اضافه می کنیم به ترینای قبلیمون و در واقع دوباره آموزششون میدیم.

    حاال یه حجم زیاد ترین داریم میخوایم دونه دونه به کلاسیفایرا آموزششون بدیم تا آروم آروم یاد بگیرن.
    این مرحله رو میخوام بدونم که چطور میشه دونه دونه آموزش داد.
    حالا تست بعدش رو هم بعدا تست میکنم و توضیح میدم.

  26. #26

    نقل قول: nb

    من دارم میگم کاری را که قراره انجام بدید و الان می خواهید انجام بدید به صورت مفصل توضیح بدید یعنی اون کاری که استادتون از شما خواسته و نمیدونید چه طور باید انجام بدید را توضیح بدید به مراحل قبل و بعدش کاری نداریم

  27. #27

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    من دارم میگم کاری را که قراره انجام بدید و الان می خواهید انجام بدید به صورت مفصل توضیح بدید یعنی اون کاری که استادتون از شما خواسته و نمیدونید چه طور باید انجام بدید را توضیح بدید به مراحل قبل و بعدش کاری نداریم
    گفتم دیگه.

    این مرحله ی ترین رو هم دونه دونه ترین کنم به کلاسیفایرا.

    بعد از اینکه این نمونه های ترین زیادمون رو بدست آوردیمف حالا از اول باید بدیمشون به کلاسیفایرا.
    منتها باید دونه دونه ترین بشن تا آروم یاد بگیرن.

  28. #28

    نقل قول: nb

    بازم نشد اینجوری فایده نداره

  29. #29

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    بازم نشد اینجوری فایده نداره
    چی شو بد میگم؟
    تا کجاشو متوجه شدید؟

    الان اون حلقه ای که میبینید تو خط های 79 تا 92 رو نوضتم ولی اجراش مشکل داره.

    وقتی همین خط ها ی کد تو حلقه نیستن جواب میده و خطا نداره ااما من میخوام تو حلقه باشه که دونه دونه یاد بگیرن .
    مثل همون کدهام منتها بدون خطا.

  30. #30

    نقل قول: nb

    میگم بذارید سر فرصت در مورد همون قسمت از استادتون بپرسید که چه طور تک تک باید اضافه بشن یا train بشند بعد خبر بدید

  31. #31

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    میگم بذارید سر فرصت در مورد همون قسمت از استادتون بپرسید که چه طور تک تک باید اضافه بشن یا train بشند بعد خبر بدید
    چی شو بد میگم؟
    تا کجاشو متوجه شدید؟

    الان اون حلقه ای که میبینید تو خط های 79 تا 92 رو نوضتم ولی اجراش مشکل داره.

    وقتی همین خط ها ی کد تو حلقه نیستن جواب میده و خطا نداره ااما من میخوام تو حلقه باشه که دونه دونه یاد بگیرن .
    مثل همون کدهام منتها بدون خطا.

  32. #32

    نقل قول: nb

    لطفا مفصل توضیح بدید اصلا فکر کنید من هیچ چیزی بلد نیستم و دارید واسه یه مبتدی توضیح می دهید من کد را نمی گم توضیح بدید ، کاری که استاد از شما خواسته را مفصل توضیح بدید

  33. #33

    نقل قول: nb

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    لطفا مفصل توضیح بدید اصلا فکر کنید من هیچ چیزی بلد نیستم و دارید واسه یه مبتدی توضیح می دهید من کد را نمی گم توضیح بدید ، کاری که استاد از شما خواسته را مفصل توضیح بدید
    خیالتون راحت باشه، من با کسی که بلد نیست اصلا صحبتی ندارم.

    فکر میکردم میخواید مراحل کار رو بدونید.

    چی بگم دیگه.

    گفنم که ترین رو به ازای هر داده انجام بده و ببرمش داخل حلقه تا دونه دونه داده های ترین رو پیمایش کنه یعنی بخونه و یاد بگیره.
    منم داخل حلقه قرارش دادم ولی در مورد بیز و کی ان ان خطا داره.

    اگر نگاه کنید به اون کد ساده(اون خط بی حلقه) وقتی اجرا میشه (الان برای یکیشون) تنها یه استراکچر به ما میده:

    naive_bayes = NaiveBayes.fit(trainsample, trainlabel);

    الان
    naive_bayes
    یه استراکچر هست، من نمیدونم چطور اون رو داخل حلقه بذارم!که برای هر نمونه یاد بگیره.
    یعنی بیاد مثلا نمونه ی اول یاد بگیره بعد نمونه ی دوم یاد بگیره و ... همینطور آروم آروم.
    حالا نمیدونم یه همچین استراکچری چطور میره داخل یه حلقه.



    دیگه نمیدونم چی بگم.

    میخواید شما قسمتیش رو که گنگ میگم بگید تا از اون به بعد توضیح بدم.
    آخرین ویرایش به وسیله hhamidy : جمعه 29 خرداد 1394 در 23:29 عصر

  34. #34

    نقل قول: nb

    نقل قول نوشته شده توسط hhamidy مشاهده تاپیک
    نه، ببینید اول یه سری داده ی برچسب دار دارم و یه سری بدون برچسب.
    برچسب دارا رو ترین میکنم(معمولی).
    بدون برچسبارو هم با کلاسیفایرام لیبل میزنم(منتها این تو یه حلقه هست که دونه دونه لیبل میزنه، بعد از بین این برچسبایی که کلاسیفایرا بدست آوردن رای گیری میکنیم و تعداد برچسب بیشتر میشه برچسب داده ی جدیدمون.
    حالا که تصمیم گیریا تمومم شد، قراره دونه دونه این لیبل زده ها رو به انتهای اون ترینا(لیبل دارا ی قبلی اضافه کنیم) بعد دوباره کلاسیفایرا رو با این نمونه های ترین زیادی که الان در اختیار داریم(از قبل و طی همین مراحل) دونه دونه آموزششون بدیم و بایه سری داده ی جدید تستشون کنیم.
    الان میخوام اون دونه دونه آموزش دوم رو انجام بدم.
    توضیحاتی که میگم مفصل بیان کنید اینها هستند. اگه به صورت یه جدول بکشید هم خوبه. همین توضیحاتی که دادید مثلا در 5 خط این دفعه در 10 خط توضیح بدید

  35. #35

    نقل قول: nb

    سلام.

    یکی از دوستان این تکه کد رو اجرا می گیرن با متلب:

    دیتا:

    http://www.uplooder.net/cgi-bin/dl.c...61651b1433268c


    کد:


    کد:

    function bz
    load matlab.mat
    data=Ytrain;
    label=Traininglabel;
    for i=1:10
    n=NaiveBayes.fit(data(i:i+1,:), label(i:i+1));
    out{i,1}=n;
    end
    save out.mat out;



    مشکل اینجاست که نمیدونم چرا در خروجی out چیزی نمایش داده نمیشه.اما وقتی مینویسم {1,1}out خروجی یه استراکچر هست.
    توقع میره که الان خروجی out حاویه 10 استراکچر باشه اما برای من چیزی نمایش داده نمیشه و out خالیه!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •