چکیده:
با افزایش سیستمهای کامپیوتر و گسترش تکنولوژی اطلاعات , بحث اصلی در علم کامپیوتر از چگونگی جمع آوری اطلاعات به نحوه استفاده از اطلاعات منتقل شده است . سیستمهای داده کاوی ,این امکان را به کاربر می دهند که بتواند انبوه داده های جمع آوری شده را تفسیر کنند و دانش نهفته در آن را استخراج نمایند .
داده کاوی به هر نوع کشف دانش و یا الگوی پنهان در پایگاه داده ها اطلاق می شود . امروزه داده کاوی به عنوان یکی از مهمترین مسائل هوش مصنوعی و پایگاه داده ، محققان بسیاری را به خود جذب کرده است . در این تحقیق ابتدا نگاه کلی بر داده کاوی ، استراتژیهای داده کاوی و... داریم ، سپس مسأله کشف قوانین وابستگی در پایگاه داده را به تفضیل بررسی کردیم و نگاهی به الگوریتمهای موجود برای آن داشتیم . سپس مسأله کشف قوانین وابستگی در پایگاه داده های پویا را مورد بحث قرار دادیم و الگوریتم های ارائه شده مربوطه را مطرح کردیم .
مقدمه :
هدف از این اراِئه و تحقیق بررسی روشهای مطرح داده کاوی است .داده کاوی هر نوع استخراج دانش و یا الگواز داده های موجود در پایگاه داده است که این دانشها و الگوها ضمنی و مستتر در داده ها هستند ,از داده کاوی می توان جهت امور رده بندی (Classification ) و تخمین (Estimation) ,پیش بینی (Prediction) و خوشه بندی (Clustering)استفاده کرد .داده کاوی دارای محاسن فراوانی است . از مهمترین آن محاسن کشف کردن دانش نهفته در سیستم است که به شناخت بهتر سیستم کمک می کند .به عنوان مثال می توان به استفاده ترکیبی از روش خوشه بندی جهت تخصیص بودجه به دسته های مختلف از کتب اشاره کرد .
سیستمهای داده کاوی تقریبا از اوایل دهه 1990 مورد توجه قرار گرفتند . علت این امر نیز آن بود که تا آن زمان سازمانها بیشتر در پی ایجاد سیستمهای عملیاتی کامپیوتری بودند که به وسیله آنها بتوانند داده های موجود در سازمان خود را سازماندهی کنند . پس از ایجاد این سیستمها ,روزانه حجم زیادی از اطلاعات جمع آوری میشد که تفسیر کردن آنها از عهده انسان خارج بود . به همین دلیل , نیاز به تکنیکی بود که از میان انبوه داده معنی استخراج کند و داده کاوی به همین منظور ایجاد و رشد یافت .
بنابر این هدف اصلی از داده کاوی ,کشف دانش نهفته در محیط مورد بررسی است که این دانش می تواند شکلهای گوناگونی داسته باشد . دانش استخراج شده می تواند به فرم الگوهای موجود در داده ها باشد که کشف این الگوها منجر به شناخت بهتر سیستم نیز می شود . الگوهای استخراجی عموما بیانگر روابط بین ویژگیهای سیستم هستند بعنوان مثال در سیستم تجاری یک الگو می تواند بیانگر رابطه بین نوع کالا و میزان تقاضای آن باشد .
در این تحقیق داده کاوی مورد بحث قرار می گیرد . علل استفاده از داده کاوی و منابعی که داده کاوی بر روی آنها اعمال می شود ,علاوه بر این خلاصه ای از روشهای رایج داده کاوی ارائه شده است . تکنیکهای داده کاوی و قوانین وابستگی و الگوریتمهای موجود (Apriori , Aprior TID, Partition, Eclat ,Max Eclat , Vector ) و الگوریتم با ساختار Trie وfp grow و الگوریتمهای کاهشی مورد بررسی قرار می گیرند و در هر مورد مثالها , موارد کاربرد ,تکنیکها و نقاط قوت و ضعف مورد بررسی قرار گرفته اند .
Data mining(داده کاوی)
تعریف :
Data Mining represents a process developed to examine large amounts of
data routinely collected. The term also refers to a collection of tools used to
perform the process. Data mining is used in most areas where data are
collected-marketing, health, communications, etc.
داده کاوی فرآیند بکارگیری یک یا چند تکنیک آموزش کامپیوتر، برای تحلیل و استخراج داده های یک پایگاه داده می باشد.در واقع هدف داده کاوی یافتن الگوهایی در داده هاست.
دانش کسب شده از فرآیند داده کاوی بصورت مدل یا تعمیمی از داده ها نشان داده می شود.
چندین روش داده کاوی وجود دارد با این وجود همه روشها “ آموزش بر مبنای استنتاج “ را بکار می برند.
آموزش بر مبنای استنتاج، فرآیند شکل گیری تعاریف مفهوم عمومی از طریق مشاهده مثالهای خاص از مفاهیمی که آموزش داده شده اند، است.
مثال زیر نمونه ای از دانش بدست امده از طریق فرایند اموزش بر مبنای استنتاج است:
آیا تا کنون فکر کرده اید، فروشگاههای بزرگ اینترنتی در mail های خود به مشتریان از چه تبلیغاتی استفاده می کنند؟ و آیا این تبلیغات برای همه مشتریان یکسان است؟
پاسخ این است که از روی دانش کسب شده از اطلاعات خرید افراد و نتیجه گیری از این دانش، این کار را انجام می دهند.مثلا در نظر بگیرید یک قانون در پایگاه داده بصورت زیر استخراج می شود:
دقت = 80% : سیگار می خرند ^ نان می خرند کسانی که شیر می خرند
از روی این قانون فروشگاه می تواند به تمام کسانی که شیر می خرند تبلیغات سیگار و انواع نان را نیز بفرستد.همچنین این قانون در چیدن قفسه های فروشگاه نیز بی تاثیر نخواهد بود.
{شیر و نان و سیگار در قفسه های کنار هم چیده شوند}
کشف دانش در پایگاه داده 1
KDD یا کشف دانش در پایگاه داده اصطلاحی است که مکررا بجای داده کاوی بکار می رود. از نظر تکنیکی، KDD کاربردی از روشهای علمی داده کاوی است.
بعلاوه برای انجام داده کاوی فرایند KDD شامل :
1- یک روش برای تهیه داده ها و استخراج داده ها ،
2- تصمیم گیری درباره عملی که پس از داده کاوی باید انجام شود ، می باشد.
آیا داده کاوی برای حل مسائل ما مناسب است؟
تصمیم گیری در مورد اینکه آیا داده کاوی را به عنوان استراتژی حل مساله بکار ببریم یا نه، یک مساله دشوار است.
اما به عنوان نقطه شروع چهار سؤال عمومی را باید در نظر بگیریم :
آیا به وضوح می توانیم مساله را تعریف کنیم ؟
آیا بطور بالقوه داده با معنی وجود دارد ؟
آیا داده ها شامل “ دانش پنهان” هستند یا فقط برای هدف گزارشگری مناسبند ؟
آیا هزینه پردازش داده (برای داده کاوی) کمتر از سود حاصل از دانش پنهان بدست آمده از پروژه داده کاوی است ؟
یک مدل پردازش داده کاوی ساده :
در یک دید کلی ، ما می توانیم داده کاوی را به عنوان یک فرآیند چهار مرحله ای تعریف کنیم :
جمع آوری یک مجموعه از داده ها برای تحلیل
ارائه این داده ها به برنامه نرم افزاری داده کاوی
تفسیر نتایج
بکارگیری نتایج برای مساله یا موقعیتهای جدید
Data
Warehouse
Operational
Database
Data Mining
Interpretation
&
Evaluation
Result
Application
شکل فوق یک دیاگرام از فرآیند داده کاوی را نشان می دهد.
- جمع آوری داده ها :
فرآیند داده کاوی احتیاج به دسترسی به داده ها دارد. داده ممکن است در تعدادی رکورد، در چندین فایل پایگاه داده ذخیره شود و یا ممکن است داده فقط شامل چند صد رکورد در یک فایل ساده باشد.
با توجه به اینکه معمولا داده های واقعی شامل چندین هزار رکورد می باشند، اولین گام در داده کاوی تهیه زیر مجموعه مناسبی از داده برای پردازش است. گاهی این مرحله احتیاج به تلاش انسانهای بسیاری دارد. در کل سه راه متداول برای دستیابی فرآیند داده کاوی به داده وجود دارد :
< >ذخیره داده در “ انبار داده 1 ”ذخیره داده در پایگاه داده رابطه ایذخیره داده در فایل ساده
- داده کاوی :
همانطور که در شکل مشخص است مرحله بعد داده کاوی است. با این حال قبل از ارائه داده به ابزار داده کاوی ، چندین انتخاب داریم:
< >یادگیری باید تحت کنترل باشد یا بدون کنترل ؟کدام نمونه ها در داده ها ی جمع آوری شده برای ساخت مدل بکار میروند و کدامها برای تست مدل ؟کدام صفتها از صفتهای موجود انتخاب می شوند ؟و ....
- تفسیر نتایج :
در این مرحله خروجیهای مرحله داده کاوی آزمایش می شوند تا مشخص شود که آیا این نتایج قابل استفاده و جالب هستند یا نه؟ همانطور که در شکل می بینیم اگر نتایج بهینه نباشد می توانیم فرآیند داده کاوی را با صفات و نمونه های جدید تکرار کنیم. همچنین ما می توانیم به” انبار داده “ مراجعه کنیم و فرآیند استخراج دانش را تکرار کنیم.
بکارگیری نتایج :
هدف نهایی ما بکارگیری نتایج برای موقعیتهای جدید است. به عنوان مثال دانشی که در یک پایگاه داده فروشگاه بیان می کند کسانی که مجله ورزشی می خرند همچنین سیگار هم می خرند؛ در شکل گیری استراتژیهای فروشگاه در چیدن قفسه ها ، تهیه کاتالوگ ها و ... تاثیر می گذارد.
استراتژی های داده کاوی :
همانطور که در شکل زیر می بینیم استراتژیهای داده کاوی بطور کلی می توانند به دو دسته “ تحت کنترل ” یا “ بدون کنترل ” تقسیم می شوند. آموزش تحت کنترل مدلهایی را با بکارگیری صفات ورودی برای تشخیص مقدار صفت خروجی می سازد. حتی برخی از الگوریتمهای ” آموزش تحت کنترل” امکان تشخیص چندین صفت خروجی را به ما می دهند. به صفات خروجی ، صفات وابسته نیز
می گوییم. زیرا مقدار آنها به مقدار یک یا چند صفت ورودی بستگی دارد. به همین ترتیب به صفات ورودی، صفات مستقل نیز می گوییم.
هنگامی که “ آموزش بدون کنترل ” را بکار می بریم تمامی صفات ورودی هستند و صفت خروجی نداریم.
آموزش تحت کنترل با توجه به اینکه صفات خروجی مقوله ای هستند یا عددی و آیا مدلهای ایجاد شده برای مشخص کردن موقعیت کنونی ایجاد شدند یا پیش بینی خروجیهای آینده ، به چندین قسمت تقسیم می شوند. (منظور از صفات مقوله ای ، صفاتی هستند که مقدار آنها تعداد محدود و مشخصی است، مثل صفاتی که مقدار آنها Boolean است که دو مقدار {true, false} دارد).
طبقه بندی1 :
طبقه بندی احتمالا از همه استراتژیهای داده کاوی قابل درک تر است. طبقه بندی سه خصوصیت دارد :
< >آموزش تحت کنترل است.متغیر وابسته ، مقوله ای است.تاکید بر روی ساخت مدلهایی است که قادر به اختصاص نمونه های جدید به یکی از کلاسهای تعریف شده باشند.
تخمین2 :
مشابه طبقه بندی ، هدف یک مدل تخمین نیز مشخص کردن مقدار برای یک صفت خروجی است؛ اما بر خلاف طبقه بندی صفات خروجی برای مساله تخمین، عددی است بجای مقوله ای .
بعنوان یک مثال برای تخمین ، پایگاه داده ای را در نظر بگیرید که هر رکورد آن اطلاعاتی را راجع به شخصی دارد مثل : محل زندگی، غذای روزانه در اغلب روزها، نوع ماشین شخصی ، درآمد ماهانه و ....
هدف الگوریتم تخمین در این مثال ایجاد مدلی برای تشخیص درآمد ماهانه نمونه های جدید (رکوردهای جدید) می باشد.{که بقیه صفات آنها بجز درآمد ماهانه مشخص است}