حل مسأله و تحلیل آن
۱-۱۰- ساختار پایاننامه
ساختار این تحقیق شامل پنج فصل است.
فصل یک: مقدمه و کلیات تحقیق ارائه خواهد شد و به تعریف مسئله و ضرورت انجام تحقیق خواهیم پرداخت.
فصل دوم: به بیان ادبیات و تاریخچهای از داده کاوی، داده کاوی توزیع شده، عاملها و سیستمهای چندعامله پرداخته، چندین تکنیک رایج در این حوزه را ذکر میکنیم و کاربردها و خصوصیات آنها را شرح خواهیم داد.
فصل سوم: به بیان روش تحقیق، نحوهی گردآوری دادهها و شیوهی تجزیه و تحلیل اطلاعات خواهیم پرداخت.
فصل چهارم: در این فصل، به بیان یافتههای تحقیق در هر یک از مراحل اجرایی تحقیق خواهیم پرداخت و در نهایت مدلی بر پایه سیستمهای چند عامله به منظور بهبود سرعت و دقت عملیات دادهکاوی در محیطهای توزیع شده ارائه خواهیم داد.
فصل پنجم: در این فصل، به پرسشهای تحقیق پاسخ داده خواهد شد و پیشنهادهایی برای کارهای آینده ارائه می شود.
فصل دوم ادبیات و پیشینه تحقیق
۲-۱- مقدمه
در این فصل، به سه بخش اصلی با عناوین دادهکاوی، عاملها و سیستمهای چند عامله، و کاربرد عاملها در دادهکاوی میپردازیم و در نهایت به بررسی کارهای انجام شده در این حوزه خواهیم پرداخت.
۲-۲- داده کاوی
داده کاوی، یک تکنولوژی نوظهور است، که از ابزارها و تکنیکهای مدلسازی و تجزیه و تحلیل آماری، الگوریتمهای ریاضی، و متدهای یادگیری ماشین برای کشف الگوهای معتبر و ناشناخته در مجموعه دادههای حجیم استفاده میکند. هرچند این تکنولوژی دوران نوباوگی خود را طی میکند، اما شرکتها و سازمانهای بسیاری از جمله خردهفروشیها، بانکها، مراکز درمانی، کارخانجات تولیدی، ارتباطات راه دور، و مؤسسات دولتی از ابزارها و تکنیکهای دادهکاوی برای تحلیل دادههایشان و کشف اطلاعات و دانش مفید از آنها استفاده میکنند.[۱, ۲] دادهکاوی اطلاعاتی را از پایگاه دادهها استخراج میکند که از طریق کوئریها و گزارشگیریها قابل دستیابی نیستند.
رشد انفجاری دادههای ذخیره شده در پایگاه دادهها، نیاز به تکنولوژیهای جدید که بتوانند حجم عظیم دادهها را هوشمندانه به دانش مفید تبدیل کنند، را پدید آورده است.[۳] داده کاوی به معنای یافتن نیمه خودکار الگوهای پنهان در مجموعه داده های[۱] موجود میباشد.[۴] این تکنولوژی با دیگر تکنیکهای تحلیل داده، که سیستم، مقادیر اولیه را میگیرد و خود، الگوهایی را تولید میکند، متفاوت است. دادهکاوی توسط ابزارهای الگوریتمیک، الگوها، تغییرات، آنومالیها، قوانین، و ساختارهای مهم آماری، و رویدادها را از مجموعه دادههای عظیم استخراج میکند.[۵] میتوان گفت که داده کاوی در جهت کشف اطلاعات پنهان و روابط موجود در بین داده های فعلی و پیش بینی موارد نامعلوم و یا مشاهده نشده عمل می کند. برای انجام عملیات کاوش لازم است قبلاً روی داده های موجود پیش پردازشهایی انجام گیرد. عمل پیش پردازش اطلاعات خود از دو بخش کاهش اطلاعات، و خلاصهسازی و کلیسازی داده ها تشکیل شده است. کاهش اطلاعات عبارت است از تولید یک مجموعه کوچکتر، از داده های اولیه، که تحت عملیات داده کاوی نتایج تقریباً یکسانی با نتایج داده کاوی روی اطلاعات اولیه به دست دهد.[۴] پس از انجام عمل کاهش اطلاعات و حذف خصایص غیر مرتبط نوبت به خلاصهسازی و کلیسازی داده ها میرسد. داده های موجود در بانکهای اطلاعاتی معمولاً حاوی اطلاعات در سطوح پایینی هستند، بنابراین خلاصهسازی مجموعه بزرگی از داده ها و ارائه آن به صورت یک مفهوم کلی اهمیت بسیار زیادی دارد. کلیسازی اطلاعات، فرآیندی است که تعداد زیادی از رکوردهای یک بانک اطلاعاتی را به صورت مفهومی در سطح بالاتر ارائه می کند. تکنیکهای داده کاوی به چند دسته تقسیم میشوند که سه دسته اصلی عبارتند از خوشهبندی[۲]، طبقه بندی[۳] و کشف قواعد انجمنی[۴]. در ادامه هر یک از این روشها را به طور کلی معرفی مینماییم.
۲-۲-۱- خوشهبندی
فرایند خوشهبندی سعی دارد که یک مجموعه داده را به چندین خوشه تقسیم نماید بطوریکه دادههای قرار گرفته در یک خوشه با یکدیگر شبیه بوده و با داده های خوشههای دیگر متفاوت باشند. در حال حاضر روشهای متعددی برای خوشهبندی داده ها وجود دارد که بر اساس نوع داده ها، شکل خوشه ها، فاصله داده ها و غیره عمل خوشهبندی را انجام می دهند. مهمترین روشهای خوشهبندی در زیر معرفی شده اند:
۲-۲-۱-۱- روشهای خوشهبندی مبتنی بر تقسیمبندی
این روشها، داده های موجود در یک مجموعه داده را به k خوشه تقسیم می کنند، بطوریکه هر خوشه دو خصوصیت زیر را داراست:
هر خوشه یا گروه حداقل شامل یک داده میباشد.
هر داده موجود در مجموعه داده دقیقاً به یک گروه یا خوشه تعلق دارد.
معیار اصلی در چنین مجموعه دادههایی میزان شباهت داده های قرار گرفته در هر خوشه میباشد. در حالیکه دادههای قرار گرفته در دو خوشه مختلف از نظر شباهت با یکدیگر فاصله زیادی دارند. مقدار k که به عنوان پارامتر استفاده میگردد، هم می تواند به صورت پویا تعیین گردد و هم اینکه قبل از شروع الگوریتم خوشهبندی مقدار آن مشخص گردد.
۲-۲-۱-۲- روشهای سلسله مراتبی[۵]
روشهای سلسله مراتبی به دو دسته کلی روشهای پایین به بالا[۶] و روشهای بالا به پایین[۷] تقسیم میگردند. روشهای سلسله مراتبی پایین به بالا به این صورت عمل می کنند که در شروع هر کدام از داده ها را در یک خوشه جداگانه قرار میدهد و در طول اجرا سعی می کند تا خوشههایی نزدیک به یکدیگر را با هم ادغام نماید. این عمل ادغام تا زمانی که یا تنها یک خوشه داشته باشیم و یا اینکه شرط خاتمه برقرار گردد، ادامه مییابد. روشهای بالا به پایین دقیقاً به طریق عکس عمل می کنند، به این طریق که ابتدا تمام داده ها را در یک خوشه قرار میدهد و در هر تکرار از الگوریتم، هر خوشه به خوشههای کوچکتر شکسته می شود و این کار تا زمانی ادامه مییابد که یا هر کدام از خوشه ها تنها شامل یک داده باشند و یا شرط خاتمه الگوریتم برقرار گردد. شرط خاتمه معمولاً تعداد کلاستر یا خوشه میباشد.
۲-۲-۱-۳- روشهای مبتنی بر چگالی[۸]
اکثر روشهای خوشهبندی که به این روش عمل می کنند معمولاً از تابع فاصله به عنوان تابع معیار خود بهره میبرند. استفاده از چنین معیاری باعث میگردد که الگوریتم خوشهبندی تنها قادر به ایجاد خوشههایی با اشکال منظم باشد. در صورتیکه خوشههای واقعی در داده ها دارای اشکال غیر منظمی باشند، این الگوریتمها در خوشهبندی آنها با مشکل مواجه میگردند. برای حل اینگونه مشکلات یکسری از روشها برای خوشهبندی پیشنهاد گردیدهاند که عمل خوشهبندی را بر مبنای چگالی داده ها انجام میدهند. ایدهی اصلی در این روشها بر این اساس است که تا زمانی که داده های قرار گرفته در همسایگی خوشهها از حد معینی بیشتر باشند، آنها رشد می کنند و بزرگ میشوند. چنین روشهایی قادرند خوشههایی با شکلهای نامنظم نیز ایجاد نمایند.
البته دستهه ای دیگری از روشهای خوشهبندی مانند روشهای مبتنی بر گرید، روشهای مبتنی بر مدل و غیره وجود دارند که میتوانید آنها را در [۴] مطالعه نمایید.
۲-۲-۲- طبقه بندی
فرایند طبقه بندی در واقع نوعی یادگیری با ناظر میباشد که در طی دو مرحله انجام میگردد. در مرحله اول مجموعه ای از داده ها که در آن هر داده شامل تعدادی خصوصیت دارای مقدار و یک خصوصیت بنام خصوصیت کلاس میباشد، برای ایجاد یک مدل داده بکار میروند که این مدل داده در واقع توصیف کننده مفهوم و خصوصیات آن مجموعه داده ها است. مرحله دوم فرایند طبقه بندی، اعمال یا بکارگیری مدل ایجاد شده، بر روی دادههایی است که شامل تمام خصوصیات دادههایی که برای ایجاد مدل بکار گرفته شده اند، میباشند، بجز خصوصیت کلاس، و هدف از عمل طبقه بندی نیز تخمین مقدار این خصوصیت میباشد.
الگوریتمها و روشهای مختلفی برای طبقه بندی تاکنون پیشنهاد شده اند که برای مثال میتوان از روشهای طبقه بندی با بهره گرفتن از درخت تصمیم، طبقه بندی بیزین، [۹]SVM، طبقه بندی با بهره گرفتن از شبکههای عصبی، طبقه بندی مبتنی بر قواعد و غیره نام برد.[۶] در اینجا ما قصد نداریم وارد مباحث مربوط به الگوریتمها و روشهای طبقه بندی شویم و تنها روش طبقه بندی مبتنی بر قواعد را معرفی خواهیم نمود. در صورت نیاز به مطالعه بیشتر میتوانید به مرجع [۴] مراجعه نمایید.
۲-۲-۲-۱- طبقه بندی مبتنی بر قواعد
در این قسمت قصد داریم نگاهی به بحث طبقه بندی مبتنی بر قواعد داشته باشیم. در این روش، مدل ایجاد شده از روی داده ها به صورت مجموعه ای از قواعد میباشد. میتوان گفت که هر قاعده به صورت یک قاعده IF P THEN C میباشد که در آن P مجموعه ای از شرایط بوده و C نیز مشخص کننده برچسب یک کلاس یا طبقه خاص میباشد. یک قاعده بدست آمده از مجموعه داده های آموزشی با بهره گرفتن از دو معیار coverage و accuracy می تواند ارزیابی گردد. این دو معیار به صورت زیر تعریف میگردند:
(۲-۱) | |
(۲-۲) |
که در تعاریف مذکور تعداد دادههایی در مجموعه داده D است که توسط قاعده پوشش داده میشوند. تعداد دادههایی است که توسط قاعده به درستی طبقه بندی شده اند. |D| تعداد دادههای موجود در D میباشد.
نکته مهمی که باید اینجا به آن اشاره کرد این بحث است که چگونه داده ها توسط این قواعد طبقهبندی میگردند. همانطور که اشاره گردید این قواعد دارای یک قسمت شرط (P) و یک قسمت C هستند. P یک الگو به صورت میباشد که هر کدام از piها بیان کنندهی یک محدودیت برای یکی از خصوصیات هستند. اگر خصوصیات دادهای محدودیتهای مذکور قاعدهای را برآورده سازد آنگاه کلاس یا طبقهبند آن داده، کلاس یا طبقهای است که آن قاعده بیان می کند©. اما مسأله مهمی که اینجا پیش می آید، این است که اگر یک داده در قسمت شرط (P) بیش از یک قاعده صدق کند، آنگاه کدام قاعده را باید انتخاب کرد. بسته به استراتژی های مختلف، این مشکل جوابهای مختلفی میتواند داشته باشد. دو نمونه از مهمترین استراتژیهایی که معمولاً برای حل این مشکل بکار میروند، استراتژیهای مرتبسازی بر اساس اندازه[۱۰] و مرتبسازی بر اساس قاعده[۱۱] میباشند.
در استراتژی مرتبسازی بر اساس اندازه، چنانچه یک داده در بیش از یک قاعده صدق کند، قاعدهای برای طبقه بندی داده انتخاب می شود که خصوصیات بیشتری را برای مشخص نمودن کلاس داده تست کرده باشد. در استراتژی مرتبسازی بر اساس قاعده، پیش قواعد اولویت دهی میشوند و هنگام طبقه بندی، قاعده با اولویت بالاتر، مشخص کننده کلاس داده خواهد بود. اولویتدهی به قواعد هم به طرق مختلفی ممکن است انجام گردد. برای مثال ممکن است که ابتدا کلاسها اولویتدهی شوند و قواعد مربوط به هر کلاس نیز با تأثیر پذیری از این اولویتدهی، اولویت بگیرند. اولویت کلاسها نیز ممکن است بر اساس اهمیت کلاس یا تعداد داده های متعلق به آن کلاس و یا غیره مشخص گردند. استراتژی های دیگری نیز در این زمینه وجود دارند که ما در اینجا درباره آنها صحبت نمیکنیم. مسأله دیگری که ممکن است پیش بیاید این است که یک داده با هیچکدام از قواعد همخوانی نداشته باشد. برای این مسأله هم میتوان راهحلهایی ارائه نمود. معمولترین راهحل این است که چنانچه دادهای با هیچیک از قواعد همخوانی نداشت، کلاسی به عنوان کلاس آن داده انتخاب گردد که بیشترین تعداد داده در بین داده ها به آن کلاس تعلق دارد.
مورد دیگری هم که اینجا قابل ذکر است این مطلب است که قواعدی که برای طبقه بندی استفاده میشوند، چگونه ایجاد میگردند. البته ما نمیخواهیم در اینجا وارد جزئیات مربوط به استخراج قواعد از داده های آموزشی شویم. برای استخراج قواعد از مجموعه داده های آموزشی معمولاً از دستهای از الگوریتمها بنام الگوریتمهای SCA[12] استفاده میگردد که این الگوریتمها در هر مرحله یک قاعده را از داده های آموزشی یاد گرفته و دادههایی را که از آن قاعده پیروی می کنند را از مجموعه داده های آموزشی خود حذف می کنند و با داده های باقیمانده، کار خود را ادامه میدهند. از نمونه الگوریتمهای معروف SCA میتوان به AQ، CN2 و RIPPER اشاره نمود. البته قابل ذکر است که برای کشف قواعد میتوان از روشهای ایجاد درخت تصمیم و یا کشف قواعد انجمنی نیز استفاده نمود. در درخت تصمیم هر مسیر از ریشه تا یک برگ را میتوان به عنوان قسمت P قاعده در نظر گرفت و کلاسی که برگ مشخص می کند، قسمت C خواهد بود. در مورد نحوه استفاده از روشهای کشف قواعد انجمنی و استفاده از آنها برای طبقهبندی نیز میتوانید به [۷, ۸] مراجعه کنید.
۲-۲-۳- کشف قواعد انجمنی
سازمانهای کسب و کار، اغلب حجم عظیمی از دادهها را از عملیات روزانه جمع آوری میکنند. به عنوان مثال، حجم عظیمی از دادهها از خریدهای روزانه مشتریان در فروشگاههای خرده فروشی بدست میآید. استخراج قواعد انجمنی، نوعی از عملیات داده کاوی است که به تجزیه و تحلیل داده و جستجو برای یافتن ارتباط بین ویژگیها از قبیل اینکه مشتریان کدام اقلام را همزمان خریداری میکنند، میپردازد. نام دیگر روش کشف قواعد انجمنی، تحلیل سبد بازار میباشد. به عبارت دیگر، قواعد انجمنی، مطالعه ویژگیها یا خصوصیاتی میباشد که با یکدیگر همراه بوده و به دنبال استخراج قواعد از میان این خصوصیات میباشد. این روش به دنبال استخراج قواعد به منظور کمی کردن ارتباط میان دو یا چند خصوصیت است. قواعد انجمنی به شکل اگر و آنگاه به همراه دو معیار پشتیبان[۱۳] و اطمینان[۱۴] تعریف میشوند.
در اینجا به مثالهایی از کاربرد قوانین انجمنی اشاره میشود: