آشنایی با مفهوم خوشه بندی و الگوریتم های آن
- 1400/6/30
- 1896
- نرم افزار های تخصصی
مفهوم خوشهبندی در یادگیری ماشین و الگوریتم های آن
دسته بندی یک مجموعه کوچک با ویژگی های محدود کار آسانی است. حال فرض کنید که بخواهید یک مجموعه با هزاران داده با بسیاری از ویژگی های متفاوت را دسته بندی کنید. چگونه این کار را انجام می دهید؟ مسلما انجام این کار برای ما بسیار دشوار است. بنابراین دسته بندی این تعداد از داده ها از توان ما خارج است. الگوریتم های خوشه بندی بهترین ابزاری است که می تواند در این امر کمک زیادی به ما کند. یکی از رایج ترین روش های یادگیری بدون نظارت، خوشه بندی(Clustering) است. در خوشه بندی، داده ها بر طبق شباهت نقاط داده، دسته بندی می شوند و مجموعه خاصی از داده ها به زیر گروه ها یا خوشه هایی اختصاص می یابند که داده های موجود در همان خوشه، شباهت هایی با یکدیگر دارند. در واقع میتوان گفت که خوشه بندی پیروی کردن از پروسه پیاده سازی توانایی شناخت انسان برای تشخیص اشیا بر اساس ماهیت و ویژگی های آن ها می باشد به گونهای که ماشین ها قادر به جدا کردن بین اشیاء گوناگون هستند. به عنوان مثال شما برای یک خرید آسان میوه به یک میوه فروشی مراجعه می کنید، سپس میوه ها را طبق رنگ، بافت و سایر اطلاعات حسی که به وسیله مغزتان پردازش می گردد، جدا می کنید. این یک روش یادگیری بدون نظارت است چون اشیا هیچ بر چسب خارجی ندارند. در واقع ماشین باید بدون هیچ نگاشتی(mapping)، ورودی-خروجی را مشخص می کند تا الگوها و ویژگی های خاص را بیاموزید. این الگوریتم قادر است، ماهیت اشیاء داده را دریافت کند و پس از آن به ایجاد کلاس های جداگانه برای دسته بندی مناسب آن ها بپردازد. در یادگیری ماشین خوشه بندی، الگوریتم، جامعه آماری را به گروه های متعددی تقسیم می کند به گونه ای که هر نقطه داده، مشابه نقاط داده در همان گروه است و با نقاط داده در سایر گروه ها تفاوت دارد. پس از آن طبق تشابه و عدم تشابه، زیر گروه مناسب را به جسم اختصاص می دهد. در ادامه به الگوریتم ها و کاربردهای آن می پردازیم.
انواع الگوریتم های خوشهبندی کدامند؟
خوشه بندی سلسله مراتبی
این نوع خوشه بندی جایگزینی برای انواع الگوریتم خوشه بندی بر اساس نمونه های اولیه می باشد. از مزیت مهم خوشه بندی سلسله مراتبی این است که در این روش نیازی به تعیین تعداد خوشه ها نیست، در این روش، الگوریتم خوشه بندی تعداد خوشه ها را می یابد. افزون بر این، الگوریتم مذکور امکان رسم دندروگرام ها که نشان دهنده خوشه بندی سلسله مراتبی باینری هستند، فراهم می نماید. خوشه بندی سلسله مراتبی به دو دستۀ تقسیمی و تجمیعی تقسیم می شود
تقسیمی(بالا به پایین): در این نوع از الگوریتم سلسله مراتبی، در ابتدا همه نقاط داده ها در یک خوشۀ تنها جمع می شوند. پس از آن خوشه ها به خوشه های کوچک تر تقسیم می شوند و این کار تا زمانی که هر خوشه فقط دارای یک نمونه باشد، ادامه دارد.
تجمیعی(پایین به بالا): در این الگوریتم سلسله مراتبی، هر نمونه یک خوشه مجزا است. پس از آن، این خوشه ها با خوشه هایی که به آن ها نزدیک تر هستند، ترکیب می گردد. این کار تا زمانی که به یک خوشه واحد تشکیل شوند، ادامه دارد.
خوشه بندی فازی
در خوشه بندی فازی، نقاط داده متعلق به بیش از یک دسته است. هر مولفه در آن خوشه دارای یک ضریب عضویت است که به اندازه حضور در آن خوشه ارتباط دارد. البته این روش به عنوان روش خوشه بندی نرم نیز شناخته می شود.
خوشه بندی مبتنی بر مدل
در این روش، یک توزیع آماری برای داده ها فرض می شود که هدف از اجرای این مدل از خوشه بندی، ارزیابی پارامترهای توزیع آماری به همراه متغیر پنهانی است و در این مدل به عنوان بر چسب خوشه ها معرفی شده است.
خوشه بندی بر اساس بخش بندی
در این خوشه بندی، الگوریتم، داده ها را به زیر مجموعهای از k گروه تقسیم بندی می نماید. این k گروه با خوشه باید قبلا تعریف شده باشند. در الگوریتم مبتنی بر بخش بندی، داده ها طبق دو شرط زیر تقسیم شده است:
- هر گروه باید حداقل دارای یک نقطه یا عضو باشد.
- هر نقطه باید فقط متعلق به یک گروه باشد.
شایان ذکر است که رایج ترین نوع روش خوشه بندی مبتنی بر بخش بندی، خوشه بندی K-Means میباشد.
خوشه بندی بر اساس تراکم
در این خوشه بندی، فضای داده ای که دارای مناطق تراکمی است، به وسیله مناطق پراکنده از یکدیگر جدا می شوند. این الگوریتم های خوشه بندی، در ارزیابی و یافتن ساختارهای اشکال غیر خطی بر اساس تراکم، نقش مهمی دارند. DBSCAn از الگوریتم های پر طرفدار مبتنی بر تراکم محسوب می شود که امکان خوشه بندی مکانی داده هایی که دارای نویز است، مهیا می کند. لازم به ذکر است که این روش از دو مفهوم دسترسی داده ها و اتصال داده ها استفاده می کند.
کاربرد های خوشه بندی
از کاربردهای خوشه بندی می توان موارد زیر را نام برد:
نفت و گاز: پیش بینی خرابی حسگر پالایشگاه، پیدا کردن منابع دید انرژی، تسهیل توزیع نفت جهت افزایش استفاده و مقرون به صرفه بودن آن و آنالیز مواد معدنی موجود در زمین از کاربردهای خوشه بندی است.
شبکه های بی سیم: با بهرهگیری از الگوریتم خوشه بندی روی شبکه های بی سیم، امکان صرفهجویی در مصرف انرژی در حسگرهای بی سیم فراهم می شود. از این رو به منظور بهبود مصرف انرژی و بهینه سازی جا به جایی داده ها در شبکه های بی سیم، الگوریتم های متعددی بر مبنای خوشه بندی می باشند.
داده کاوی: یکی از روش هایی که می توان از آن برای جست و جو در داده های زیاد و کشف اطلاعات و دانش از این داده ها استفاده کرد، داده کاوی می باشد. برای استخراج الگو از این داده ها الگوریتم های زیادی وجود دارند که هریک از این الگوریتم ها موارد استفاده مخصوص به خود را دارند. یکی از مهم ترین و پرکاربردترین روش های داده کاوی، بهره مندی از الگوریتم های خوشه بندی می باشد. همان طور که قبلا هم گفته شد خوشه بندی یا دسته بندی داده ها با استفاده ار شباهت های ذاتی که داده های مشابه با یکدیگر دارند، در یک گروه قرار می دهد و طبق این دسته بندی و شباهت، الگوها را کشف می کند. از این رو می توان گفت که پیدا کردن این الگوها مدیریت داده ها را برای کاربردهای گوناگون بسیار راحت می کند.
پزشکی: یادگیری ماشینی در صنعت سلامتی و پزشکی روند پر سرعتی دارد که به دلیل ایجاد حسگرها و دستگاه های پوشیدنی به وجود آمده است. از این دستگاه ها می توان جهت ارزیابی سریع سلامت یک بیمار بهره گرفت. یکی از این کاربردها، شناسایی سلولهای سرطانی می باشد. در واقع با استفاده از الگوریتم های خوشه بندی، می توان مجموعه داده های مربوط به سرطان را پی برد. در ترکیبی از اطلاعات که از داده های سرطانی و غیر سرطانی تشکیل شده است، الگوریتم های خوشهبندی به یادگیری خصوصیات گوناگون موجود در داده هایی که روی آن ها خوشه های حاصل را تولید می نمایند، می پردازند.
کتابخانه ها: با استفاده از خوشه بندی می توان کتاب های متعدد را طبق موضوعات و اطلاعات آن ها دسته بندی نمود. این کار موجب می شود تا جست وجوی کتاب ها راحت تر انجام گیرد.
دسته بندی مشتری: دسته بندی مشتری یکی از محبوب ترین کاربردهای خوشه بندی محسوب می شود. مطابق با تحلیل مبنی بر کاربر، شرکت ها می توانند مشتریانی که برای محصول و یا خدماتشان کاربران بالقوه می باشند، شناسایی کنند. در واقع خوشه بندی این امکان را در اختیار آن ها قرار می دهد تا مشتریان را به چند خوشه تقسیم نموده و طبق آن ها بتوانند راهبردهای جدیدی را برای جلب توجه پایگاه مشتریان خود به دست آورند.
زیست شناسی: از الگوریتم های خوشه بندی برای طبقه بندی گونه های مختلف گیاهان و حیوانات استفاده می شود که همین امر می تواند زیست شناسان را یاری کند.
سرویس های مالی: بانک ها و دیگر کسب و کارها در صنعت مالی از فناوری یادگیری ماشینی برای پیش گیری از تقلب و شناسایی بینش های مهم در داده ها استفاده می کنند که این بینش ها قادر به شناسایی فرصت های سرمایه گذاری هستند. علاوه بر این به سرمایه گذاران جهت اطلاع یافتن در خصوص زمان مناسب جهت خرید و فروش کمک می کنند. افزون بر این داده کاوی قادر است مشتریانی که پروفایل هایی با ریسک بالا دارند، شناسایی نماید و یا از نظارت سایبری برای اشاره به نشانه های هشدار تقلب استفاده کند.
موتورهای جست و جو: زمانی که شما در گوگل موارد خاصی را جست و جو می کنید، ترکیبی از نتایج که مشابه با سوال اصلی شما هستند، دریافت می کنید. این نتیجه خوشه بندی است که اشیا (در این جا همان نتایج جست و جو می باشد) مشابه را در یک خوشه جداگانه گروه بندی نموده و آن را به شما ارائه می دهد. داده ها طبق نزدیک ترین شی مشابه به خوشه ای جداگانه تخصیص داده می شود و در نهایت مجموعه ای کامل از نتایج را به کاربر نشان می دهد.
برنامه ریزی شهری: الگوریتم های خوشه بندی در برنامه ریزی های شهری برای ساختن گروه هایی از اطلاعات منازل و همچنین بررسی ارزش آن ها بر اساس موقعیت جغرافیایی و عوامل دیگری مورد استفاده قرار می گیرد. به بیان دیگر، از این گروه ها برای قیمت گذاری استفاده می شود که نظر افراد در تعیین قیمت کمتر تاثیر خواهد گذاشت.
رباتیک: در رباتیک، از الگوریتم های خوشه بندی برای آگاهی از موقعیت رباتیک جهت ردیابی اشیا و همچنین تشخیص خروجی در داده های حسگر استفاده می شود.
تحلیل شبکه اجتماعی: تعیین انجمن ها و خوشه بندی گراف در یک شبکه اجتماعی سبب می شود که به راحتی بتوان آن ها را تحلیل و ساده سازی کرد. انجمن ها به گروه هایی از نودهای شبکه گفته می شود که ارتباط آن ها با یکدیگر، بسیار نزدیک است و با نودهایی که در خارج از شبکه هستند ارتباط کمتری دارند.
بیمه: از الگوریتم های خوشه بندی در بیمه جهت تایید مشتریان، بیمه نامه های آنان و همچنین شناسایی کلاهبرداری ها استفاده می شود.
و غیره.
اهمیت استفاده از الگوریتم های خوشه بندی
خوشه بندی روشی بسیار پر اهمیت است. چرا که در بین مجموعه داده هایی بدون بر چسب به طور طبیعی گروه بندی منظمی را ایجاد می کند. در خوشه بندی، معیار استانداردی وجود ندارد و آن به کاربر و همچنین معیارهای مناسبی که می تواند شرایط آن ها را بر آورده نماید، ارتباط دارد. به طور مثال جهت یافتن گروه های مشابه، نمایندگان را به وسیله تقلیل داده می توان یافت و ویژگی های مناسب آن ها را توصیف نمود. علاوه بر این می توان داده غیر معمول را جهت تشخیص داده های پرت(Outlier) پیدا کرد و سپس الگوریتم فرضیه ای را عرضه کرد. همچنین به هر میزانی که شباهت نقاط بیشتر باشند، فرضیات از اعتبار بیشتری برخوردار می شوند.
سخن پایانی
با توجه به کاربردهای فراوانی که الگوریتم های خوشه بندی در صنعت های گوناگون دارند، اهمیت یادگیری آن ها بیش از پیش احساس می شود. در حال حاضر استفاده از این الگوریتم ها در صنعت های مختلف رو به رشد است که همین امر موجب تسهیل امور در این صنعت ها شده است. در سال های اخیر هم تلاش های زیادی جهت بهبود کارکرد الگوریتم هایی که وجود دارند صورت گرفته است. از این رو با توجه به نیازهای جدید در راستای پردازش داده های بزرگ یا big data، تمایل به کاربرد خوشه های تولید شده به منظور کارکرد تجاری افزایش یافته است.
به شما آموزش یادگیری ماشین با استفاده از R و پایتون را پیشنهاد می کنم.