در مورد الگوریتم K-Nearest همسایگان ، یکی از محبوب ترین و ساده ترین طبقه بندی طبقه بندی و رگرسیون که امروزه در یادگیری ماشین استفاده می شود ، بیاموزید

الگوریتم همسایگان K-Nearest
الگوریتم K-Nearest همسایگان ، همچنین به عنوان KNN یا K-NN شناخته می شود ، یک طبقه بندی کننده یادگیری غیر پارامتری و تحت نظارت است که از نزدیکی برای ایجاد طبقه بندی یا پیش بینی در مورد گروه بندی یک نقطه داده فردی استفاده می کند. در حالی که می توان از آن برای رگرسیون یا مشکلات طبقه بندی استفاده کرد ، معمولاً به عنوان یک الگوریتم طبقه بندی استفاده می شود ، و این فرض را انجام می دهد که نقاط مشابه را می توان در نزدیکی یکدیگر یافت.
برای مشکلات طبقه بندی ، یک برچسب کلاس بر اساس اکثریت آرا اختصاص داده می شود - یعنی. از برچسب که بیشتر در حدود یک نقطه داده معین نشان داده می شود استفاده می شود. در حالی که این از نظر فنی "رای گیری کثرت" در نظر گرفته می شود ، اصطلاح "اکثریت آرا" بیشتر در ادبیات استفاده می شود. تمایز بین این اصطلاحات این است که "رای گیری اکثریت" از نظر فنی به اکثریت بیش از 50 ٪ نیاز دارد ، که در درجه اول وقتی فقط دو دسته وجود دارد کار می کند. هنگامی که چندین کلاس دارید - e. g. چهار دسته ، شما لزوماً به 50 ٪ آرا احتیاج ندارید تا در مورد یک کلاس نتیجه گیری کنید. شما می توانید یک برچسب کلاس با رأی بیش از 25 ٪ اختصاص دهید. دانشگاه ویسکانسین-مدیسون این موضوع را با یک مثال در اینجا (PDF ، 1. 2 MB) خلاصه می کند (پیوند در خارج از IBM. com).
مشکلات رگرسیون از یک مفهوم مشابه به عنوان مشکل طبقه بندی استفاده می کند ، اما در این حالت ، میانگین نزدیکترین همسایگان K برای پیش بینی در مورد طبقه بندی گرفته می شود. تمایز اصلی در اینجا این است که از طبقه بندی برای مقادیر گسسته استفاده می شود ، در حالی که رگرسیون با روشهای مداوم استفاده می شود. با این حال ، قبل از طبقه بندی ، باید فاصله تعریف شود. فاصله اقلیدسی بیشتر مورد استفاده قرار می گیرد ، که ما در زیر آن بیشتر خواهیم کرد. همچنین شایان ذکر است که الگوریتم KNN همچنین بخشی از خانواده ای از مدل های "یادگیری تنبل" است ، به این معنی که فقط یک مجموعه داده آموزشی در مقابل یک مرحله آموزشی ذخیره می کند. این همچنین بدان معنی است که تمام محاسبات هنگام طبقه بندی یا پیش بینی انجام می شود. از آنجا که برای ذخیره تمام داده های آموزشی خود به حافظه بسیار متکی است ، به آن نیز به عنوان یک روش یادگیری مبتنی بر نمونه یا حافظه گفته می شود. Evelyn Fix و Joseph Hodges در این مقاله 1951 (PDF ، 1. 1 MB) به ایده های اولیه پیرامون مدل KNN (PDF ، 1. 1 MB) (پیوند در خارج از IBM. com) اعتبار داده می شود ، در حالی که توماس پوشش در مفهوم خود در تحقیقات خود گسترش می یابد (PDF 1 MB) (PDF) (PDF 1 MB) (PDF)پیوند در خارج از IBM. com) ، "نزدیکترین طبقه بندی الگوی همسایه". اگرچه به اندازه گذشته محبوب نیست ، اما هنوز هم یکی از اولین الگوریتم هایی است که به دلیل سادگی و صحت آن در علم داده می آموزد. با این حال ، با رشد یک مجموعه داده ، KNN به طور فزاینده ای ناکارآمد می شود و عملکرد کلی مدل را به خطر می اندازد. این ماده معمولاً برای سیستم های توصیه ساده ، تشخیص الگوی ، داده کاوی ، پیش بینی بازار مالی ، تشخیص نفوذ و موارد دیگر استفاده می شود.
محاسبه KNN: معیارهای فاصله
برای یادآوری ، هدف از الگوریتم K-Nearest همسایه شناسایی نزدیکترین همسایگان یک نقطه پرس و جو خاص است تا بتوانیم یک برچسب کلاس را به آن نقطه اختصاص دهیم. برای انجام این کار ، KNN چند مورد نیاز دارد:
معیارهای فاصله خود را تعیین کنید
به منظور تعیین اینکه کدام نقاط داده نزدیک به یک نقطه پرس و جو مشخص هستند ، فاصله بین نقطه پرس و جو و سایر نقاط داده باید محاسبه شود. این معیارهای از راه دور به شکل گیری مرزهای تصمیم گیری کمک می کند ، که پارتیشن ها به مناطق مختلف اشاره می کنند. شما معمولاً مرزهای تصمیم گیری را با نمودارهای Voronoi مشاهده خواهید کرد.
در حالی که چندین اقدام از راه دور وجود دارد که می توانید از آن انتخاب کنید ، این مقاله فقط موارد زیر را پوشش می دهد:
فاصله اقلیدسی (P = 2): این رایج ترین اندازه گیری فاصله است و محدود به بردارهای با ارزش واقعی است. با استفاده از فرمول زیر ، یک خط مستقیم بین نقطه پرس و جو و نقطه دیگر اندازه گیری می شود.
فاصله منهتن (P = 1): این همچنین یکی دیگر از معیارهای مسافت محبوب است که مقدار مطلق بین دو نقطه را اندازه گیری می کند. همچنین از آن به عنوان فاصله تاکسی یا فاصله بلوک شهر یاد می شود زیرا معمولاً با یک شبکه تجسم می شود و نشان می دهد که چگونه ممکن است از طریق خیابان های شهر از یک آدرس به آدرس دیگر حرکت کند.
Minkowski فاصله: این اندازه گیری فاصله از معیارهای فاصله اقلیدسی و منهتن است. پارامتر ، P ، در فرمول زیر ، امکان ایجاد معیارهای مسافت دیگر را فراهم می کند. فاصله اقلیدسی با این فرمول هنگامی که P برابر با دو است ، نشان داده می شود و فاصله منهتن با P برابر با یک مشخص می شود.
فاصله چکش: این تکنیک به طور معمول با بردارهای بولی یا رشته ای استفاده می شود و نقاطی را که بردارها با آن مطابقت ندارند ، مشخص می کند. در نتیجه ، از آن به عنوان متریک همپوشانی نیز یاد شده است. این را می توان با فرمول زیر نشان داد:
به عنوان نمونه ، اگر رشته های زیر را داشتید ، فاصله چکش زدن 2 خواهد بود زیرا فقط دو مورد متفاوت است.
محاسبه k: تعریف k
مقدار k در الگوریتم K-NN برای تعیین طبقه بندی یک نقطه پرس و جو خاص ، چه تعداد همسایگان را بررسی می کند. به عنوان مثال ، اگر K = 1 باشد ، نمونه به همان کلاس نزدیک همسایه خود اختصاص می یابد. تعریف K می تواند یک عمل متعادل باشد زیرا ارزش های مختلف می تواند منجر به بیش از حد یا زیربنایی شود. مقادیر پایین تر K می تواند واریانس بالایی داشته باشد ، اما تعصب کم و مقادیر بزرگتر K ممکن است منجر به تعصب بالا و واریانس پایین تر شود. انتخاب k تا حد زیادی به داده های ورودی بستگی دارد زیرا داده هایی با فضای بازتر یا سر و صدا بیشتر با مقادیر بالاتر K عملکرد بهتری دارند. به طور کلی ، توصیه می شود که برای جلوگیری از پیوندها در طبقه بندی ، یک شماره عجیب و غریب برای K داشته باشید و تاکتیک های اعتبارسنجی متقابل می تواند به شما در انتخاب مطلوب K برای مجموعه داده خود کمک کند.
K-Nearest همسایگان و پایتون
برای عمیق تر کردن ، می توانید با استفاده از پایتون و Scikit-Lea (که به عنوان Sklea نیز شناخته می شود) در مورد الگوریتم K-NN اطلاعات بیشتری کسب کنید. آموزش ما در استودیوی واتسون به شما کمک می کند نحو اساسی را از این کتابخانه یاد بگیرید ، که شامل کتابخانه های محبوب دیگری مانند Numpy ، Pandas و Matplotlib نیز می شود. کد زیر نمونه ای از نحوه ایجاد و پیش بینی با یک مدل KNN است:
از sklea. neighbors واردات kneighborsclassifier model_name = 'k-nearest طبقه بندی همسایه' knlassifier = kneighborsclassifier (n_neighbors = 5 ، metric = 'minkowski' ، p = 2) k_model = pipeline (("preprocessor". طبقه بندی کننده '، Kclassifier)]) k_model. fit (x_train ، y_train) y_pred = k_model. predict (x_test)
برنامه های K-NN در یادگیری ماشین
الگوریتم K-NN در برنامه های مختلف ، عمدتا در طبقه بندی استفاده شده است. برخی از این موارد استفاده شامل موارد زیر است:
- پیش پردازش داده ها: مجموعه داده ها اغلب دارای مقادیر از دست رفته هستند ، اما الگوریتم KNN می تواند برای آن مقادیر در فرآیند معروف به عنوان داده های گمشده تخمین بزند.
- موتورهای توصیه: با استفاده از داده های ClickStream از وب سایت ها ، از الگوریتم KNN برای ارائه توصیه های خودکار به کاربران در مورد محتوای اضافی استفاده شده است. این تحقیق (پیوند در خارج از IBM. com) نشان می دهد که کاربر به یک گروه خاص اختصاص داده می شود و بر اساس رفتار کاربر آن گروه ، به آنها توصیه می شود. با این حال ، با توجه به مشکلات مقیاس گذاری با KNN ، این رویکرد ممکن است برای مجموعه داده های بزرگتر بهینه نباشد.
- امور مالی: همچنین در موارد مختلف مالی و استفاده اقتصادی مورد استفاده قرار گرفته است. به عنوان مثال ، یک مقاله (PDF ، 391 KB) (پیوند در خارج از IBM. com) نشان می دهد که چگونه استفاده از KNN بر روی داده های اعتباری می تواند به بانک ها کمک کند تا خطر وام به یک سازمان یا فرد را ارزیابی کنند. از آن برای تعیین اعتبار اعتبار یک متقاضی وام استفاده می شود. یک مجله دیگر (PDF ، 447 KB) (پیوند در خارج از IBM. com) استفاده از آن در پیش بینی بازار سهام ، نرخ ارز ارز ، معاملات معاملات آینده و تجزیه و تحلیل پولشویی را برجسته می کند.
- بهداشت و درمان: KNN همچنین در صنعت مراقبت های بهداشتی کاربرد داشته است و پیش بینی هایی در مورد خطر حملات قلبی و سرطان پروستات انجام داده است. این الگوریتم با محاسبه محتمل ترین بیان ژن کار می کند.
- تشخیص الگوی: KNN همچنین در شناسایی الگوهای ، مانند طبقه بندی متن و رقم کمک کرده است (پیوند در خارج از IBM. com است). این امر به ویژه در شناسایی شماره های دست نوشته ای که ممکن است در فرم ها یا پاکت نامه های پستی پیدا کنید مفید بوده است.
مزایا و مضرات الگوریتم KNN
درست مانند هر الگوریتم یادگیری ماشین ، K-NN نقاط قوت و ضعف خود را دارد. بسته به پروژه و کاربرد ، ممکن است انتخاب مناسبی باشد یا نباشد.
مزایای
- اجرای آسان: با توجه به سادگی و دقت الگوریتم ، این یکی از اولین طبقه بندی کننده ها است که یک دانشمند داده جدید یاد می گیرد.
- به راحتی تطبیق می یابد: با اضافه شدن نمونه های آموزشی جدید، الگوریتم برای محاسبه هر داده جدید تنظیم می شود زیرا تمام داده های آموزشی در حافظه ذخیره می شود.
- چند فراپارامتر: KNN فقط به یک مقدار k و یک متریک فاصله نیاز دارد که در مقایسه با سایر الگوریتم های یادگیری ماشین کم است.
معایب
- به خوبی مقیاس نمی شود: از آنجایی که KNN یک الگوریتم تنبل است، در مقایسه با سایر طبقه بندی کننده ها، حافظه و ذخیره داده بیشتری را اشغال می کند. این می تواند از نظر زمانی و مالی پرهزینه باشد. حافظه و فضای ذخیره سازی بیشتر باعث افزایش هزینه های کسب وکار می شود و محاسبه داده های بیشتر زمان بیشتری می برد. در حالی که ساختارهای داده مختلف، مانند Ball-Tree، برای رسیدگی به ناکارآمدی های محاسباتی ایجاد شده است، یک طبقه بندی متفاوت ممکن است بسته به مشکل تجاری ایده آل باشد.
- نفرین ابعاد: الگوریتم KNN قربانی نفرین ابعاد می شود، به این معنی که با ورودی داده های با ابعاد بالا عملکرد خوبی ندارد. گاهی اوقات به این پدیده پیکینگ (PDF، 340 مگابایت) نیز گفته می شود (پیوند خارج از ibm. com قرار دارد)، که در آن پس از دستیابی الگوریتم به تعداد بهینه ویژگی ها، ویژگی های اضافی میزان خطاهای طبقه بندی را افزایش می دهد، به خصوص زمانی که نمونه نمونه باشد. اندازه کوچکتر است
- مستعد بیش از حد برازش: به دلیل "نفرین ابعادی"، KNN نیز بیشتر مستعد بیش از حد برازش است. در حالی که تکنیک های انتخاب ویژگی و کاهش ابعاد برای جلوگیری از این اتفاق استفاده می شوند، مقدار k نیز می تواند بر رفتار مدل تأثیر بگذارد. مقادیر پایین تر k می توانند بیش از حد بر داده ها منطبق شوند، در حالی که مقادیر بالاتر k تمایل دارند مقادیر پیش بینی را «هموار» کنند، زیرا میانگین گذاری مقادیر در یک منطقه یا محله بزرگ تر است. با این حال، اگر مقدار k بیش از حد بالا باشد، می تواند داده ها را کمتر کند.
راه حل های مرتبط IBM Cloud Pak for Data
IBM Cloud Pak for Data یک پلتفرم داده باز و قابل توسعه است که بافت داده ای را فراهم می کند تا تمام داده ها را برای هوش مصنوعی و تجزیه و تحلیل، در هر فضای ابری در دسترس قرار دهد.
IBM Cloud Pak for Data را کاوش کنید IBM Watson Studio
مدل های هوش مصنوعی بسازید، اجرا کنید و مدیریت کنید. با استفاده از کد منبع باز یا مدل سازی بصری، داده ها را آماده کرده و مدل ها را بر روی هر ابری بسازید. نتایج خود را پیش بینی و بهینه کنید.
IBM Watson Studio را کاوش کنید IBM Db2 در فضای ابری
درباره Db2 در Cloud بیاموزید، یک پایگاه داده ابری کاملاً مدیریت شده SQL که برای عملکرد قوی پیکربندی و بهینه شده است.
کسب درآمد از بیت کوین...
ما را در سایت کسب درآمد از بیت کوین دنبال می کنید
برچسب :
نویسنده : ماهور الوند
بازدید : <-PostHit->
تاريخ : چهارشنبه
15 شهريور
1402 ساعت: 6:58