رفتن به مطلب

انتخاب بهترین کروموزوم ها


فاطمه-زهرا

ارسال های توصیه شده

باز هم مشکل

 

میخوام خروجی حلقه قبل رو با k-means کلاستر کنم. باید سکانس های هر کروموزوم یا pop جداگانه کلاستر بشه. چون خروجی از نوع structure هست، k-means قبولش نمیکنه.

بنابراین اول به سلول تبدیلش کردم و بعد به ماتریس که مشکلی پیش نیاد ولی خطا میده! میگه تغییر نوع ممکن نیست!

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

خب چه کاریه اول structure می کنین، بعد دوباره به cell می خواین تبدیل کنین، بعد از اونم به ماتریس. مگه از اول ماتریس نیست، پس این روند رو برای چی طی می کنین، به صورت ماتریس هم که نمی تون کنار هم قرار بگیرن، چون همسایز نیستن. این دو خط به نظرتون درستن؟

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

TotalSequence استراکچر هست، اینجوری TotalSequence(Sequence) می تونم به استراکچر مقدار بدم، غیر از اون الان یه cell رو می خواین توی استراکچر قرار بدین، خب نمیشه.

  • Like 2
لینک به دیدگاه
  • پاسخ 50
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

اول به structure تبدیل کردم چون هر pop باید یه position و یه cost داشته باشه. تو position مقدار صفر و یک های معادل داده های اولیه میره و تو cost ارزش هر position برآورد میشه و در انتها بهترین cost ها انتخاب میشن.

الان اینجا برای totalsequence نوشته بود که نوعش structure هست ولی وقتی دیدم خطا میده چک کردم معلوم شد double هست. با این دستور، TotalSequence(Sequence).Position=mat2dataset(TotalSequence(Sequence).Position); به دیتا ست تبدیلش کردم که شاید k-means بخوندش. دیدم باز خطا میده.

ورودی k-means باید دیتاست باشه.

 

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

Error using dataset.dataset>throwUndefinedError

Too many output arguments.

 

Error in dataset/ctranspose (line 465)

function a = ctranspose(varargin), a = throwUndefinedError;

end

 

Error in internal.stats.removenan (line 41)

y = y';

 

Error in statremovenan (line 7)

[badin,wasnan,varargout{1:nargout-2}] =

internal.stats.removenan(varargin{:});

 

Error in kmeans (line 140)

[~,wasnan,X] = statremovenan(X);

 

Error in GA12 (line 68)

kmeans(TotalSequence(Sequence).Position,3)

 

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 2
لینک به دیدگاه
اول به structure تبدیل کردم چون هر pop باید یه position و یه cost داشته باشه. تو position مقدار صفر و یک های معادل داده های اولیه میره و تو cost ارزش هر position برآورد میشه و در انتها بهترین cost ها انتخاب میشن.

الان اینجا برای totalsequence نوشته بود که نوعش structure هست ولی وقتی دیدم خطا میده چک کردم معلوم شد double هست. با این دستور، TotalSequence(Sequence).Position=mat2dataset(TotalSequence(Sequence).Position); به دیتا ست تبدیلش کردم که شاید k-means بخوندش. دیدم باز خطا میده.

ورودی k-means باید دیتاست باشه.

 

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

Error using dataset.dataset>throwUndefinedError

Too many output arguments.

 

Error in dataset/ctranspose (line 465)

function a = ctranspose(varargin), a = throwUndefinedError;

end

 

Error in internal.stats.removenan (line 41)

y = y';

 

Error in statremovenan (line 7)

[badin,wasnan,varargout{1:nargout-2}] =

internal.stats.removenan(varargin{:});

 

Error in kmeans (line 140)

[~,wasnan,X] = statremovenan(X);

 

Error in GA12 (line 68)

kmeans(TotalSequence(Sequence).Position,3)

 

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

ورودی kmeans باید چجوری باشه؟

  • Like 1
لینک به دیدگاه

دیتاست رو که مطمئنم ولی شاید نوع دیگه هم بگیره.

من که تبدیل کردم به دیتاست، قبول نکرد.

 

 

k-means کارش دسته بندی دیتاهاست. ولی من هر جا دیده، داده هاش یا ماتریسی بوده یا تو اکسل. برای همین تبدیلش کردم.

  • Like 2
لینک به دیدگاه
دیتاست رو که مطمئنم ولی شاید نوع دیگه هم بگیره.

من که تبدیل کردم به دیتاست، قبول نکرد.

 

 

k-means کارش دسته بندی دیتاهاست. ولی من هر جا دیده، داده هاش یا ماتریسی بوده یا تو اکسل. برای همین تبدیلش کردم.

 

خب شما چی می خواین بدین به kmeans، چی رو واستون دسته بندی کنه؟

  • Like 1
لینک به دیدگاه

میخوام خروجی مرحله قبل رو بدم دیگه. یعنی سکانس ها ی هر کروموزوم یا pop رو بدم تا دسته بندی کنه. آخر کار هم کد ژنتیک، بهترین pop با بهترین دسته بندی سکانس رو انتخاب میکنه.

  • Like 2
لینک به دیدگاه
میخوام خروجی مرحله قبل رو بدم دیگه. یعنی سکانس ها ی هر کروموزوم یا pop رو بدم تا دسته بندی کنه. آخر کار هم کد ژنتیک، بهترین pop با بهترین دسته بندی سکانس رو انتخاب میکنه.

 

آقا ایمان من کماکان نتونستم کاری کنم. شما چطور؟ شرمنده

 

سلام

خب متوجه نمیشم چیکار دارین می کنین، چی بگم.

یه مثال از نحوه ای که می خواین استفاده از kmeans استفاده کنین میذارین، یه وردی فرضی بدین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

TotalSequence(Sequence) رو جاش یه مقدار بذارین، می خوام ببینم ورودی که می خواین به kmeans بدین چی هست.:a030:

  • Like 2
لینک به دیدگاه

مثلا همون دیتا ست solar رو که گذاشته بودم مگیریم.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

میگیم مثلا از ستون A تا ستون B اکسل رو انتخاب میکنیم. بعد میگیم kmeans کن کلیه سطرهای ستون 1:2 رو که معادل A تا B هستن به 4 دسته.

برای اینکه هر دسته درست نشون داده بشه، رنگهای مختلف گذاشتم.

  • Like 2
لینک به دیدگاه
مثلا همون دیتا ست solar رو که گذاشته بودم مگیریم.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

میگیم مثلا از ستون A تا ستون B اکسل رو انتخاب میکنیم. بعد میگیم kmeans کن کلیه سطرهای ستون 1:2 رو که معادل A تا B هستن به 4 دسته.

برای اینکه هر دسته درست نشون داده بشه، رنگهای مختلف گذاشتم.

 

ممنون، جالب بود.:a030:

 

نه منظورم خود kmeans نیست چیکار می کنه، میگم الان چیزی که توی ذهنتونه می خواین به kmeans بدین چیه، مثل قبل که عدد معمولی نیستن که راحت بگیم میدیم به kmeas واسمون خوشه بندی کنه. شما اونجا هم فکر کنم یه سکانس رو به kmeans می دادین، سکانس هاتون هم که تعداد المان های برابر هم که ندارن، بخواین با هم بدین، مقادیر هم که فقط سفر و یک هست.

  • Like 1
لینک به دیدگاه
  • 2 هفته بعد...

سلام.

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

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

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

kmeans فقط ورودی ماتریس میگیره به همین دلیل اول Pop ها رو که structure بودن به cell و بعد cell رو به ماتریس تبدیل کردم. بعد reshape کردم تا دو بعدی بشه اما باز هم خطا میداد. به نظرم رسید یه حلقه تعریف کنم که میانگین سکانس ها رو یکی یکی بگیره و بریزه توی یه ماتریس.

 

تو کد قبلی، سکانس های Pop جدید، روی قبلی قرار میگرفت. تو این کد این مشکل برطرف شد ولی آرایه هایی که شامل سکانس ها نمیشن صفر میشن.

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

به نظرم این روش خیلی طولانیه.

میخواستم اگه نظر بهتری دارین بفرمائین.

  • Like 3
لینک به دیدگاه
سلام.

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

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

 

kmeans فقط ورودی ماتریس میگیره به همین دلیل اول Pop ها رو که structure بودن به cell و بعد cell رو به ماتریس تبدیل کردم. بعد reshape کردم تا دو بعدی بشه اما باز هم خطا میداد. به نظرم رسید یه حلقه تعریف کنم که میانگین سکانس ها رو یکی یکی بگیره و بریزه توی یه ماتریس.

 

تو کد قبلی، سکانس های Pop جدید، روی قبلی قرار میگرفت. تو این کد این مشکل برطرف شد ولی آرایه هایی که شامل سکانس ها نمیشن صفر میشن.

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

به نظرم این روش خیلی طولانیه.

میخواستم اگه نظر بهتری دارین بفرمائین.

 

سلام

خواهش می کنم، ممنون.

 

زهرا خانوم روی چند تا دیتای محدود توضیح میدین قراره چیکار کنین، vec2mat رو واسه ی چی استفاده کردین؟

دیتای مدود منظورم اینه مثلا DecimalData فقط 5 تا درایه داشته باشه، خب اول می خواین این سکانس ها رو بدست بیارین، درسته؟

 

واسه ی چی عدد رندوم تولید می کنین، مگه ورودی ندارین؟

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

  • Like 3
لینک به دیدگاه

سلام

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

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

 

من از vec2mat استفاده نکردم بلکخ از cell2mat استفاده کردم چون kmeans نه structure رو میگیره و نه cell رو. پس خواستم به ماتریس تبدیل کنم که دیدم داده رو سه بعدی میکنه. بنابراین از reshape استفاده کردم تا دوبعدیش کنم.

  • Like 3
لینک به دیدگاه

الحمدلله بالاخره بعد از یه هفته مشکل kmeans حل شد. 5 تا کد جدید نوشتم ولی با عوض کردن فقط 1 خط از کد قبلی مشکل برطرف شد! اینم کدش:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دیتا بیس هم همون قبلیه فقط کمش کردم.

  • Like 3
لینک به دیدگاه

سلام

 

باز هم سوال دارم.

خروجی سطر 84 یه ماتریس دوبعدیه (چون اعداد رندوم هستن، ابعاد ماتریس هم متغیره). ستون های آخر بعضی از سطرها به دلیل اینکه هر کروموزومی، تعداد سکانس های مختلفی داره و من حلقه رو به صورتی تعریف کردم که بیشترین سکانس رو بشماره، صفر میشه. اما kmeans صفر رو کلاستر نمیکنه. این توضیح کار بود که مهم نیست.

 

مشکل اینجاست:سطر 79 تا 86

یه حلقه نوشتم که اعداد سطرها رو بگیره و صفرها رو حذف کنه ولی اینکارو نمیکنه.

میخواستم خواهش کنم بفرمائید اشکال کارم کجاست.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 2
لینک به دیدگاه
سلام

 

باز هم سوال دارم.

خروجی سطر 84 یه ماتریس دوبعدیه (چون اعداد رندوم هستن، ابعاد ماتریس هم متغیره). ستون های آخر بعضی از سطرها به دلیل اینکه هر کروموزومی، تعداد سکانس های مختلفی داره و من حلقه رو به صورتی تعریف کردم که بیشترین سکانس رو بشماره، صفر میشه. اما kmeans صفر رو کلاستر نمیکنه. این توضیح کار بود که مهم نیست.

 

مشکل اینجاست:سطر 79 تا 86

یه حلقه نوشتم که اعداد سطرها رو بگیره و صفرها رو حذف کنه ولی اینکارو نمیکنه.

میخواستم خواهش کنم بفرمائید اشکال کارم کجاست.

 

سلام

خواهش می کنم.

 

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

  • Like 1
لینک به دیدگاه

گفتم دیگه

مثلا داریم:

[0 0 0 0 7 5 8 2 ; 0 0 0 3 4 1 6 2 ; 0 0 3 5 3 2 4 4]

می خوام صفر های هر سطر حذف بشه. تو حلقه گفتم اگه صفر بود break کن و در غیر این صورت بریز تو یه متغیر.

ولی جواب نمیده!

  • Like 1
لینک به دیدگاه
گفتم دیگه

مثلا داریم:

[0 0 0 0 7 5 8 2 ; 0 0 0 3 4 1 6 2 ; 0 0 3 5 3 2 4 4]

می خوام صفر های هر سطر حذف بشه. تو حلقه گفتم اگه صفر بود break کن و در غیر این صورت بریز تو یه متغیر.

ولی جواب نمیده!

 

می خواین صفرهای این ماتریس مثلا حذف بشه، اینو که ساده تر هم می تونین بنویسین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 2
لینک به دیدگاه

×
×
  • اضافه کردن...