40 گام به سوی آینده‌ای هوشمند - مجموعه وبینارهای رایگان در حوزه هوش مصنوعی
Filter by دسته‌ها
chatGTP
آموزش هوش مصنوعی و انواع آن
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
پایتون و ابزارهای یادگیری عمیق
کتابخانه‌ های یادگیری عمیق
یادگیری با نظارت
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
اخبار
تیتر یک
رسانه‌ها
آموزش پردازش زبان طبیعی
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
رویدادها
کاربردهای هوش مصنوعی
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
 با یادگیری بدون نظارت برای سفر به پاریس برنامه‌ریزی کنید

با یادگیری بدون نظارت برای سفر به پاریس برنامه‌ریزی کنید

تاکنون به این موضوع فکر کرده‌اید که یادگیری بدون نظارت برای سفر می‌‌تواند به شما در برنامه‌ریزی سفر به پاریس کمک کند؟ با ما همراه باشید تا بگوییم چگونه این کار شدنی است. ابتدا ما فهرستی از چشم‌اندازها و مکان‌های دیدنی پاریس تهیه کرده‌ایم تا علاقمندان از آن استفاده کنند. پس از اینکه فهرست‌بندی مکان‌ها و جاذبه‌های گردشگری به پایان رسید، یک نقشه گوگل هم ساخته شد.

مشاهده تمامی جاذبه‌های گردشگری پاریس به برنامه‌ریزی خاصی احتیاج دارد؛ اما سوال اینجاست که چطور می‌توان تصمیم گرفت از کدام جاذبه‌ها در وهله اول دیدن کرد و از چه ترتیبی باید پیروی کرد؟ ما این کار را به منزلۀ یک مسئله خوشه‌بندی تلقی می‌کنیم. روش یادگیری بدون نظارت برای سفر می‌تواند نقش مهمی در حل این مسئله ایفا کند.

الگوریتم هایی نظیر K-Means یا DBScan هم در این مسئله می‌توانند به کار آیند. اما در ابتدا باید داده‌ها را آماده کرد تا چنین الگوریتم‌هایی مطابق خواسته‌ها عمل کند.

موقعیت جغرافیایی و آماده‌سازی داده‌ها
موقعیت جغرافیایی و آماده‌سازی داده‌ها

یادگیری بدون نظارت برای سفر موقعیت‌های جغرافیایی

پیش از هرچیز برای یادگیری بدون نظارت برای سفر موقعیت‌های جغرافیایی را در پین نقشه گوگل با فرمت دوبعدی بررسی کردیم. تبدیل پین‌ها به طول جغرافیایی  Longitude  و عرض جغرافیایی  Latitude  می‌تواند اقدام بسیار خوبی باشد. ما به دنبال راهی سریع‌تر برای استخراج این اطلاعات از نقشه گوگل بودیم. StackOverflow کمک می‌کند تا به همه خواسته‌هایمان برسیم. شما باید به این لینک مراجعه کرده و فایل *.kmz را دانلود کنید. سپس باید این فایل را به فایل *.zip تغییر دهید. در وهله بعد، نوبت به استخراج فایل و باز کردن doc.kml با نرم‌افزار ویرایش متن دلخواه‌تان می‌رسد (ما از SublimeText استفاده می‌کنیم).

حال، می‌توانید از فرمان CTRL+F برای جستجوی فیلدها استفاده کنید یا از BeautifulSoup استفاده کنید (همان طور که در ذیل مشاهده می‌کنید). به محض استخراج مختصات از فایل XML، مختصات را در دیتافریم ذخیره کردم. در مجموع ۲۶ مکان دیدنی وجود دارد (که با عنوان در فایل XML ذخیره شده است).

دیتافریم حاوی اطلاعاتی
این دیتافریم حاوی اطلاعاتی از فایل XML می‌باشد (فقط ۷ ردیف نخست نشان داده شده است).

ما از دیتافریمی که مختصات و نام مکان‌های دیدنی در آن ذخیره شده بود، برای ایجاد نقشه پراکندگی استفاده کردیم.

نقشه پراکندگی پین‌های نقشه گوگل
نقشه پراکندگی پین‌های نقشه گوگل

خوشه‌بندی K-Means

زمانی که ابهام در پیامد مورد پیش‌بینی‌مان وجود داشته باشد، روش‌های یادگیری بدون نظارت عموماً برای داده‌هایی که فاقد برچسب‌های AND هستند، بسیار مفید واقع می‌شوند. این الگوریتم‌ها معمولاً به دو شکل قابل دسترس هستند:

۱) الگوریتم‌های خوشه‌بندی

۲) الگوریتم‌های کاهش بُعد

در این بخش، می‌خواهیم عمده تمرکزمان را روی الگوریتم خوشه‌بندی K-Means بگذاریم. در این الگوریتم، تعداد خوشه‌ها به عنوان ورودی از پیش تعیین شده است و الگوریتم به ایجاد خوشه‌ها در دیتاست بدون برچسب می‌پردازد. K-Means مجموعه‌ای از نقاط مرکزی خوشه K و برچسبی از چیدمان ورودی X ایجاد می‌کند. به این ترتیب، کلیه نقاط واقع در X به خوشه منحصربفردی اختصاص داده می‌شوند. این الگوریتم نقاط مرکزی خوشه‌ها را به عنوان میانگین کلیه نقاط متعلق به خوشه محاسبه می‌کند.

K-Means

این کار با پایتون به شکل زیر انجام می‌شود:
همان‌طور که از نمودار پراکندگی زیر پیداست، ما ۱۰ خوشه ساختم؛ یعنی یک خوشه برای هر روز از سفر. چون مراکز دیدنی در مرکز پاریس فاصله نزدیکی با هم دارند، تفکیک یک خوشه از خوشه دیگر کار دشواری است.

پیش‌بینی‌ها مرتب شده و در دیتافریم ذخیره شدند. k-means برای ایجاد ۱۰ خوشه مورد استفاده قرار گرفت. نقاط سیاه مرکز خوشه‌ها را نشان می‌دهند. من از ۱۰ خوشه‌ای که با k-means ایجاد شده بود، برای ساخت دیتافریمی استفاده کردم که روزهای هفته را به هر خوشه تخصیص می‌دهد. به این ترتیب، یک نمونه برنامه زمانی به دست می‌آید.

نتایج k-means
نتایج k-means (روزهای سفر در هفته – فقط سه روز اول نشان داده شده است.)

اکنون، در این مرحله، دیتافریم مرتب شده و پین‌های نقشه گوگل مجدداً ساماندهی می‌شوند (هر لایه نشان‌دهندۀ یک روز است). خودشه! برنامه سفر تهیه شد.

یادگیری بدون نظارت

اما یک مورد همچنان اذیت‌کننده است. k-means بر اساس فاصله اقلیدسی میان نقاط به خوشه‌سازی می‌پرداخت. اما می‌دانیم که زمین تخت نیست؛ مابه دنبال بررسی این مسئله بودیم که آیا این تقریب بر خوشه‌های ایجاد شده تاثیر می‌گذارد یا خیر. باید به این نکته هم توجه داشت که چند نقطه دیدنی با فاصله از مرکز پاریس واقع شده است.

تصویر یادگیری بدون نظارت

با HDBSCAN آشنا شوید!

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

HDBSCAN

تابع تراکم جمعیت HDBSCAN که بر پایه الگوریتم DBScan  Density-based spatial clustering of applications with noise قرار دارد، می‌تواند نقش سودمندی در این فرایند داشته باشد. هر دو الگوریتمِ HDBSCAN و DBSCAN از جمله روش‌های خوشه‌بندی مکانی به شمار می‌روند و بر پایه تراکم قرار دارند.

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

HDBSCAN در نسخه عادی پایتون منظور نشده است، پس مجبورید آن را به صورت pip یا conda نصب کنید. پس از این کار کد زیر را به جرا درآوردیم. سرانجام، دیتافریم و نمودار پراکندگی زیر به دست آمد. همان طور که ملاحظه می‌کنید، نقاط مجزا در خوشه ۱- جای دارند؛ پس این نقاط «نویز» به حساب می‌آیند.

HDBSCAN
HDBSCAN نه خوشه و سه نقطه داده به عنوان «نویز» ایجاد کرد.
نتایج HDBSCAN
نتایج HDBSCAN (روزهای سفر در هفته – فقط سه روز اول نشان داده شده است.)

اصلاً تعجب‌برانگیز نیست که چندین نقطه به عنوان نویز وجود داشته باشد. چون حداقل تعداد نقاط در خوشه HDBSCAN برابر است با ۲، نقاط مجزا از قبیل کاخ ورسای به عنوان نویز طبقه‌بندی شده‌اند. مکان‌هایی نظیر کلیسای Sainte-Chapelle de Vincennes و موزه Musée Rodin با سرنوشت مشابهی روبرو شدند.

اما نکته جالب به تعداد خوشه‌هایی مربوط می‌شود که HDBSCAN شناسایی کرد (یعنی ۹ عدد). روش خوشه‌بندیِ مورد استفاده در این پست آموزشی می‌تواند ارتقاء یابد. برای نمونه، می‌توان ویژگی وزن را در نقاط داده به کار برد. وزن‌ها می‌توانند مقدار زمان مورد نیاز برای بازدید از یک مکان دیدنی را نشان دهند. به این ترتیب، تعداد کل نقاط داده در خوشه تحت تاثیر قرار می‌گیرد.

میانگین امتیاز / ۵. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]