برنامه‌نویسی الگوریتم‌های یادگیری ماشین
8 کتابخانه حرفه‌ای پایتون در حوزه یادگیری ماشین
هر زمان درباره هوش مصنوعی، یادگیری ماشین، یادگیری عمیق و علم داده‌ها سخن می‌گوییم، نگاه‌ها به سمت پایتون دوخته می‌شود. یک زبان برنامه‌نویسی قدرتمند که ایده‌آل‌ترین گزینه برای برنامه‌نویسی هوش مصنوعی است. تا به امروز کتابخانه‌های مختلفی برای این زبان در حوزه یادگیری ماشین ارائه شده‌اند، اما همه آن‌ها به لحاظ قابلیت‌هایی که ارائه می‌کنند با یکدیگر برابر نیستند. در این مقاله با 8 مورد از بهترین کتابخانه‌های یادگیری ماشین ویژه پایتون آشنا خواهید شد.

آمار منتشر شده از سوی سایت builtwith نشان می‌دهند که نزدیک به 45 درصد از شرکت‌های فناوری ترجیح می‌دهند از پایتون برای برنامه‌نویسی الگوریتم‌های یادگیری ماشین و هوش مصنوعی استفاده کنند. البته ارائه فهرستی از کتابخانه‌های شاخص در حوزه یادگیری ماشین کار ساده‌ای نیست، به دلیل این‌که کتابخانه‌ها را به راحتی می‌توان در گروه‌های مختلفی طبقه‌بندی کرد. به‌طور مثال، کتابخانه Keras که در ارتباط با شبکه‌های عمیق عصبی کاربرد دارد در فهرست ما قرار دارد و در مقابل تنسورفلو در این فهرست قرار ندارد. ما از آن جهت کرس را در فهرست خود جای داده‌ایم که این کتابخانه شبیه به کتابخانه scikit-learn برای کاربر نهایی است، اما تنسورفلو کتابخانه‌‌ای است که هدفش پژوهشگران و مهندسان یادگیری ماشین است.  کتابخانه‌هایی که در ادامه با آن‌ها آشنا خواهید شد بر مبنای میزان استقبال کاربران و مشارکت‌کنندگان در سایت گیت‌هاب در این مقاله قرار گرفته‌اند. آماری که گیت‌هاب در این زمینه ارائه کرده تا تاریخ 3 اکتبر 2018 معتبر بوده و از آن تاریخ به بعد ممکن است کتابخانه‌های دیگری بنابر امتیازها جایگزین هشت موردی شوند که در ادامه با آن‌ها آشنا خواهید شد. برای توصیف خوب بودن یک کتابخانه باید یکسری معیارها را در نظر گرفت که از آن جمله به موارد زیر می توان اشار کرد.

مستندات

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

مدیریت

این معیار نسبی بوده و به مقدار کاری که برای پیکربندی و استفاده از کتابخانه صرف می‌شود اشاره دارد.

قابلیت‌های بومی

برای این معیار نمره بالا به کتابخانه‌هایی داده می‌شود که پشتیبانی بومی برای یکسری وظایف را به شکل ذاتی ارائه کنند.

گسترش‌پذیری

این مورد بیشتر در ارتباط با چارچوب‌ها صدق کرده و کمتر در مورد کتابخانه‌ها می‌توان در مورد آن بحث کرد. بیشتر چارچوب‌های پایتون می‌توانند از پروژه‌هایی شبیه به Gevent یا Gunicorn برای گسترش‌پذیری کارها استفاده کنند.

1.  scikit-learn

تعداد مشارکت‌کنندگان: 1175

انجمن‌ها: 23301

ستاره‌های داده شده: 30867

Scikit-learn یک کتابخانه متن‌باز برای یادگیری ماشین است که بر مبنای Numpy، SciPy و matplotlib ساخته شده است. این کتابخانه ابزارهای ساده و کارآمدی برای داده‌کاوی و تحلیل داده‌ها در اختیارتان قرار می‌دهد. SKLearn در دسترس عموم متخصصان قرار داشته و قابل استفاده مجدد در زمینه‌های مختلف است.

2.  Keras

 تعداد مشارکت‌کنندگان: 726

انجمن‌ها: 4818

ستاره‌های داده شده: 34066

Keras یک واسط برنامه‌نویسی کاربردی (API) سطح بالا ویژه شبکه‌های عصبی است که برای پایتون نوشته شده و این قابلیت را دارد تا روی تنسورفلو، CNTK یا Theano آن‌را اجرا کرد. این کتابخانه با تمرکز روی قابلیت آزمایش سریع طراحی شده است. هر پروژه‌ای با هدف به سرانجام رساندن یک ایده به نتیجه‌ای عملی با کمترین زمان تاخیر ممکن کار خود را آغاز می‌کند و کتابخانه Keras به خوبی به این مسئله پرداخته است.

3.  XGBoost

تعداد مشارکت‌کنندگان: 319

انجمن‌ها: 3454

ستاره‌های داده شده: 13630

XGBoost یک کتابخانه تقویت شده توزیع شده است که با هدف دستیابی به بهترین عملکرد، انعطاف‌پذیری و قابلیت حمل بالا طراحی و بهینه‌سازی شده است. این کتابخانه الگوریتم‌های یادگیری ماشین را تحت چارچوب Gradient Boosting پیاده‌سازی کرده است. XGBoost یک درخت موازی که به نام‌های GBDT و GBM شناخته می‌شود را برای حل برخی از مشکلات مربوط به علم داده‌ها ارائه کرده تا مهندسان این حوزه در کوتاه‌ترین زمان بتوانند مشکلات را برطرف کنند. کد یکسانی نیز روی محیط‌های توزیع شده بزرگ همچون هادوپ، SGE و MPI قابل اجرا است که این کد می‌تواند مسائلی که فراتر از میلیاردها نمونه برای آن‌ها وجود دارد را حل کند.

4.  StatsModels

تعداد مشارکت‌کنندگان: 162

انجمن‌ها: 10837

ستاره‌های داده شده: 3275

StatsModels یک پکیج پایتون است که نقش مکمل را برای scipy بازی کرده و برای انجام محاسبات آماری همچون آمار توصیفی و برآوردهایی برای مدل‌های آماری از آن استفاده می‌شود.

5. LightGBM

تعداد مشارکت‌کنندگان: 91

انجمن‌ها: 1272

ستاره‌های داده شده: 6736

یک چارچوب تقویت شده سریع با عملکرد بالا و توزیع شده است که بر پایه الگوریتم‌های درخت تصمیم‌گیری ساخته شده و به منظور رتبه‌بندی، طبقه‌بندی و بسیاری دیگر از وظایف مرتبط با یادگیری ماشین استفاده می‌شود. این چارچوب تحت لوای پروژه هوش مصنوعی مایکروسافت DMTK قرار درد.

6.  CatBoost

تعداد مشارکت‌کنندگان: 77

انجمن‌ها: 3304

ستاره‌های داده شده: 3241

CatBoost یک رویکرد یادگیری ماشین بر پایه gradient boosting بوده که بر مبنای درخت‌های تصمیم‌گیری کار می‌کند. از قابلیت‌های شاخص این کتابخانه می‌توان به کیفیت بالا در مقایسه با کتابخانه‌های GBDT، سرعت بالا در استنباط دسته‌ها (کلاس‌ها)، پشتیبانی از ویژگی‌های عددی و دسته‌ای و ابزارهای تجسم‌سازی داده‌ها اشاره کرد.

7. PyBrain

تعداد مشارکت‌کنندگان: 32

انجمن‌ها: 992

ستاره‌های داده شده: 2598

PyBrain یک کتابخانه ماژولار یادگیری ماشین برای پایتون است. این کتابخانه با هدف ارائه الگوریتم‌های قدرتمند انعطاف‌پذیر با کاربری ساده به منظور پیاده‌سازی وظایف یادگیری ماشین طراحی شده است. از این کتابخانه در محیط‌های از پیش تعریف شده برای آزمایش و ارزیابی الگوریتم‌ها نیز استفاده می‌شود.

8.  Eli5

تعداد مشارکت‌کنندگان: 6

انجمن‌ها: 929

ستاره‌های داده شده: 932

ELI5 یک پکیج پایتون است که فرآیند دیباگ کردن دسته‌های یادگیری ماشین و تشریح پیش‌بینی‌ها را ساده می‌کند. این کتابخانه از چارچوب‌ها و پکیج‌های scikit-learn, XGBoost, LightGBM, lightning  و sklearn-crfsuite پشتیبانی می‌کند.

برچسب: