PDA

View Full Version : سوال: رسم درخت تصمیم در #C



88462123
پنج شنبه 04 فروردین 1390, 00:03 صبح
با سلام و تبریک به مناسبت سال جدید.
چطور میشه یک درخت، مثلاً درخت تصمیم رو در محیط #C اونم در زمان اجرا رسم کرد؟گفتم زمان اجرا چون داده هایی که درخت بر اساس اون رسم میشه در زمان اجرا از ورودی گرفته میشه.
درخت باید به فرمی مثل تصویر ضمیمه، در زمان اجرا به نمایش در بیاد.
67814

http://barnamenevis.org/images/misc/pencil.png

sinashahab
پنج شنبه 04 فروردین 1390, 17:01 عصر
ببینم فقط درختت همین شکل خاص هست یا ممکن هست رشد کنه و بزرگ بشه ؟:لبخند:

اگه ثابت هست میشه یه کاریش کرد

88462123
پنج شنبه 04 فروردین 1390, 22:47 عصر
نه ثابت نیست.بسته به داده های ورودی، درخت ساخته میشه.ممکنه کوچکتر یا بزرگتر بشه.

sinashahab
پنج شنبه 04 فروردین 1390, 23:15 عصر
تا حالا متغییرشو تست نکردم ولی میتونی این کارو بکنی :

یه تصویر مثل بالا رو پایه ی کارت قرار بدی که توش نوشته نباشه و بعد با کلاس های مخصوص نقاشی:لبخند: بگیری تو مختصات مشخص خودت اطلاعات رو بنویسی و اگه هم ادامه داشت درخته یه ..... آخرش بزاره و بعد اگه رو سه نقطه کلیک کرده ، یه باز دیگه اطلاعات جدید پر بشه و نمایش داده بشه/ کلا این روش یه کم زیاد کار میبره .

Amir Oveisi
جمعه 05 فروردین 1390, 00:54 صبح
اینو تست کنید:
http://www.koders.com/csharp/fid9E8EC65EAAD446E3B17337BF264E1958C49C0B25.aspx?s =cdef%3atree#L15

m.soleimani
جمعه 05 فروردین 1390, 08:05 صبح
با سلام و تبریک به مناسبت سال جدید.
چطور میشه یک درخت، مثلاً درخت تصمیم رو در محیط #C اونم در زمان اجرا رسم کرد؟گفتم زمان اجرا چون داده هایی که درخت بر اساس اون رسم میشه در زمان اجرا از ورودی گرفته میشه.
درخت باید به فرمی مثل تصویر ضمیمه، در زمان اجرا به نمایش در بیاد.
67814

http://barnamenevis.org/images/misc/pencil.png

شی گرایی
شما برای هر موجودیتی که دارین یه کلاس بنویسین « منظور تنظیمات پیش‌فرض شما برای نشون دادن هر نوع به شکل دل‌خواه شماست » حالا هر زمان که یه مقدار جدید اضافه شد به درخت مورد نظرتون اون کلاسی که بهش مربوط هست برای رسم کردنش رو صدا کنید موفق باشید./

88462123
جمعه 05 فروردین 1390, 10:41 صبح
ببینید برنامه ی من بایستی با گرفتن یک فایل text به فرم زیر، درخت مربوط به اون رو به نحوی در خروجی نمایش بده.

Outlook, Temperature, Humidity, Wind, PlayTennis
Sunny, Hot, High, Weak, No
Sunny, Hot, High, Strong, No
Overcast, Hot, High, Weak, Yes
Rain, Mild, High, Weak, Yes
Rain, Cold, Normal, Weak, Yes
Rain, Cold, Normal, Strong, No
Overcast, Cool, Normal, Strong, Yes
Sunny, Mild, High, Weak, No
Sunny, Cool, Normal, Weak, Yes
Rain, Mild, Normal, Weak, Yes
Sunny, Mild, Normal, Strong, Yes
Overcast, Mild, High, Strong, Yes
Overcast, Hot, Normal, Weak, Yes
Rain, Mild, High, Strong, No

من برنامه رو به نحوی نوشتم که پس از استخراج اطلاعات درخت رو به صورت کلاسهای تو در تو بسازه.یعنی مثلاً برای درخت نمونه ای که در ابتدا آوردم،ابتدا کلاس outlook ساخته میشه که درون این کلاس سه کلاس Sunny,Overcast,Rain قرار داره و این روال تا رسیدن به مقادیر Yes,No که برگ های این درخت محسوب میشه ادامه داره.سعی کردم برنامه رو به صورت شی گرایی بنویسم تا در رسم درخت مشکل کمتری پیدا کنم.ولی مشکل اینجاست که درخت دائماً تغییر می کنه و بر اساس مقادیر ورودی مختلف باید درخت مناسب با آن ترسیم بشه.اگه نیازی هست در مورد درخت تصمیم(Decision Tree)بیشتر توضیح بدم؟