آموزش انجام پایان نامه داده کاوی با زبان R

از مجموعه مقالات آموزش تخصصی انجام پایان نامه ، در این مقاله به آموزش انجام پایان نامه در حوزه داده کاوی می پردازیم. متن زیر نمونه ای از گزارش اولیه برای انجام پایان نامه داده کاوی است که هدف انجام پایان نامه داده کاوی با زبان R است. امیدواریم این مقاله نیز از مجموعه مقالات آموزش تخصصی انجام پایان نامه مورد اقبال شما عزیزان و همراهان موسسه ادیب مشاور قرار گیرد.

 

انجام پایان نامه ارشد و دکتری موسسه ادیب مشاورمقدمه

زبان R، یک زبان برنامه­نویسی و محیط نرم­افزاری برای محاسبات آماری و تحلیل داده است. امروزه این زبان به­عنوان یک استاندارد غیررسمی برای کارهای آماری و داده­کاوی مطرح است. این زبان در حقیقت، نسخه متن­باز نرم­افزار S است. زبان R توسط نرم­افزاری به همین نام که شامل مفسر زبان و محیط اسکریپت­نویسی است پشتیبانی می­گردد.

2.1 تعریف زبان R

زبان R، یک زبان برنامه­نویسی است که برای محاسبات آماری، داده­کاوی و نمایش گرافیکی اطلاعات آماری استفاده می­شود. این زبان یک پیاده­سازی از زبان S است که توسط جان چمبرز در آزمایشگاه بل (bell labs) با ترکیب منطق معنایی lex (semantic lex) که خود برگرفته از زبان Scheme است، پایه­گذاری شد.

3.1 تاریخچه زبان R

پروژه R در سال 1991 برای اولین بار به­عنوان یک پروژه تحقیقاتی توسط راس ایهاکا (Ross Ihaka) و رابرت جنتلمن (Robert Gentleman) نوشته شد و در حال حاظر توسط گروهی از متخصصان علم آمار به نام تیم "هسته نرم­افزار R" با وب­سایتی به آدرس www.r-project.org در حال توسعه فعال می­باشد. نرم­افزار R، یک نرم­افزار متن­باز بوده و تحت اجازه­نامه عمومی همگانی گنو(Geno) عرضه می­شود.

4.1 طراحی زبان R

نرم­افزار R به گونه­ای طراحی شده، که بی­شباهت به زبان نرم­افزار S که توسط جان چمبرز (John Chambers) و دیگر افراد در آزمایشگاه­های بل توسعه یافته بود، نباشد.

نسخه تجاری نرم­افزار S با قابلیت­های بیشتر، توسط موسسه علوم آماری به­عنوان نرم­افزار Splus توسعه یافته و به بازار عرضه شده است، بعدها این نسخه نرم­افزار Splus، توسط شرکت Insightful خریداری شده و اکنون نیز متعلق به TIBCO Spotfire می­باشد. نرم­افزار R و نرم­افزار Splus را می­توان به­عنوان دو پیاده­سازی زبان نرم­افزار S در نظر گرفت.

نرم­ افزار R به صورت رایگان در دسترس بوده و تحت پروانه عمومی همگانی گنو از بنیاد نرم­افزارهای آزاد (Free Software Foundation) توزیع می­گردد. باینری­های آماده اجرای نرم­افزار R برای سیستم­عامل­های ویندوز (windows)، مکینتاش (Mac OS X) و لینوکس (Linux) در دسترس می­باشد.

کد منبع (Source code) نیز قابل دانلود بوده و می­تواند برای سیستم­عامل­های دیگر کامپایل (compile) شود.

5.1 ویژگی­ های زبان R

زبان R، حاوی محدوده گسترده­ای از تکنیک­های آماری و قابلیت­های گرافیکی است. در محیط R، کدهای C، C++ و Fortran قابلیت اتصال و فراخوانی هنگام اجرای برنامه را دارند و کاربران خبره می­توانند توسط کدهای C، مستقیما اشیا R را تغییر دهند. از جمله این تکنیک­های آماری می­توان مدل­سازی خطی و غیرخطی، آزمون­های کلاسیک آماری، تحلیل سری­های زمانی، رده­بندی، خوشه­بندی و ... را نام برد.

گرچه نرم­افزار T اغلب به­منظور انجام محاسبات آماری به­کار می­رود، اما این نرم­افزار قابل به­کارگیری در محاسبات ماتریسی است و در این زمینه، همپای نرم­افزارهایی چون MATLAB عمل می­کند. همچنین نرم­افزار R، نرم­افزار قدرتمندی برای ایجاد اشکال گرافیکی و نمودارها است.

6.1 محبوبیت زبان برنامه­ نویسی R

برآوردها نشان می­دهد زبان برنامه­نویسی R در مقایسه با نرم­افزارهای تحلیلی و آماری مثل SPSS، MATLAB و SAS از محبوبیت بیشتری در بین دانشمندان و پژوهشگران برخوردار است.

رابرت مونچن، آماردانی که زبان برنامه­نویسی R را تدریس می­کند اعلام کرده است این زبان در سال 2015 به محبوب­ترین زبان و محیط نرم­افزاری برای عملیات تحلیلی پژوهشی تبدیل شده است. وی با بررسی و تحلیل میزان استفاده از این نرم­افزارها در پژوهش­های علمی و میزان ارجاعات به این نرم­افزارها در فروم­ها و اتاق­های گفتگو دست به این نتیجه­ گیری زده است.

رابرت مونچن از سال 1995 به بعد کار برآورد محبوبیت نرم­افزارهای پژوهشی را بر عهده دارد. او دریافته است که میزان استفاده از نرم­افزار SPSS در سال 2007 در اوج خود قرار داشته است و از آن زمان به بعد روند کاهشی به خود گرفته است. در مقابل، استفاده از زبان برنامه­نویسی R در این مدت با سرعت بیشتری افزایش یافته است. رابرت یکی از آماردانان شاغل در دانشگاه tensi در ایالت فلوریدا آمریکا است که این زبان را تدریس می­کند. وی در سال­های قبل از 2009 که نرم­افزار SPSS از سوی IBM خریداری نشده بود نیز عضو هیئت مشاوران شرکت SPSS بود.

این نکته قابل ذکر است که تمامی فعالیت­هایی را که می­توان با SPSS انجام داد در R نیز قابل انجام است.

7.1 نیم ­نگاهی به امکانات زبان برنامه ­نویسی R

به­طور کلی امکانات نرم­ افزار R در قالب موارد زیر خلاصه می­شود:

  • امکانات گرافیکی برای تجزیه و تحلیل داده­ها و رسم نمودار
  • امکان ذخیره، بازیابی و دست­کاری داده­ها
  • زبان برنامه­نویسی ساده و پیشرفته شامل عبارت­های شرطی، حلقه­ها و توابع بازگشتی و ...
  • مجموعه­ای قوی از عملگرهای محاسباتی، آرایه­ها و ماتریس­ها
  • بسته­ های نرم­افزاری قدرتمند برای تجزیه و تحلیل آماری
  • کتابخانه­های خاص چند منظوره برای انجام عملیات تحلیلی در زمینه­های مختلف علمی
  • دارای مستندات فرمت بندی­شده و منظم برای استفاده از زبان و کتابخانه­های مرتبط
  • کتابخانه ­های انجام عملیات داده­کاوی و یادگیری ماشین مانند دسته­بندی، خوشه­بندی، تحلیل شبکه­های اجتماعی، یادگیری تقویتی و ...
7.1 نتیجه ­گیری

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

1.2 مقدمه

پس از آن‌که در فصل قبل به معرفی زبان R و کاربردهای آن پرداخته شد، در این فصل مرور مباحث داده­کاوی که یکی از مهم­ترین امکانات زبان R می­باشد، ارائه خواهد شد.

2.2 فرآیند داده ­کاوی

در این قسمت به ارائه و معرفی فرآیند و الگوریتم­های داده­کاوی پرداخته خواهد شد. ورودی، خروجی و نحوه عملکرد الگوریتم­ها در این قسمت بررسی خواهد شد.

به طور کلی داده­کاوی یا کاوش در داده­ها یکی از زیربخش­های فرآیند استاندارد داده­کاوی و کشف دانش از پایگاه داده­ها می­باشد [1]. فرآيند کشف دانش از پایگاه داده­ها شامل پنج مرحله است که عبارتند از:

  • انبارش داده­ها
  • انتخاب داده­ها
  • تبديل داده­ها
  • کاوش در داده­ها
  • تفسير نتیجه

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

1.2.2 انبارش داده ­ها

وجود اطلاعات صحیح و منسجم يکي از ملزوماتي است که در داده­کاوي به آن نيازمنديم. اشتباه و عدم وجود اطلاعات صحيح باعث نتيجه­گيري غلط و در نتيجه اخذ تصميم­های ناصحيح مي­گردد و منتج به نتايج خطرناکي خواهد گرديد که نمونه­هاي آن کم نيستند.

هدف از فرآيند انبارش داده­ها فراهم کردن يک محيط يکپارچه جهت پردازش اطلاعات است. در اين فرآيند، اطلاعات تحليلي و موجز در دوره­هاي مناسب زماني، سازمان­دهي و ذخيره مي­شود تا بتوان از آن­ها در فرآيند­هاي تصميم­گيري که از ملزومات آن داده­کاوي است، استفاده شود. به­طور کلي تعريف زير براي انبار داده­ها ارائه مي­گردد:

انبار داده­ها، مجموعه­اي است موضوعي، مجتمع، متغير در زمان و پايدار از داده­ها که به منظور پشتيباني از فرآيند مديريت تصميم­گيري مورد استفاده قرار مي­گيرد.

2.2.2 انتخاب داده­ ها

انبار داده­ها شامل انواع مختلف و گوناگوني از داده­ها است که همه آن­ها در داده­کاوي مورد نياز نيستند. براي فرآيند داده­کاوي بايد داده­هاي مورد نياز انتخاب شوند. به­عنوان مثال در يک پايگاه­داده­هاي مرتبط به سيستم فروشگاهي، اطلاعاتي در مورد خريد مشتريان، خصوصيات آماري آن­ها، تامين کنندگان، خريد، حسابداري و ... وجود دارند. براي تعيين نحوه چيدن قفسه­ها تنها به داده­هايي در مورد خريد مشتريان و خصوصيات آماري آن­ها نياز است. حتي در مواردي نياز به کاوش در تمام محتويات پايگاه نيست بلکه ممکن است به منظور کاهش هزينه عمليات، نمونه­هايي از عناصر انتخاب و کاوش شوند.

3.2.2 تبدیل داده ­ها

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

4.2.2 کاوش در داده ­ها

داده­هاي تبديل­شده با استفاده از تکنيک­ها و عمليات­هاي داده­کاوي مورد کاوش قرار مي­گيرند تا الگوهاي مورد نظر کشف شوند. در ادامه این بخش تکنیک­های داده­کاوی به­طور کامل بررسی و توضیح داده خواهند شد.

5.2.2 تفسیر نتیجه

اطلاعات استخراج شده با توجه به هدف کاربر تجزيه­و­تحليل و بهترين نتايج معين مي­گردند. هدف از اين مرحله تنها ارائه نتيجه (به­صورت منطقي و يا نموداري) نيست، بلکه پالايش اطلاعات ارائه شده به کاربر نيز از اهداف مهم اين مرحله است.

3.2 اعمال داده­ کاوی

در داده­کاوي، سه عمل اصلي انجام مي­شود که عبارتند از:

  • مدل­سازي پيشگويي­کننده
  • تقطيع پايگاه داده­ها
  • تحليل پيوند

از عمليات­هاي اصلي مذکور، يک يا بيش از يکي از آن­ها در پياده­سازي کاربرد­هاي گوناگون داده­کاوي استفاده مي­شوند. به عنوان مثال براي کاربردهاي خرده­فروشي معمولا از عمليات تقطيع و تحليل پيوند استفاده مي­شود در حالي­که براي تشخيص کلاه­برداري، مي­توان از هر يک از چهار عمليات مذکور استفاده نمود. علاوه بر اين مي­توان از دنباله­اي از عمليات­ها براي يک منظور خاص استفاده کرد. مثلا براي شناسايي مشتريان وفادار، ابتدا پايگاه تقطيع مي­شود و سپس مدل­سازي پيشگويي­کننده در قطعات ايجاد شده اعمال مي­گردد.

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

در ادامه هر کدام از اعمال توضیح داده می­شود.

1.3.2 مدل­ سازی پیش­گویی کننده

مدل­سازي پيش­گويي­ کننده، شبيه تجربه يادگيري انسان در به کاربردن مشاهده­ها براي ايجاد يک مدل از خصوصيت­های مهم پديده­ها است. در اين روش از تعميم دنياي واقعي و قابليت تطبيق داده­هاي جديد با يک قالب کلي، استفاده مي­شود.

در اين مدل، مي­توان با تحليل پايگاه­داده­هاي موجود، خصوصيات مجموعه­هاي داده را تعيين کرد. اين مدل با استفاده از روش يادگيري نظارت شده، شامل دو فاز آموزش و آزمايش است. در فاز آموزش با استفاده از نمونه­هاي عظيمي از داده­هاي سابقه­اي که به آن مجموعه آموزشي مي­گويند، مدلي ساخته مي­شود. در فاز آزمايش اين مدل روي داده­هايي که در مجموعه آموزشي قرار ندارند، اعمال مي­شود تا صحت و اعتبار آن تاييد گردد. از کاربردهاي عمده اين مدل مي­توان به مديريت مشتريان، تصويب اعتبار، بازاريابي مستقيم در خرده فروشي و ... اشاره کرد.

در ادامه به معرفی مهم­ترین الگوریتم­های این دسته پرداخته می­شود.

ماشین بردار پشتیبانی (Support vector machines - SVMs)  یکی از روش‌های یادگیری بانظارت است که از آن برای طبقه‌بندی و رگرسیون استفاده می‌کنند [2].

این روش از جمله روش‌های نسبتاً جدیدی است که در سال‌های اخیر کارایی خوبی نسبت به روش‌های قدیمی‌تر برای طبقه‌بندی از جمله شبکه‌های عصبی پرسپترون نشان داده است. مبنای کاری دسته‌بندی کنندة SVM  دسته‌بندی خطی داده‌ها است و در تقسیم خطی داده‌ها سعی می‌کند خطی را انتخاب کند که حاشیه اطمینان بیشتری داشته باشد. حل معادلة پیدا کردن خط بهینه برای داده‌ها به وسیله روش‌های ترکیبیاتی که روش‌های شناخته شده‌ای در حل مسائل محدودیت‌دار هستند، صورت می‌گیرد. قبل از تقسیمِ خطی برای اینکه ماشین بتواند داده‌های با پیچیدگی بالا را دسته‌بندی کند، داده‌ها را به وسیله تابعِ  به فضای با ابعاد خیلی بالاتر می‌بریم. برای اینکه بتوانیم مساله ابعاد خیلی بالا را با استفاده از این روش‌ها حل کنیم از قضیه دوگانی لاگرانژ برای تبدیلِ مساله مینیمم‌سازی مورد نظر به فرم دوگانی که در آن به جای تابع پیچیده   که ما را به فضایی با ابعاد بالا می‌برد، تابعِ ساده‌تری به نامِ تابع هسته که ضرب برداری تابع   است ظاهر می‌شود، استفاده می‌کنیم. از توابع هسته مختلفی از جمله هسته‌های نمایی، چندجمله‌ای و سیگموید می‌توان استفاده نمود.

شکل 2-1 نحوه کلاس­بندی الگوریتم ماشین بردار پشتیبان را نشان می­دهد.

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 2-1 الگوریتم ماشین بردار پشتیبان [2]

روش شبکه بیزین (Bayesian Network)

یک شبکه بیزی یا «شبکه باور» یا «شبکه باور بیزی» یک گراف جهت‌دار غیرمدور است که مجموعه‌ای از متغیرهای تصادفی و نحوه ارتباط مستقل آن­ها را نشان می‌دهد. به عنوان نمونه یک شبکه بیزی می‌تواند نشان دهنده ارتباط بین علت بیماری‌ها با خود آن­ها باشد. پس با داشتن عوامل، می­توان احتمال یک بیماری خاص را در یک مریض تشخیص داد. شبکه بیزین یک ابزار نسبتاً جدید برای شناسایی (هویت) روابط احتمالی به منظور پیشگویی یا ارزیابی کلاس عضویت است.

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

شبکه‌های بیزین در زمینه استدلال احتمالی به طور گسترده مورد استفاده قرار می‌گیرند و به درخت متصل بر روی احتمالات استدلال شده تبدیل می‌شوند. شبکه‌های بیزین به تجزیه زیرگراف اصلی ماکزیمم درخت متصل تبدیل می‌شوند و بیشتر از درخت‌های متصل کاربرد دارند. شبکه بیزین عموماً به صورت آشکار با مقادیر اولیه قابل قبول و روابط مابین متغیرها توزیع می‌شود که در مسائل دنیای واقعی بسیار کاربرد دارند. شبکه بیزین یک مدل گرافیکی برای نمایش احتمالات مابین متغیرهای موردنظر می‌باشد. از طرفی شبکه‌های بیزین روشی برای نمایش توزیع احتمالی پیوسته بزرگ به صورت نمایی و روش فشرده می‌باشند که اجازه محاسبات احتمالی به طور موثر را می‌دهند. آن­ها از ساختار مدل گرافیکی برای ضوابط مستقل مابین متغیرهای تصادفی استفاده می‌کنند. شبکه‌های بیزین اغلب برای شرایط مدل احتمالی استفاده می‌شوند و به استدلال­های تحت شرایط نامشخص (احتمالی، عدم قطعیت) کمک می‌کنند. این شبکه شامل بخش کیفی (مدل ساختاری) است که نمایش بصری از فعل و انفعالات در میان متغیرها و بخش کمی (مجموعه‌ای از مشخصات احتمال محلی) را فراهم می‌کند، که مجاز به استنتاج احتمالات و اندازه‌گیری عددی است که متغیرها یا مجموعه‌ای از متغیرها را تحت تاثیر قرار می‌دهد. بخش کیفی به صورت توزیع احتمالی پیوسته که منحصربه‌فرد می‌باشد بر روی کلیه متغیرها تعریف می‌شود [3].

شکل 2-2 نحوه کار این الگوریتم را در قالب یک مثال توضیح می­دهد.

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 2-2 الگوریتم شبکه بیزین [3]

روش نزدیکترین همسایه (K Nearest Neighbor)

جستجوی k نزدیکترین همسایه،k  همسایه نزدیک­تر به نقطه پرس­وجو را برمی‌گرداند. این روش معمولاً در تجزیه­وتحلیل و پیش­بینی به­منظور تخمین و یا دسته­بندی یک نقطه بر اساس اجماع همسایگان آن استفاده می‌شود. گراف k نزدیکترین همسایه، گرافی است که در آن، هر نقطه در گراف، به K نزدیک­ترین همسایه خود متصل است.همسایگی‌های نزدیک در شعاع ثابت، مسئله­ای است که در آن می‌خواهیم به شکلی موثر، تمام اعضای یک مجموعه نقاط در فضای اقلیدسی را در فاصله­ای ثابت از یک نقطه­ی داده شده‌ی مشخص، پیدا کنیم. در این حالت، داده ساختارها باید روی یک فاصله ثابت کار کنند. شکل زیر مثالی از اجرای این دسته­بند می­باشد [4].

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 2-3 الگوریتم نزدیکترین همسایه [4]

2.3.2 تقطیع پایگاه داده­ ها

هدف از تقطيع پايگاه­داده­ها، تقسيم آن به تعداد نامعيني از قطعات يا خوشه­هايي از رکوردهاي مشابه است، يعني رکوردهايي که خصوصياتي مشابه دارند و مي­توان آنها را همگن فرض کرد. پيوستگي داخلي اين قطعات بسيار زياد است در حالي­که همبستگي خارجي ميان آن­ها کم مي­باشد.

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

در ادامه الگوریتم خوشه­بندی K-Means که مهم­ترین الگوریتم این بخش است، بررسی می­شود.

خوشه­بندی یکی از شاخه­های یادگیری بدون نظارت می­باشد و فرآیند خودکاری است که در طی آن، نمونه­ها به دسته­هایی که اعضای آن مشابه یکدیگر می­با­شند، تقسیم می­شوند که به این دسته­ها خوشه[1] گفته می­شود. بنابراین خوشه مجموعه­ای از اشیاء می­باشد که در آن اشیاء با یکدیگر مشابه بوده و با اشیاء موجود در خوشه­های دیگر غیرمشابه می­باشند. برای مشابه بودن می­توان معیارهای مختلفی را در نظر گرفت مثلا می­توان معیار فاصله را برای خوشه­بندی مورد استفاده قرار داد و اشیائی را که به یکدیگر نزدیک­تر هستند را به­عنوان یک خوشه در نظر گرفت که به این نوع خوشه­بندی، خوشه­بندی مبتنی بر فاصله[2] نیز گفته می­شود. به­عنوان مثال در شکل2-4 نمونه­های ورودی در سمت چپ به چهار خوشه مشابه شکل سمت راست تقسیم می­شوند. در این مثال هر یک از نمونه­های ورودی به یکی از خوشه­ها تعلق دارد و نمونه­ای وجود ندارد که متعلق به بیش از یک خوشه باشد.

 خوشه­بندی با طبقه­بندی[3] متفاوت است. در طبقه­بندی نمونه­های ورودی برچسب گذاری شده­اند ولی در خوشه­بندی نمونه­های ورودی دارای بر چسب اولیه نمی­باشند و در واقع با استفاده از روش­های خوشه­بندی است که داده­های مشابه مشخص و به­طور ضمنی برچسب گذاری می­شوند. در واقع می­توان قبل از عملیات طبقه­بندی داده­ها، یک خوشه­بندی روی نمونه­ها انجام داد و سپس مراکز خوشه­های حاصل را محاسبه کرد و یک بر چسب به مراکز خوشه­ها نسبت داد و سپس عملیات طبقه­بندی را برای نمونه­های ورودی جدید انجام داد [5].

 

شکل 2-4: خوشه بندی نمونه های ورودی [5]

در خوشه­بندی K-Means هدف افراز و خوشه­بندی داده­های ورودی به k خوشه مجزا است، به­طوریکه داده­های هر خوشه بیشترین مشابهت و داده­های خوشه­های متفاوت کم­ترین مشابهت را داشته باشند. این الگو و قاعده در قالب تابع هدف زیر برای این الگوریتم تعریف می­شود:

(2-1)

که k تعداد خوشه­ها و n تعداد کل داده­ها و x مجموعه داده ورودی و C مجموعه مراکز خوشه­ها است. همان­طور که گفته شد، این الگوریتم از نوع الگوریتم­های مبتنی بر فاصله است و هدف آن مینیمم کردن فاصله اقلیدسی نقاط داخل یک خوشه می­باشد.

مراحل این الگوریتم به شرح زیر می­باشد:

  • در ابتداK نقطه به عنوان به نقاط مراکز خوشه‌ها انتخاب مي‌شوند.
  • هر نمونه داده به خوشه‌اي که مرکز آن خوشه کمترين فاصله تا آن داده را داراست، نسبت داده‌ مي‌شود.
  • پس از تعلق داده‌ها به يکی از خوشه‌ها، براي هر خوشه يک نقطه جديد به عنوان مرکز محاسبه مي‌شود. (ميانگين نقاط متعلق به هر خوشه)
  • مراحل 2 و 3 تکرار می­شوند تا زمانی­که دیگر هیچ تغییری در مراکز خوشه­ها حاصل نشود.

3.3.2 تحلیل پیوند

در اين روش پيوندهايي مرسوم به بستگي ميان داده­ها و يا مجموعه­اي از داده­ها بازشناسي مي­شوند. سه گروه از تحليل پيوند وجود دارند که عبارتند از:

  • کشف بستگي
  • کشف الگوهاي متوالي
  • کشف دنباله­هاي زماني مشابه

مهم­ترین الگوریتم­های این حوزه، الگوریتم­های استخراج قواعد انجمنی[4] و درخت تصمیم[5] است که در ادامه توضیح داده می­شود.

الگوریتم استخراج قوانین انجمنی

کاوش قوانین انجمنی یک زمینه تحقیقاتی در مبحث داده­کاوی  و در راستای کشف ارتباطات جالب  و بااهمیت بین اقلام اطلاعاتی در پایگاه­داده­های بزرگ و انبار­های تراکنش می­باشد که اخیرا تلاش­های تحقیقاتی فراوانی  را به خود اختصاص داده است. از مهم­ترین کاربردهای آن­ها می­توان به مسئله معروف تحلیل سبد خرید، خوشه­بندی و کلاسه­بندی اشاره کرد. قالب کلی قوانین انجمنی به صورت  می­باشد که نشان­دهنده نوعی پیش­آمد همزمان بین اقلام X وY  است (XوY دو مجموعه اقلام دلخواه از انباره داده­ها هستند) X وY به ترتیب مقدم و تالی قانون نامیده می­شوند. معیارهای مختلفی برای ارزیابی میزان صحت و ارزشمندی قوانین ارائه شده­اند که بر اساس آن­ها می­توان قوانین خوب را از میان مجموعه وسیعی از قوانین ممکن انتخاب کرد. معروف­ترین و پر کاربردترین این معیارها 2 معیار حداقل درجه پشتیبانی و حداقل درجه اطمینان است. پشتیبانی یک مجموعه اقلام مانند X عبارت است از: نسبت تعداد تراکنش­های شامل تمام اقلام موجود درX  به تعداد کل تراکنش­ها.

در اکثر اوقات تنها قوانینی برای ما جالب و مفید هستند که شامل اقلامی با دفعات تکرار زیاد باشند، نه اقلامی که به ندرت در انباره داده­ها یافت می­شوند. به عنوان مثال، استراتژی چیدمان اجناس یک فروشگاه با دخیل کردن اجناسی که به ندرت مشتری دارند، استراتژی موفقی نخواهد بود. بنابراین اغلب روش­ها فرض­شان بر این است که ما به دنبال مجموعه اقلامی هستیم که حداقل در کسر قابل قبولی از تراکنش­ها با هم رخ دهند، به عبارتی دیگر پشتیبانی آن­ها از معیار حداقل پشتیبانی مورد نظر ما کمتر نباشد. اصطلاح مجموعه اقلام پرتکرار برای اقلام با پشتیبانی بالا به کار می­رود. درجه اطمینان یک قانون  هم به صورت نسبت تعداد دفعات تکرار همزمان X , Y  به تعداد تکرار X به­تنهایی تعریف می­شود یعنی کسری از تراکنش­های شامل X که Y را نیز شامل می­شوند. در مجموع قوانینی مورد قبول واقع می­شوند که مقادیر قابل قبولی برای هر دو معیار فوق داشته باشند [6]. الگوریتم­های مختلفی برای شناسایی قواعد پرتکرار تاکنون ارائه شده­اند که معروف­ترین آن­ها الگوریتم Apriori[7] است.

روش درخت تصمیم (C4.5 Decision Tree)

درخت تصمیم یک ابزار برای پشتیبانی از تصمیم است که از درختان برای مدل کردن استفاده می‌کند. درخت تصمیم به طور معمول در تحقیق درعملیات استفاده می‌شود، به طور خاص در آنالیز تصمیم، برای مشخص کردن استراتژی که با بیشترین احتمال به هدف برسد بکار می‌رود. استفاده دیگر درختان تصمیم، توصیف محاسبات احتمال شرطی است [8]. در آنالیز تصمیم، یک درخت تصمیم به­عنوان ابزاری برای به­تصویر کشیدن و آنالیز تصمیم، در جایی که مقادیر مورد انتظار از رقابت‌ها متناوباً محاسبه می‌شود، استفاده می‌گردد. یک درخت تصمیم دارای سه نوع گره‌است:

  • گره تصمیم: به طور معمول با مربع نشان داده می‌شود.
  • گره تصادفی: با دایره مشخص می‌شود.
  • گره پایانی: با مثلث مشخص می‌شود.

شکل زیر نحوه کار این الگوریتم را در قالب یک مثال نشان می­دهد.

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 2-5 الگوریتم درخت تصمیم [8]

4.2 نتیجه‌گیری

در این فصل بررسی و مرور مباحث و الگوریتم­های داده­کاوی ارائه گردید. در فصل بعد به چگونگی نصب و راه­اندازی نرم­افزار R پرداخته خواهد شد.

1.3 مقدمه

در این فصل چگونگی نصب و راه­اندازی نرم­افزار R به همراه شکل توضیح داده خواهد شد.

2.3 دانلود نرم ­افزار R

در این بخش دانلود نرم­افزار R برای دو سیستم­عامل ویندوز و لینوکس ارائه می­گردد.

1.2.3 دانلود نرم­ افزار R برای سیستم ­عامل ویندوز

نرم افزار R برای نصب بر روی ویندوز، کاربرد نسبتا ساده­ای داشته و پس از پذیرفتن شرایط استفاده از آن،  امکان انتخاب بخش هایی که تمایل به نصب آن ها را دارید، برای شما فراهم می­آورد. همواره می توانید بسته های اضافی را بعداً بطور مستقیم از داخل نرم افزار R نصب نمایید. نرم­افزار R در سطح جهان mirrorهای مختلفی برای خود نرم­افزار و بسته­های همراه آن دارد که کاربران می­توانند نزدیک­ترین mirror به مکان جغرافیایی خود را انتخاب کنند.

نرم­افزار R را برای سیستم­عامل ویندوز می­توانید از آدرس https://cran.rstudio.com/bin/windows/base/ دانلود نمائید. در این آدرس دو نسخه 32 بیتی و 64 بیتی این نرم­افزار قرار داده شده است که باتوجه به نوع سیستم­عامل خود می­توانید هر کدام را انتخاب نمایید. شکل 3-1 نمایی از این آدرس و امکان انتخاب 32 بیتی و 64 بیتی نرم­افزار R را نشان می­دهد.

پس از دانلود نسخه باینری 32 بیتی یا 64 بیتی با کلیک بر روی فایل نصب نرم­افزار R و طی نمودن مراحل نصب آن نرم­افزار R بر روی سیستم شما نصب خواهد شد. نرم­افزاری R در قالب نرم­افزار Rstudio بر روی سیستم شما نصب می­گردد که Rstudio محیطی را برای برنامه­نویسی و کار با نرم­افزار R را برای شما فراهم می­آورد.

در شکل 3-2 نمایی از نصب نرم­افزار R بر روی سیستم عامل ویندوز نشان داده می­شود. باتوجه به اینکه نسخه ویندوز استفاده شده 64 بیتی است، نرم­افزار R نسخه 64 بیتی بر روی سیستم نصب می­گردد تا کارایی بیشتری از نرم­افزار گرفته شود.

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 3-1 دانلود نرم­ افزار R

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 3-2 نصب نرم­ افزار R

2.2.3 دانلود نرم­ افزار R برای سیستم ­عامل لینوکس

sudo apt-get update

sudo apt-get install r-base r-base-dev

برای دانلود نرم افزار R و نصب آن روی اوبونتو لینوکس (UBUNTU) یا نسخه­های سازگار با سیستم­عامل دبین (Debian) دستور زیر را از خط فرمان لینوکس اجرا کنید.

در ترمینال لینوکس از هر مسیری که فرمان R را صادر کنید و به محیط نرم افزار R وارد شوید، همان مسیر به صورت پیش­فرض به عنوان مسیر جاری در نظر گرفته می­شود.

~$ R

R version 3.0.1 (2013-05-16) -- "Good Sport"

Copyright (C) 2013 The R Foundation for Statistical Computing

Platform: i686-pc-linux-gnu (32-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.

You are welcome to redistribute it under certain conditions.

Type ‘license ()' or 'licence()' for distribution details.

 

Natural language support but running in an English locale

 

R is a collaborative project with many contributors.

Type 'contributors()' for more information and

'citation()' on how to cite R or R packages in publications.

 

Type 'demo()' for some demos, 'help()' for on-line help, or

'help.start()' for an HTML browser interface to help.

Type 'q()' to quit R.

 

[Previously saved workspace restored]

>

در ادامه توضیحاتی که داده می­شود برای نرم­افزار R در سیستم عامل ویندوز می­باشد، بدیهی است که همین توضیحات با اندکی تغییر در سیستم­عامل­های دیگر نیز قابل استفاده خواهد بود.

3.3 اجرای نرم­ افزار R

پس از این­که مراحل نصب نرم­افزار R را طی کردید، در desktop میانبر این نرم­افزار قرار می­گیرد و با کلیک بر روی آن محیط نرم­افزار Rstudio نمایش داده می­شود. در شکل 3-3 این محیط نشان داده شده است.

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 3-3 محیط نرم­ افزار R

4.3 نتیجه­ گیری

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


1.4 مقدمه

در این فصل به کاربرد نرم­افزار R در داده­کاوی پرداخته می­شود. اجرای الگوریتم­های داده­کاوی مختلف (الگوریتم­هایی که در فصل دوم به آن اشاره شد) و شرایط اجرای آن­ها در این فصل بررسی می­شود.

2.4 مجموعه­ داده مورد استفاده

در ادامه این فصل برای اجرا و بررسی الگوریتم­های داده­کاوی از یک مجموعه­داده ثابت استفاده می­شود. این مجموعه­داده Iris[9] می­باشد که مجموعه­داده گل­ها می­باشد. این مجموعه­داده 4 ویژگی دارد که عبارتند از:

  • طول کاسبرگ
  • عرض کاسبرگ
  • طول گلبرگ
  • عرض گلبرگ

برچسب­های داده­ها که همان نوع گل­ها هستند نیز 3 نوع گل Setosa، Versicolor و Virginca می­باشد. تعداد داده­ها نیز 150 نمونه می­باشد، بنابراین این مجموعه­داده یک ماتریس 150 در 5 (4ویژگی و یک برچسب) است.

2.4 کاوش داده

در ابتدا به بررسی مجموعه­داده با نرم­افزار R پرداخته می­شود. ساختار داده، ویژگی­های آن، پراکندگی و ... از جمله عواملی هستند که در این بخش برای مجموعه­داده iris ارائه می­گردد.

 

dim(iris)

[1] 150 5

 

 

بررسی ابعاد مجموعه­ داده

names(iris)

[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

 

 

نام ستون­ ها و متغیرها

Str(iris)

'data.frame':   150 obs. of  5 variables:
$ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

 

ساختار مجموعه­ داده

Iris[1:5,]

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa

 

نمایش 5 سطر اول مجموعه ­داده

attributes(iris)

$names
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

$row.names
[1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20
[21]  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40
[41]  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60
[61]  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80
[81]  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100
[101] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
[121] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
[141] 141 142 143 144 145 146 147 148 149 150

$class
[1] "data.frame"

 

لیست ویژگی­ های مجموعه ­داده

Summary(iris)

Sepal.Length    Sepal.Width     Petal.Length    Petal.Width          Species
Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50
1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50
Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50
Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199
3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800
Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500

 

توزیع هر ویژگی

table(iris$Species)

setosa versicolor  virginica
50         50         50

 

 

فراوانی برچسب­ ها

pie(table(iris$Species))

 

 

رسم نمودار فراوانی برچسب ­ها

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 4-1 نمودار دایره­ای فراوانی برچسب­ها

 

نمودار هیستاگرام متغیر "طول کاسبرگ"

hist(iris$Sepal.Length)

 

 

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 4-2 نمودار هیستاگرام ویژگی  طول کاسبرگ

تابع چگالی توزیع ویژگی طول کاسبرگ

Plot(density(iris$Sepal.Length))

  

 

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 4-3 تابع توزیع  چگالی متغیر طول کاسبرگ

3.4 خوشه ­بندی داده ­ها

در این قسمت الگوریتم خوشه­بندی kmeans که در فصل دوم نیز مباحث مربوط به آن ارائه شد، در نرم­افزار R پیاده­سازی و اجرا می­گردد.

ابتدا مجموعه­داده iris را newiris ذخیره می­شود و خوشه­بندی kmeans با 3 خوشه بر روی newiris انجام می­شود و نتایج خوشه­بندی در newiris ذخیره می­گردد. در مرحله آخر نیز شکل خروجی خوشه­بندی نیز نمایش داده می­گردد.

در خروجی دستور kmeans نیز خوشه هر داده بر حسب شماره آن نشان داده می­شود تا مشخص شود الگوریتم خوشه­بندی هر داده را به کدام خوشه انتساب داده است.

newiris <- iris

newiris$Species <- NULL

  

(kc <- kmeans(newiris, 3))

K-means clustering with 3 clusters of sizes 38, 62, 50

 

Cluster means:

Sepal.Length Sepal.Width Petal.Length Petal.Width

1     6.850000    3.073684     5.742105    2.071053

2     5.901613    2.748387     4.393548    1.433871

3     5.006000    3.428000     1.462000    0.246000

Clustering vector:

[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

[38] 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

[75] 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 1 1 2 1 1 1 1

[112] 1 1 2 2 1 1 1 1 2 1 2 1 2 1 1 2 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 1 1 1 2 1

[149] 1 2

Within cluster sum of squares by cluster:

[1] 23.87947 39.82097 15.15100

(between_SS / total_SS =  88.4 %)

 

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"

[6] "betweenss"    "size"         "iter"         "ifault"

plot(newiris[c("Sepal.Length", "Sepal.Width")], col=kc$cluster)

points(kc$centers[,c("Sepal.Length", "Sepal.Width")], col=1:3, pch=8, cex=2)

 

 

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 4-5 خروجی خوشه­بندی kmeans در نرم­افزار R

4.4 درخت تصمیم

در این قسمت درخت تصمیم برای مجموعه­داده iris استخراج و تولید می­گردد. برای این منظور از دستور ctree استفاده می­شود.

همان­طور که در فصل دوم نیز اشاره شد، درخت تصمیم برای شناسایی قوانین و قواعد نهفته میان داده­ها می­تواند بسیار موثر عمل کند. برای مثال در مجموعه­داده iris اگر بتوان قوانین و قواعدی را بر حسب مقادیر ویژگی­ها یافت که بتواند نوع هر گل را تعیین کند، بسیار کار آسان­تر خواهد شد.

iris_ctree <- ctree(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data=iris)

 

print(iris_ctree)

 

Conditional inference tree with 4 terminal nodes

Response:  Species
Inputs:  Sepal.Length, Sepal.Width, Petal.Length, Petal.Width
Number of observations:  150

1) Petal.Length <= 1.9; criterion = 1, statistic = 140.264
2)*  weights = 50
1) Petal.Length > 1.9
3) Petal.Width <= 1.7; criterion = 1, statistic = 67.894
4) Petal.Length <= 4.8; criterion = 0.999, statistic = 13.865
5)*  weights = 46
4) Petal.Length > 4.8
6)*  weights = 8
3) Petal.Width > 1.7
7)*  weights = 46

plot(iris_ctree)

plot(iris_ctree, type="simple")

 

 

شکل 4-6 خروجی درخت تصمیم

 

 

انجام پایان نامه، انجام پایان نامه کارشناسی ارشد، انجام پایان نامه دکتری

شکل 4-7 خروجی درخت تصمیم

5.4 نتیجه ­گیری

در این فصل بررسی چند الگوریتم داده­کاوی در محیط نرم­افزار R