توضیحات
Weighting fuzzy classification rules using receiver operating characteristics (ROC) analysis
ترجمه فارسی موضوع مقاله: قوانین طبقه بندی وزن دهی فازی با استفاده از آنالیز ویژگی های عوامل گیرنده RoC
شرح مختصری بر روند کلی برنامه:
ابتدا با استفاده از تابع: importfile(‘data.xlsx’)دیتاست موجود را در برنامه بارگذاری میکنیم
سپس با استفاده از تابع mscale(data,1,0); داده های موجود در دیتاست را نرمال میکنیم در بازه 0 و 1.
در مرحله بعد با تابع Generating_rules() قوانین را تولید میکنیم که تعداد انها 15470 قانون است که انها را با در نظر گرفتن 13 ویژگی واینکه هر ویژگی میتواند یکی از 14 تابع عضویت موجود را داشته باشد و اینکه قوانین 1 و یا دو مقدم (antecident) می توانند داشته باشند بدست می ایند.
توابع عضویت فازی طبق گفته مقاله در بازه 0 و 1 و به صورت زیر تعریف شده اند
…
یعنی برای 4 ورودی تابع عضویت تعریف کرده ایم که ورودی اول دو تابع عضویت دارد، ورودی دوم سه تابع عضویت، وردی سوم چهار تابع عضویت و درنهایت ورودی چهارم،پنج تابع عضویت مطابق شکل بالا دارند.یعنی در نهایت 14 تابع عضویت برای ورودی ها داریم.
خروجی نیز یک عدد میباشد که کلاس ورودی را مشخص میکند و توابع عضویت ان بصورت زیر تعریف شده اند
…
تمام توابع عضویت در داخل فایل با نام NeedFis.fis ذخیره شده اند
برای مشاهده توابع عضویت میتوانید بصورت زیر عمل کنید
در CommandLine عبارت Fuzzy را تایپ کنید انگاه صفحه ای مانند شکل زیر باز میشود
…
در این کادر از منوی File بر روی گزینه Import کلیک کنید و از منوی ان گزینه FromFile را انتخاب کنید و سپس در کادر open فایل NeedFis.fis را انتخاب کنید.
در مرحله بعد با تابع Find_Class_Of_Rule کلاس هر قانون را تشخیص میدهیم.این تابع به این شکل کار میکند که fis ای که توابع عضویت را در ان تعریف کردهایم را باز میکند و پارامتر های هر تابع عضویت را در ارایه ای قرار میدهد برای اینکه با استفاده از انها ها را محاسبه کنیم. سپس به ازاء تمام قوانین ،روی هر قانون تمام sample ها را بررسی میکند و را برای هر کدام محاسبه میکند و با توجه به فرمول:
و فرمول
confidence را به ازاء 1و2و3 محاسبه میکنیم هر کدام بیشتر شد کلاس ان قانون همان است.
در مرحله بعد با تابع: evaluation_measures مقدار
را برای هر قانون محاسبه میکنیم.
سپس قوانین را بر اساس کلاسشان به 3 گروه دسته بندی میکنیم
و هر گروه را بر اساس مرتب میکنیم و از هر گروه Qتای اول را که بیشترین را دارند با تابع FilalRuleBase انتخاب میکنیم.
در پایان نیز تمام sample را با Q*Mقانون بدست امده ارزیابی میکنیم و کلاس واقعی انها را با کلاس بدست امده از مجموعه قوانین مقایسه میکنیم و دقت کارمان را بررسی میکنیم.
قوانین بدست امده به ازائ Q های متفاوت:
Result =
Q=1 0.9270
Q=2 0.9045
Q=3 0.9101
Q=4 0.9382
Q=5 0.9438
Worst Accuracy Is :0.90449 With Q= 2
Best Accuracy Is :0.94382 With Q= 5
توضیحات کدها:
ابتدا داده ها رو از فایل data.xlsx میخونیم
clc;
صفحه خروجی را پاک میکند
clear;
متغیرهای از قبل تعریف شده را پاک میکند
disp(‘Loading….Please Wait…’);
رشته ….Please Wait… را چاپ میکند
Q=2;
Class_Num=3;%Number Of Class
دیتاست wine تعداد کلاسهایش 3 میباشد
بخشی از گزارش کدها فقط در این جا آمده است.
در پایان نیز مقدار Result را بر حسب ستون اول بصورت نزولی مرتب میکینم
Result=sortrows(Result,-1);
ماتریس Result به صورت زیر می باشد
در آخر نیز بهترین میزان دقت و بدترین میزان دقت را چاپ میکنیم.
یعنی سطر اول ماتریس Result و سطر اخر ماتریس Result را چاپ میکنیم به این معنی که با Q ای که در سطر اول ماتریس Result داده شده بیشترین میزان دقت توسط قوانین انتخاب شده بدست امده و با Q ای که در سطر اخر ماتریس Result داده شده کمترین میزان دقت توسط قوانین تولید شده حاصل شده است.
توضیح تابع :importfile
این تابع با استفاده از دستور xlsread فایل با نام data.xlsx را میخواند و مقادیر آن را در یک ماتریس به نام Data قرار میدهد.
توضیح تابع mscale:
این تابع عمل نرمال سازی داده ها را انجام میدهد بعنوان ورودی به این تابع ماتریس data را میدهیم که میخواهیم مقادیر ان نرمال شود و بازه ای که میخواهیم نتایج در ان بازه باشند یعنی 0 و 1 را میدهیم بنابراین Upper=1 و Lower=0 می شود
برای نرمال سازی از فرمول زیر استفاده شده است
…
Data یک ماتریس 178سطری و 14ستونی است
ابتدا ماکزیمم هر ستون داده ها را پیدا کرده در متغیر MaxV قرار میدهیم، MaxV یک ماتریس 1 در 14 است
سپس مینیمم داده ها را پیدا کرده در MinV قرار میدهیم، MinV ماتریس 1 در 14 است
سپس با فرمول زیر داده ها را به بازه [Lower Upper ] یعنی [0,1]میبریم
Lower +[( Upper-Lower)/( MaxV-MinV)]* (Data- MinV)
توضیح تابع Generating_rules :
این تابع ساخت قوانین را انجام میدهد به این ترتیب که قوانین یا دو مقدم(Antecident ) دارند یا یک مقدم دارند
ابتدا قوانین با دو مقدم را می سازد
به این ترتیب که 14 ویژگی داریم و 14 تابع عضویت ، هر قانون به این شکل ساخته میشود که مثلا میگوییم ویژگی اول تابع عضویت اول را دارد ، و ویژگی دوم تابع عضویت اول را دارد،
قانون بعدی به این شکل میشود که ویژگی اول تابع عضویت اول را دارد و ویژگی دوم تابع عضویت دوم را دارد
به همین ترتیب تمام حالات ممکن برای اینکه یک ویژگی متعلق به کدام تابع عضویت باشد را در نظر میگیریم
…
توضیح تابع Find_Class_Of_Rule
تابع Find_Class_Of_Rule کلاس هر قانون را تشخیص میدهیم.این تابع به این شکل کار میکند که fis ای که توابع عضویت را در ان تعریف کردهایم را باز میکند و پارامتر های هر تابع عضویت را در ارایه ای قرار میدهد برای اینکه با استفاده از انها ها را محاسبه کنیم. سپس به ازاء تمام قوانین ،روی هر قانون تمام sample ها را بررسی میکند و را برای هر کدام محاسبه میکند و با توجه به فرمول:
توضیح تابع evaluation_measures
پس از مشخص شدن کلاس هر قانون، هر قانون را با توجه به توابع عضویت ارزیابی میکنیم و این ارزیابی توسط تابع: evaluation_measures انجام میشود که این تابع مقدار
را برای هر قانون محاسبه میکنیم. و مقدار e(R) هر قانون که محاسبه شد ان را در ستون ششم ماتریس Rules قرار میدهیم.یعنی در واقع ستون ششم ماتریس Rules مقدار e(R) هر قانون را نشان میدهد.
توضیح تابع FilalRuleBase
داده ها را به 3 گروه تقسیم کرده ایم و از هر گروه Qتای اول را که بیشترین را دارند با تابع FilalRuleBase انتخاب میکنیم.
توضیح تابع weight_specification_methods:
تمام sample را با Q*Mقانون بدست امده با استفاده از تابع weight_specification_methods ارزیابی میکنیم و کلاس ان را بدست می اوریم و در ستون هفتم ماتریس FinalRule قرار میدهیم .
در اینجا فقط بعضی از قسمتهای گزارش و توضیح کد آمده است.
گزارش شامل 12صفحه در قالب ورد است.
کلید واژه :
Rule weight, ROC analysis, Pattern classification, Fuzzy systems,Data mining
شبیه سازی مقاله Weighting fuzzy classification rules using receiver operating characteristics (ROC) analysis
توسط کارشناسان سایت متلبی تهیه شده است و به تعداد محدودی قابل فروش می باشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقا مطابق خواسته شما نمی باشد،. با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.