به طور کلی در یادگیری ماشین، هدف این است که تابعی (f) پیدا کنیم که بتواند داده های ورودی (X) را به خروجی (Y) مرتبط کند:
Y=f(X)
فرم این تابع از قبل مشخص نیست، به همین دلیل الگوریتم های مختلفی را روی داده های آموزش (Training data) امتحان میکنیم تا ببینیم کدامیک از توابع آموزش دیده،خطای کمتری تولید میکند.
الگوریتم های یادگیری ماشین فرض هایی در مورد فرم این تابع انجام می دهند. از این نظر می توانیم آنها را به دو دسته پارامتریک (Parametric) و ناپارامتریک (Non-parametric) تقسیم کنیم:
مدلی که داده ها را با استفاده از تعداد ثابتی پارامتر خلاصه می کند، یک مدل پارامتریک است. مهم نیست چقدر داده به این مدل داده می شود، تعداد پارامترها تغییری نمیکند.
این گونه مدل ها فرضیاتی نسبت به تابع f انجام می دهند که باعث ساده سازی مساله می شوند، ولی از جهتی، باعث محدود کردن قدرت یادگیری هم می شوند.
مثال ساده از این نوع الگوریتم ها، رگرسیون خطی است که با فرض کردن آن که داده های ورودی و خروجی به صورت خطی با یکدیگر در ارتباط هستند، به تخمین پارامترهای مدل می پردازد.
چند نمونه از الگوریتم های پارامتریک:
مزیت الگوریتم های پارامتریک:
محدودیت الگوریتم های پارامتریک:
به الگوریتم هایی که از قبل، فرضیاتی قوی در مورد داده ها انجام نمی دهند، ناپارامتریک گفته می شوند. این الگوریتم ها برای وقتی که داده های زیادی وجود دارد و اطلاعات قبلی نسبت به داده ها نداریم، مناسب هستند.
مثال ساده از این الگوریتم ها، KNN (K-nearest neighbors) هست که از k تا از مشابه ترین داده های آموزش برای پیش بینی استفاده می کند و هیچ فرضی در مورد فرم تابع انجام نمی دهد.
چند نمونه از الگوریتم های ناپارامتریک:
مزیت الگوریتم های ناپارامتریک:
محدودیت الگوریتم های ناپارامتریک:
https://machinelearningmastery.com/parametric-and-nonparametric-machine-learning-algorithms/
هدف اصلی این پست و پست هایی که در آینده گذاشته میشه، یادآوری مطالبی است که یاد گرفته ام و یا در حال یادگیری آنها هستم، امیدوارم در این مسیر، مطالب برای دیگران هم مفید واقع بشه.