ساخت قوانین فازی از روی داده ها برای دسته بندی داده ها
در موارد زیادی ما یک سری داده داریم و به دنبال پیدا کردن یک سری قوانین بر روی این داده ها می باشیم تا بتوانیم داده های بعدی را پیش بینی کنیم
در این کار ما از داده های دیتاست iris استفاده کرده ایم . این دیتاست شامل 150 نمونه می باشد که هر نمونه داده دارای 4 ویژگی می باشد و کل داده ها در سه کلاس دسته بندی شده اند
هدف ما یافتن قوانین فازی بهینه بر روی این دیتا می باشد . قوانینی که با استفاده از انها بتوانیم به ازای ورودی جدید ، کلاس آن را تشخیص دهیم
بنابراین هدف ما یافتن قوانین فازی بهینه با توجه به دیتا می باشد. یعنی یک مجموعه فازی بهینه با توجه به داده ها ایجاد میکنیم
روال کار به این صورت می باشد که :
- ابتدا داده ها را نرمال میکنیم.
- یک مجموعه فازی برای هر متغیر تعریف می کنیم.(برای هر متغیر سه تابع عضویت low و mid و high تعریف میکنیم)
- با توجه به اینکه داده ما دارای 4 ویژگی می باشد ، تمام قوانین ممکن با 4 ویژگی را می سازیم.
- در نهایت نیز با توجه به روشهای موجود در مقالات ، قوانین بهینه را انتخاب میکنیم و امتیاز دهی به قوانین را انجام میدهیم
در نهایت نیز خروجی برنامه بصورت زیر می باشد:
دقت کنید که ما 4 ویژگی داشتیم (Attribute) و برای هر ویژگی یا متغیر 3 تابع عضویت (MF) تعریف کرده بودیم .
قوانین بهینه به ازای Q=1 نیز بصورت زیر می باشد با انتخاب Q=1 از هر کلاس 1 قانون انتخاب میشود:
1 2 1 1 1
2 2 2 2 2
2 2 3 3 3
که بصورت زیر تفسیر میشوند:
If Att1 is MF1 and Att2 is MF2 and Att3 is MF1 and Att4 is MF1 Then Class is 1
If Att1 is MF2 and Att2 is MF2 and Att3 is MF2 and Att4 is MF2 Then Class is 2
If Att1 is MF2 and Att2 is MF2 and Att3 is MF3 and Att4 is MF3 Then Class is 3
بنابراین ما قوانین فازی بهینه ای را یافته ایم که میتوانیم با توجه به این قوانین هر ورودی جدید را کلاسیفای کنیم