پنج شنبه 10 فروردین 1396 | Thursday 30 th of March 2017 صفحه اصلی گروه الکترونیکی کامپیوتر
2-6-5- مدل‌ها و الگوریتم‌های داده‌کاوی

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

نکته مهم دیگر این است که در بین این الگوریتم‌ها و مدل‌ها بهترین وجود ندارد و با توجه به داده‌ها و کارایی مورد نظر باید مدل انتخاب گردد.

 

1-شبکه‌های عصبی [1]

شبکه‌های عصبی از عملی‌ترین روش‌های مدل‌سازی مسائل پیچیده و بزرگ است. شبکههای عصبی می‌توانند برای مسائل کلاس‌بندی (که خروجی یک کلاس است) یا مسائل رگرسیون (که خروجی یک مقدار عددی است) استفاده شوند.

هر شبکه عصبی شامل یک لایه ورودی[2]می‌باشد که هر گره در این لایه معادل یکی از متغیرهای پیش‌بینی می‌باشد. گره‌های موجود در لایه میانی به تعدادی گره در لایه نهان[3] وصل می‌شوند. هر گره ورودی به همه گره‌های لایه نهان وصل می‌شود.

گره‌های موجود در لایه نهان می‌توانند به گره‌های یک لایه نهان دیگر وصل شوند یا می‌توانند به لایه خروجی[4] وصل شوند. لایه خروجی شامل یک یا چند متغیر خروجی می‌باشد.

 

شکل 2-6- شبکه عصبی با یک لایه نهان

هر یال که بین نود‌های X, Yمی‌باشد دارای یک وزن است که با Wxyنمایش داده می‌شود. این وزن‌ها در محاسبات لایه‌های میانی استفاده می‌شوند و طرز استفاده انها به این صورت است که هر نود در لایه‌های میانی (لایه‌های غیر از لایه اول) دارای چند ورودی از چند یال مختلف می‌باشد که همان‌طور که گفته‌شد هر کدام یک وزن خاص دارند.

هر نود لایه میانی میزان هر ورودی را در وزن یال مربوطه ان ضرب می‌کند و حاصل این ضرب‌ها را با هم جمع‌می‌کند و سپس یک تابع از پیش تعیین‌شده (تابع فعال سازی) روی این حاصل اعمال می‌کند و نتیجه را به عنوان خروجی به نود‌های لایه بعد می‌دهد.

وزن یال‌ها، پارامترهای ناشناخته‌ای هستند که توسط تابع اموزش[5] و داده‌های اموزشی که به سیستم داده می‌شود تعیین می‌گردند.

تعداد گره‌ها و تعداد لایه‌های نهان و نحوه وصل‌شدن گره‌ها به یکدیگر معماری (توپولوژی) شبکه عصبی را مشخص می‌کند. کاربر یا نرم‌افزاری که شبکه عصبی را طراحی می‌کند باید تعداد نود‌ها، تعداد لایه‌های نهان، تابع فعال‌سازی و محدودیت‌های مربوط به وزن یال‌ها را مشخص کند.

شکل 2-7- Wxyوزن یال بین Xو Y

از مهمترین انواع شبکه‌های عصبی Feed-Forward Back propagationمی‌باشد که در اینجا به اختصار ان را توضیح می‌دهیم:

Feed-Forward: به معنی این است که مقدار پارامتر خروجی براساس پارامترهای ورودی و یک سری وزن‌های اولیه تعیین‌می‌گردد. مقادیر ورودی با هم ترکیب‌شده و در لایه‌های نهان استفاده می‌شوند و مقادیر این لایه‌های نهان نیز برای محاسبه مقادیر خروجی ترکیب می‌شوند.

Back propagation: خطای خروجی با مقایسه خروجی با مقدار مورد انتظار در داده‌های ازمایشی محاسبه می‌گردد و این مقدار برای تصحیح شبکه و تغییر وزن یال‌ها استفاده می‌گردد و از گره خروجی شروع شده و به عقب محاسبات ادامه می‌یابد.

این عمل برای هر رکورد موجود در بانک اطلاعاتی تکرار می‌گردد.

به هر بار اجرای این الگوریتم برای تمام داده‌های موجود در بانک یک دوره[6] گفته می‌شود. این دوره‌ها انقدر ادامه می‌یابد که دیگر مقدار خطا تغییر نکند.

از انجایی که تعداد پارامترها در شبکه‌های عصبی زیاد می‌باشد محاسبات این شبکه‌ها می‌تواند وقت‌گیر باشد ولی اگر این شبکه‌ها به مدت کافی اجرا گردند معمولا موفقیت‌امیز خواهند بود. مشکل دیگری که ممکن است به وجود بیاید اورفیتینگ[7] می‌باشد و ان بدین صورت است که شبکه فقط روی داده‌های اموزشی خوب کار می‌کند و برای سایر مجموعه داده‌ها مناسب نمی‌باشد. برای رفع این مشکل باید بدانیم چه زمانی اموزش شبکه را متوقف کنیم. یکی از راه‌ها این است که شبکه را علاوه بر داده‌های ازمایشی روی داده‌های تست نیز مرتبا اجرا کنیم و جریان تغییر خطا را در انها بررسی کنیم. اگر در این داده‌ها به جایی رسیدیم که میزان خطا رو به افزایش بود حتی اگر خطا در داده‌های ازمایشی همچنان رو به کاهش باشد اموزش را متوقف می‌کنیم.

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

یکی از مهم‌ترین فواید شبکه‌های عصبی قابلیت اجرای انها روی کامپیوترهای موازی می‌باشد.

 

  • درخت تصمیم[8]

درخت‌های تصمیم روشی برای نمایش یک سری از قوانین هستند که منتهی به یک رده یا مقدار می‌شوند. برای مثال می‌خواهیم متقاضیان وام را به دارندگان ریسک اعتبار خوب و بد تقسیم کنیم. شکل زیر درخت تصمیم مسئله فوق را نشان می‌دهد. این درخت همه مؤلفه‌های اساسی یک درخت تصمیم را داراست.

 

شکل 2-8- درخت تصمیم‌گیری

 

درخت‌های تصمیم از طریق جداسازی متوالی داده‌ها به گروه‌های مجزا ساخته می‌شوند و هدف در این فرایند افزایش فاصله بین گروه‌ها در هر جداسازی است.

یکی از تفاوت‌ها بین متد‌های ساخت درخت تصمیم این است که این فاصله چگونه اندازه‌گیری می‌شود. درخت‌های تصمیمی که برای پیش‌بینی متغیرهای دسته‌ای استفاده می‌شوند، درخت‌های کلاس‌بندی نامیده می‌شوند زیرا نمونه‌ها را در دسته‌ها یا رده‌ها قرار می‌دهند. درخت‌های تصمیمی که برای پیش‌بینی متغیرهای پیوسته استفاده‌می‌شوند درخت‌های رگرسیون نامیده می‌شوند.

درخت‌های تصمیم تعداد دفعات کمی از داده‌ها گذر می‌کنند (برای هر سطح درخت حداکثر یک مرتبه) و با متغیرهای زیاد به خوبی کار می‌کنند. درنتیجه مدل‌ها به سرعت ساخته می‌شوند. اگر به درخت اجازه دهیم بدون محدودیت رشد کند زمان ساخت بیشتری صرف می‌شود که غیر هوشمندانه است اما مسئله مهم‌تر این است که داده‌ها اورفیت می‌شوند. اندازه درخت‌ها را می‌توان از طریق قوانین توقف کنترل کرد. یک قانون معمول توقف، محدود کردن عمق رشد درخت است.

راه دیگر برای توقف، هرس کردن درخت است. درخت می‌تواند تا اندازه نهایی گسترش یابد، سپس با استفاده از روش‌های اکتشافی توکار یا با مداخله کاربر، درخت به کوچکترین اندازه‌ای که دقت در ان از دست نرود کاهش می‌یابد.

یک اشکال معمول درخت‌های تصمیم این است که انها تقسیم‌کردن را براساس یک الگوریتم حریصانه انجام می‌دهند که در ان تصمیم‌گیری در مورد این که بر اساس کدام متغیر تقسیم انجام شود، اثرات این تقسیم در تقسیم‌های اینده را درنظر نمی‌گیرد.

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

 

-رگرسیون منطقی[9]

در گذشته این روش برای پی4ش‌بینی مقادیر باینری یا متغیرهای دارای چند مقدار گسسته (کلاس) استفاده می‌شد. از انجایی که مقادیر مورد نظر برای پیش‌بینی مقادیر گسسته قابل استفاده می‌باشد نمی‌توان ان را به روش رگرسیون خطی مدل‌سازی کرد، برای این منظور این متغیرهای گسسته را به روشی تبدیل به متغیر عددی و پیوسته می‌کنیم، سپس مقدار لگاریتم احتمال متغیر مربوطه و بعد احتمال پیشامد را به این صورت در نظر می‌گیریم که احتمال اتفاق افتادن پیشامد را بر احتمال اتفاق نیفتادن پیشامد تقسیم می‌کنیم و تفسیر این نسبت مانند تفسیری است که در بسیاری از مکالمات روزمره در مورد مسابقات یا شرط‌بندی‌ها یا موارد مشابه به کار می‌رود. مثلا وقتی می‌گوییم شانس بردن یک تیم در مسابقه 3 به 1 است در واقع از همین نسبت استفاده کرده و معنی ان این است که احتمال برد ان تیم 75% است.

وقتی موفق شدیم لگاریتم احتمال مورد نظر را به دست اوریم با اعمال لگاریتم معکوس می‌توان نسبت مورد نظر و از روی ان کلاس مورد نظر را مشخص نمود.

4- تحلیل تفکیکی[10]

این روش از قدیمی‌ترین روش‌های ریاضی گروه‌بندی داده‌ها می‌باشد که برای اولین بار در سال 1936 توسط فیشر استفاده گردید. روش کار به این صورت است که داده‌ها را مانند داده‌های چند‌بعدی بررسی کرده و بین داده‌ها مرزهایی ایجاد می‌کند (برای داده‌های دو بعدی خط جدا‌کننده، برای داده‌های سه بعدی سطح جداکننده و ...) که این مرزها مشخص‌کننده کلاس‌های مختلف می‌باشد و بعد برای مشخص‌کردن کلاس مربوط به داده‌های جدید فقط باید محل قرارگیری ان را مشخص کنیم.

این روش از ساده‌ترین و قابل رشدترین روش‌های کلاس‌بندی است که در گذشته بسیار استفاده می‌شد اما به سه دلیل محبوبیت خود را از دست داد:

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

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

 

5-مدل افزودنی کلی (GAM)[11]

این روش در واقع بسطی بر روش‌های رگرسیون خطی و رگرسیون منطقی می‌باشد. به این دلیل به این روش افزودنی می‌گویند که فرض می‌کنیم می‌توانیم مدل را به صورت مجموع چند تابع غیر خطی( هر تابع برای یک متغیر پیش‌بینی‌کننده) بنویسیم. GAMمی‌تواند هم به منظور رگرسیون و هم به منظور کلاس‌بندی داده‌ها استفاده گردد. این ویژگی غیر خطی بودن توابع باعث می‌شود که این روش نسبت به روش‌های رگرسیون خطی بهتر باشد.

 

از دیگر مدل‌ها و الگوریتم‌های داده‌کاوی می‌توان به الگوریتم MARS[12]و استنتاج قوانین[13] و روش Boostingاشاره کرد که جای بحث انها در این پایان نامه نیست.

 



[1]Neural Networks

[2]Input Layer

[3]Hidden Layer

[4]Output Layer

[5]Training Method

[6]Epoch

[7]Overfitting

[8]Decision Tree

[9]Logistic Regression

[10]Discriminant Analysis

[11]Generalized Additive Models

[12]Multivariate Adaptive Regression Splines

[13]Rule Induction 

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26