مقدمه بر الگوریتم های برتر داده کاوی-یادگیری ماشین
مقدمه بر الگوریتم های برتر داده کاوی
استفاده از دادهها به منظور کشف رابطه بین آنها اساس دادهکاوی است. در این مبحث 10 الگوریتم های داده کاوی و یادگیری ماشین که بیشترین کاربرد را در علم داده دارند را به صورت خلاصه آموزش میدهیم. که شامل موارد زیر می باشد:
- رگرسیون خطی
- رگرسیون لجستیک
- خوشه بندی k-means
- پی سی ای
- ساپوریت وکتور ماشین
- درخت تصمیم
- جنگل تصادفی
- گرادینت بوستینگ ماشین
- ایکس جبوست
- شبکه عصبی
ولی قبل از شروع یادگیری الگوریتم ها داده کاوی واجب است یازده نکته طلایی درمورد علم داده که دانستن آن برای همه بسیار لازم است را بدانید.
🖌@BigData_channel
- هیچ وقت داده تمیز و آماده پردازش نیستند.
- شما باید عمده زمان را صرف پاکسازی داده و پیش پردازش کنید.
- هیچ روش تمام اتوماتیکی برای تحلیل داده وجود نداره و خودتان باید مستقیم با داده سر و کله بزنید.
- ۹۵ درصد تحلیل ها نیاز به روش یادگیری عمیق ندارند. پس خودتان را درگیر الگوریتم پیچیده نکنید.
- در عمل بیگ دیتا فقط ابزار است و ربطی به حجم داده ندارد.
- شما باید از رویکرد های بیزین استقبال کنید.
- هیچ کس، آنچه شما انجام داده اید را تضمین نمیکند.
- دنیای آکادمیک با دنیای کار عملیاتی دو جهان متفاوت هستند.
- نحوه ارائه خروجی ها یک مبحث کلیدی است.
- تمامی مدل ها خطا دارند. با این حال بعضی از آنها مفید هستند.
- درست هست که مدل های تحلیل قدرتمند هستند ولی این به این معنی نیست که میتوانید به واسطه آن نور را در روز مشاهده کنید.
رگرسیون خطی
واژه رگرسیون برای اولین بار در مقاله معروف فرانسیس گالتون دیده شد که در مورد قد فرزندان و والدینشان بود. این واژه به معنی بازگشت است. او در مقاله خود در سال ۱۸۷۷ اشاره میکند که قد فرزندان قد بلند به میانگین قد جامعه میل میکند. او این رابطه را «بازگشت» (Regress) نامید.
در آمار، رگرسیون خطی یک رویکرد مدل خطی بین متغیر وابسطه(پاسخ) با یک یا چند متغیر مستقل(توصیف) است. اغلب برای کشف مدل رابطهی خطی بین متغیرها از رگرسیون (Regression) استفاده میشود.
برای سنجش شدت رابطه بین متغیر وابسته و مستقل میتوان از ضریب همبستگی استفاده کرد. هر چه ضریب همبستگی به ۱ یا ۱- نزدیکتر باشد، شدت رابطه خطی بین متغیرهای مستقل و وابسته شدیدتر است. البته اگر ضریب همبستگی نزدیک به ۱ باشد جهت تغییرات هر دو متغیر یکسان است که به آن رابطه مستقیم میگوییم و اگر ضریب همبستگی به ۱- نزدیک باشد، جهت تغییرات متغیرها معکوس یکدیگر خواهد بود و به آن رابطه عکس میگوییم. ولی در هر دو حالت امکان پیشبینی مقدار متغیر وابسته برحسب متغیر مستقل وجود دارد.
نمایش رابطهی خطی بین دو متغیر مستقل و وابسته معمولا توسط «نمودار نقطهای» (Scatter Plot) انجام میشود.
سادهترین مدل رگرسیونی، رگرسیون خطی است که شامل دو نوع خطی ساده و خطی چندگانه میباشد. مدلهای رگرسیونی خطی یک چارچوب وسیع و غنی را در بر میگیرند که نیاز تحلیلهای زیادی را برآورده میکند و پاسخ میدهد.
اما رگرسیون خطی برای همه مسائل نمیتواند مناسب باشد، زیرا بعضی از اوقات متغیر پاسخ و متغیرهای رگرسیونی با تابع غیرخطی معلوم به هم مربوط میشوند. مانند زمانی که متغیر وابسته ما دو سطح داشته باشد. یعنی پاسخها تنها شامل دو حالت، مانند وجود یا عدم وجود، خرید یا عدم خرید، بهبود یا عدم بهبود و… (که آنها را با مقادیر 0 و 1 نشان می دهیم) است.
در این مواقع از رگرسیون لجستیک استفاده میکنیم.
رگرسیون خطی چیست؟
در این قسمت رگرسیون خطی ساده و چندگانه مورد بررسی قرار میگیرد. در رگرسیون خطی ساده فقط یک متغیر پیشبینی کننده داریم. در حالی که در رگرسیون خطی چندگانه بیش از یک متغیر پیشبینی کننده داریم.
به عنوان مثال وقتی میخواهیم بررسی کنیم که آیا میزان ضریب هوشی دانشآموزان بر معدل آنها تاثیرگذار هست یا نه؟ از رگرسیون خطی ساده استفاده میکنیم. اما زمانی که میخواهیم بررسی کنیم، آیا میزان ضریب هوشی و ساعت مطالعه در هفته دانشآموزان بر معدل آنها تاثیرگذار هست یا نه؟ از رگرسیون خطی چندگانه استفاده میکنیم. در حالت اول برای پیشبینی متغیر پاسخ تنها یه متغیر مستقل داریم اما در حالت دوم برای پیشبینی متغیر پاسخ دو متغیر ضریب هوشی و ساعت مطالعه در هفته را داریم.
رگرسیون خطی ساده
قبل از انجام رگرسیون خطی ساده، قدم اول بررسی رابطه بین دو متغیر است. برای بررسی این رابطه نمودار پراکندگی بین دو متغیر را رسم میکنیم. یکی از سادهترین روشها برای بررسی هبستگی و رابطه بین متغیرها با یکدیگر رسم نمودار پراکندگی است.
ا بررسی این نمودار، خطی یا غیر خطی و مثبت یا منفی بودن رابطه بین دو متغیر را متوجه میشویم. همچنین با رسم نمودار پراکندگی میتوانیم نقاط پرت را نیز شناسایی کنیم. در رسم نمودار پراکندگی، متغیر مستقل یا پیشگو در محور افقی و متغیر وابسته یا پاسخ در محور عمودی قرار میگیرد.
همانطور که در شکل 1 و 2 میبینید، نقاط حول یک خط راست جمع شدهاند پس در این دو شکل وجودرابطه خطی بین دو متغیر مشهود است. در شکل 1 رابطه خطی مثبت مشاهده میشود و در شکل 2 به دلیل اینکه شیب خط منفی است پس رابطه منفی دیده میشود. اما در شکل 3 رابطه خطی بین دو متغیر مشاهده نمیشود.
اگر رابطه خطی بین دو متغیر وجود نداشته باشد، مقدار ضریب همبستگی نزدیک صفر خواهد بود. اما ضریب همبستگی صفر به این معنی نیست که هیچ نوع رابطه بین دو متغیر وجود ندارد. بلکه ممکن است یک رابطه غیرخطی بین دو متغیر وجود داشته باشد. در رگرسیون خطی ساده متغیر وابسته یا پاسخ را با Y و متغیر مستقل یا پیشگو را با X نشان میدهیم و معادله خط رگرسیون ساده به صورت Y=aX+b است.
رگرسیون لجستیک (Logistic Regression)
یکی از روشهای «دستهبندی» (Classification) در مبحث «آموزش نظارت شده» (Supervised Machine Learning) رگرسیون لجستیک است. در این روش رگرسیونی، از مفهوم و شیوه محاسبه «نسبت بخت» (Odds Ratio) استفاده میشود.
رگرسیون خطی برای همه مسائل نمیتواند مناسب باشد، زیرا بعضی از اوقات متغیر پاسخ و متغیرهای رگرسیونی با تابع غیرخطی معلوم به هم مربوط میشوند. مانند زمانی که متغیر وابسته ما دو سطح داشته باشد. یعنی پاسخها تنها شامل دو حالت، مانند وجود یا عدم وجود، خرید یا عدم خرید، بهبود یا عدم بهبود و… (که آنها را با مقادیر 0 و 1 نشان می دهیم) است.
در این مواقع از رگرسیون لجستیک استفاده میکنیم. الگوهای رگرسیون لجستیک برای بیان پیشبینی متغیرهای دو حالتی الگوهای مناسبی هستند.این روش در ابتدا در کاربردهای پزشکی و برای احتمال وقوع یک بیماری مورد استفاده قرار میگرفت. لیکن امروزه در تمام زمینههای علمی کاربرد وسیعی یافته است. به عنوان مثال مدیر تبلیغاتی میخواهد بداند در خرید یا عدم خرید یک محصول یا برند، چه متغیرهایی مهم هستند؟
غیر از رگرسیون لجستیک انواع دیگری از مدلهای رگرسیون غیرخطی نیز وجود دارند که شامل: مدلهای توانی، معکوس، لگاریتمی، سهمی، نمایی، مرکب، رشد، منحنی S و … است.
رگرسیون لجستیک زمانی استفاده می شود که متغیر وابسته به صورت گروه بندی شده باشد.
متغیر وابسته می تواند ذاتا طبقه بندی شده باشد، بعنوان مثال :
- آیا یک ایمیل اسپم است (1) یا اسپم نیست (0)
- آیا یک تومور بدخیم است (1) یا خوش خیم (0)
متغیر وابسته می تواند ذاتا هم طبقه بندی شده نباشد و دارای مقیاس کمی فاصله ای یا نسبی باشد و خود محقق با توجه به سوال پژوهشی تحقیق، با در نظر گرفتن نقطه برش متغیر کمی موجود را به متغیر طبقه بندی شده تبدیل نماید و از رگرسیون لجستیک استفاده کند. بعنوان مثال:
- آیا یک فرد چاق است (1) یا در وضعیت نرمال و یا کمی اضافه وزن قرارد دارد (0). مشخص است که وضعیت چاقی فرد با شاخص BMI سنجیده می شود و اگر شخصی شاخص BMI بیشتر از 30 داشته باشد آن شخص چاق می باشد. در واقع می توان از مدل رگرسیون لجستیک برای طبقه بندی وضعیت چاقی یک فرد استفاده کرد، واضح است که متغیر BMI یک متغیر کمی فاصله ای می باشد که ما با در نظر گرفتن نقطه برش 30≤BMI آنرا به یک متغیر گروه بندی شده تبدیل کردیم (افرادی با 30>BMI در گروه افرادی با وضعیت نرمال و کمی اضافه وزن داشته باشند و افرادی که 30≤BMI دارند در گروه چاق قرار بگیرند).
انواع رگرسیون لجستیک
- رگرسیون لجستیک باینری یا دو وجهی (Binary logistic regression)
- رگرسیون لجستیک چند سطحی یا چند وجهی (Multinomial logistic regression)
- رگرسیون لجستیک ترتیبی (Ordinal logistic regression)
خوشهبندی k-میانگین
الگوریتم k-میانگین یکی از سادهترین و محبوبترین الگوریتمهایی است که در «دادهکاوی» (Data Mining) بخصوص در حوزه «یادگیری نظارت نشده» (Unsupervised Learning) به کار میرود. الگوریتم خوشهبندی k-میانگین از گروه روشهای خوشهبندی تفکیکی (Partitioning Clustering) محسوب میشود.
الگوریتم خوشه بندی K-means به محاسبه نقاط مرکزی می پردازد و این کار را تکرار می کند تا نقطه مرکزی بهینه را پیدا کند. این الگوریتم فرض می کند که تعداد خوشه ها مشخص شده است. همچنین به آن الگوریتم خوشه بندی flat نیز گفته می شود. تعداد خوشه های مشخص شده در داده توسط الگوریتم، با k در K-means نمایش داده می شوند.
در این الگوریتم، نقاط داده به گونه ای به یک خوشه تخصیص داده می شوند که مجموع مربع فاصله بین نقاط داده و نقطه مرکزی کمینه باشد. قابل درک است که هر چه تغییرات در خوشه ها کمتر باشد، نقاط داده مشابه تری را درون خوشه خواهیم داشت.
عملکرد الگوریتم K-Means :
در الگوریتم خوشهبندی K-Means ابتدا k عضو (که k تعداد خوشهها است) بصورت تصادفی از میان n عضو به عنوان مراکز خوشهها انتخاب میشود. سپس n-k عضو باقیمانده به نزدیکترین خوشه تخصیص مییابند. بعد از تخصیص همه اعضا مراکز خوشه مجدداً محاسبه میشوند و با توجه به مراکز جدید به خوشهها تخصیص مییابند و این کار تا زمانی که مراکز خوشهها ثابت بماند ادامه مییابد.
بهترین خوشهبندی آن است که مجموع تشابه بین مرکز خوشه و همه اعضای خوشه را حداکثر و مجموع تشابه بین مراکز خوشهها را حداقل کند. برای انتخاب بهترین خوشه ابتدا براساس نظرات خبره و مطالعات قبلی یک محدوده پیشنهادی برای تعداد خوشهها مشخص میشود. معمولاَ این محدوده بین انتخاب میشود. سپس مقدار ρ(k) برای هریک از مقادیر k محاسبه میشود. مقداری از k که در آن ρ(k) حداکثر شود، به عنوان تعداد بهینه خوشهها انتخاب میشود. به این ترتیب میتوان تعداد خوشهای را انتخاب نمود که به ازای آن فاصله بین مراکز خوشهها و شباهت مراکز خوشه با اعضای درون هر خوشه حداکثر است.
الگوریتم K-means از روش Expectation-Maximization برای حل مساله استفاده می کند. از مرحله انتظار (Expectation) برای تخصیص نقاط داده به نزدیکترین خوشه استفاده می شود و مرحله بیشینه سازی (Maximization) برای محاسبه نقطه مرکزی هر خوشه مورد استفاده قرار میگیرد.
در زمان کار با الگوریتم K-means، باید موارد زیر را در نظر داشته باشیم.
- در زمان کار با الگوریتم های خوشه بندی مانند K-means، توصیه می شود داده را به صورت استاندارد استفاده کنید، زیرا چنین الگوریتم هایی از اندازه گیری مبتنی بر فاصله برای تعیین شباهت بین نقاط داده استفاده می کنند.
- به علت ذات تکرار کننده K-Means و مقدار دهی اولیه نقاط مرکزی به صورت تصادفی، ممکن است K-Means به یک نقطه بهینه محلی برسد و به یک نقطه بهینه سراسری همگرا نشود.
برخی از ویژگی های مهم خوشه بندی K-Means :
• عملکرد الگوریتم وابسته به مراکز اولیه است
• اغلب در بهینەهای محلی خاتمه پیدا میکند
• خوشەها به شکلهای محدب هستند
• الگوریتمی موثر برای دادەهایی با حجم زیاد است(دلیل این ویژگی این است که پیچیدگی زمانی این الگوریتم O(nmkt) است که( n تعداد نمونه ها، m تعداد ویژگی ها، k تعداد خوشه ها و t تعداد تکرار است) و تابعی خطی از حجم نمونه میباشد.
برای روشن شدن موضوع به مثال زیر توجه کنید فرض کنید سن 9 نفر به صورت مجموعهی زیر جمع آوری شده است: {2, 4, 10, 12, 3, 20, 30, 11, 25}
میخواهیم با استفاده از روش k-میانگین، دادههای به دست آمده را به دو خوشه تقسیم کنیم
گام 1 در این گام ابتدا باید دو عدد تصادفی به عنوان مراکز خوشهها تولید کنیم. فرض کنید اعداد 3 و 4 مراکز اولیه خوشه ها باشند .حال هریک از دادهها را با توجه به فاصله ی هریک از آنها از این مراکز، به یکی از خوشه ها نسبت میدهیم.به عنوان مثال عدد 2 به مرکز 3 و عدد 10 به مرکز4 نزدیکتر است.
بنابراین با ادامەی روند بالا، دو خوشەی زیر به دست میآیند 𝐶1 = {2, 3} 𝐶2 = {4, 10, 12, 20, 30, 11, 25}
گام ٢ (گام تکرار) در این گام مراکز جدید هر خوشه را محاسبه کرده و با توجه به مراکز جدید، دوباره عمل واگذاری دادهها را انجام میدهیم. که مراکز جدید 2.5 و 16خواهند بود.
مشاهده میشود عدد 4 که در مرحله قبل به خوشه دوم نسبت داده شد در این مرحله به مرکز خوشه اول نزدیکتر است. در نتیجه باید عدد 4 را در خوشه اول قرار دهیم. پس خوشه های جدید به شکل زیر خواهند بود: 𝐶1 = {2, 3, 4} 𝐶2 = {10, 12, 20, 30, 11, 25}
• روند بالا را تا زمانی ادامه میدهیم که شرط توقف برقرار شود
• مراحل بعدی به صورت زیر خواهند بود.
𝜇1 = 3 𝜇2 = 18 → 𝐶1 = {2, 3, 4, 10 } 𝐶2 = {12, 20, 30, 11, 25}
مرحله بعد به صورت زیر خواهد بود
و مرحله نهایی به صورت زیر است که در ان مراکز ثابت شده است و خوشه ها تغییر نمیکنند.
مدیریت سرور پشتیبانی و مشاوره – ثبت دامنه