ساخت مدل سفارشی در سایکیت لرن – راهنمای کاربردی

- ۱۳ کتابخانه یادگیری عمیق پایتون — راهنمای کاربردی
- ۱۰ کتابخانه پایتون علم داده — راهنمای کاربردی
- ۸ کتابخانه یادگیری ماشین پایتون — راهنمای کاربردی
- تقلب نامه (Cheat Sheet) کتابخانه های پایتون — راهنمای کامل و سریع
Scikit-Learn چیست ؟
اما نکته جالب توجه آن است که سایکیتلرن فقط برای مدلسازی نیست. بلکه، ابزارهای بسیار مناسبی در آن برای سادهسازی ساخت مدل وجود دارد که از جمله آنها میتوان به GridSearchCV و Pipeline اشاره کرد. این ابزارها بسیار ارزشمند هستند، ولی متأسفانه فقط با مدلهای سایکیتلرن کار میکنند. اما جای نگرانی برای این مورد وجود ندارد، زیرا اگر مدل مورد نظر کارشناس در سایکیتلرن وجود نداشته باشد، میتواند مدل سازگار با سایکیتلرن را بسازد. در این مطلب، روش ساخت مدل سفارشی در سایکیت لرن (Scikit-Learn) آموزش داده شده است.
قالب سایکیتلرن
از همین رو، برازش مدل در سایکیتلرن به سادگی وارد کردن دستور زیر است.
اکنون، میتوان مدل را تحلیل کرد. این کار را احتمالا میتوان با کمک متدهای predict(). و score(). انجام داد. در حقیقت، پنج متد وجود دارد که هر تخمینگر سایکیتلرن (Scikit-Learn) از آن بهره میبرد. این متدها در ادامه بیان شدهاند:
- fit().
- predict().
- score().
- set_params().
- get_params().
ساخت مدل سفارشی در سایکیت لرن (Scikit-Learn)
به منظور سازگاری داشتن مدل با سایکیتلرن، مدل باید برخی از موارد را از mixin به ارث ببرد. mixin یک کلاس است که هیچ وقت به خودی خود کار نمیکند، در عوض، حاوی متدهایی است که میتوان آنها را با استفاده از ارثبری به کلاس کنونی اضافه کرد.
Scikit-Learn گزینههای گوناگونی را برای انواع عمومی مدلها در اختیار قرار میدهد که از این جمله میتوان به TransformerMixin ،ClusterMixin ،ClassifierMixin ،RegressorMixin و گزینههای متعدد دیگر اشاره کرد. در ادامه، ابتدا یک مثال ساده ارائه شده است. سپس، مثال دیگری با خوشهبندی مورد بررسی قرار گرفته است.
مثال ۱: مدل Null
در دستهبندی، مدل مبنا تنها کلاس اکثریت را برای هر پیشبینی میگیرد. برای مثال، اگر هدف پیشبینی آن باشد که آیا یک نفر در قرعهکشی بخت آزمایی برنده میشود یا نه، مدل Null همیشه پیشبینی میکند که کاربر میبازد، زیرا این محتملترین خروجی است و البته خیلی هم از واقعیت متفاوت نیست.
مدل Null برای گفتن اینکه مدل کنونی چقدر خوب کار میکند مفید است. گذشته از همه این موارد، اگر مدلی خوب باشد، باید از مدل مبنا بهتر عمل کند. مدل Null به صورت توکار در سایکیتلرن وجود ندارد، اما پیادهسازی آن آسان است.
کد بالا ساده است و پس از نوشتن آن، میتوان به صورت معمول اقدام کرد.
بخش مهم آن است که NullRegressor جدید با همه ابزارهای توکار Scikit-Learn مانند cross_val_score و GridSearchCV سازگار است.
مثال ۲: تنظیم خوشهها با استفاده از جستجوی گرید
اما این مورد نمیتواند مانع توقف کار شود؛ در بخش پیشین، چگونگی استفاده از سایکیتلرن برای ساخت مدل سفارشی بیان شد. در ادامه، روش انجام کاری که در این قسمت بیان شد، آموزش داده میشود. این کار، با ساخت پایپلاین زیر آغاز میشود.
به منظور آنکه این روش کار کند، کار با تعریف یک کلاس که از TransformerMixin ارثبری دارد، انجام میشود. سپس، متدهای transform() ،.fit(). و fit_transform(). به آن داده میشوند. اما برای آغاز کار، مقدمات اولیه به صورت زیر فراهم میشود.
هدف از self.model، شامل شدن مدل خوشهبندی اصلی است. اما پرسشی که ممکن است در این وهله مطرح شود این است که args* و kwargs** چه هستند؟ میتوان گفت که این دو مورد، میانبرهایی برای برنامهنویسها محسوب میشوند. این دو مورد، همه آرگومانهای دیگری که کاربر به init__()__ پاس میدهند را ثبت میکنند و به KMeans() پاس میدهند. در اینجا، هر چیزی که به KMeansTransformer پاس داده شود، به KMeans نیز پاس داده میشود.
در ادامه، متد برازش مناسبی به کد اضافه میشود.
اکنون میتوان از KmeansTransformer مانند یک انتقالدهنده توکار سایکیتلرن استفاده کرد.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید














