۸ کتابخانه یادگیری ماشین پایتون – راهنمای کاربردی


«پایتون» (Python)، همچنان هنگامی که صحبت از «یادگیری ماشین» (Machine Learning)، «هوش مصنوعی» (Artificial Intelligence)، «یادگیری عمیق» (Deep Learning) و وظایف «علم داده» (Data Science) میشود پیشگام است. مطابق آمار ارائه شده توسط سایت «builtwith» (+)، بالغ بر ٪۴۵ از شرکتهای فناوری استفاده از پایتون را برای پیادهسازی هوشمصنوعی و یادگیری ماشین ترجیح میدهند. به همین دلیل، در این مقاله ۸ کتابخانه یادگیری ماشین پایتون معرفی شدهاند.
البته، این کتابخانهها ممکن است برای موضوعات گوناگونی کاربرد داشته باشند. برای مثال، کتابخانه نرمافزاری متنباز «تنسورفلو» (Tensorflow) در حوزه یادگیری ماشین کاربرد دارد و «کِرَس» (Keras) یک کتابخانه متنباز شبکه عصبی و قابل اجرا روی تنسورفلو یا «ثینو» (Theano) است. این در حالی است که با وجود معرفی کردن کِرَس در این مطلب، تنسورفلو در این مطلب معرفی نشده و در لیست «۱۳ کتابخانه برتر پایتون برای یادگیری عمیق» آورده شده است. دلیل این امر آن است که کِرَس مانند «سایکیت لِرن» (scikit-learn) بیشتر یک کتابخانه برای «کاربر نهایی» است، در حالیکه تنسورفلو بیشتر توسط افرادی مانند پژوهشگران و مهندسان یادگیری ماشین مورد استفاده قرار میگیرد.

اکنون لیست این هشت کتابخانه ارائه میشود. آمار ارائه شده از گیتهاب تا تاریخ سوم اکتبر ۲۰۱۸ معتبر است.
۱. سایکیت لِرن (scikit-learn)
(+) (مشارکتکنندگان: ۱۱۷۵ نفر، کامیتها: ۲۳۳۰۱، ستارهها: ۳۰۸۶۷)
سایکیت لِرن (scikit-learn) یک کتابخانه پایتون «نرمافزار آزاد» (free software) برای یادگیری ماشین است که بر مبنای SciPy ،NumPy و matplotlib ساخته شده است. این ماژول ابزارهای ساده و موثری برای «دادهکاوی» (Data Mining) و «تحلیل داده» فراهم میکند. SKLearn برای همه در دسترس و قابل استفاده مجدد در زمینههای گوناگون است.
۲. کِرَس (Keras)
(+) (مشارکتکنندگان: ۷۲۶ نفر، کامیتها: ۴۸۱۸، ستارهها: ۳۴۰۶۶)
کِرَس (Keras) یک «رابط برنامهنویسی کاربردی» (Application Programming Interface | API) نوشته شده در پایتون است که میتواند روی تنسورفلو، ثینو و یا CNTK اجرا شود. این کتابخانه با تمرکز بر قابلیت آزمایش سریع توسعه داده شده است. رسیدن از ایده به نتیجه با حداقل تاخیر ممکن کلید انجام پژوهشهای خوب است و این نکته در ساخت این کتابخانه همواره لحاظ شده.
۳. XGBoost
(+) (مشارکتکنندگان: ۳۱۹ نفر، کامیتها: ۳۴۵۴، ستارهها: ۱۳۶۳۰)
XGBoost یک کتابخانه تقویت گرادیان توزیع شده بهینه است که با هدف کارآمدی، انعطافپذیری و قابلیت حمل بالا طراحی شده. این کتابخانه الگوریتمهای یادگیری ماشین را تحت چارچوب «تقویت گرادیان» (Gradient Boosting) پیادهسازی کرده است. XGBoost تقویت درخت موازی (که با عنوان GBDT یا GBM نیز شناخته شده) را فراهم کرده که بسیاری از مشکلات علم داده را به صورت سریع و صحیح برطرف میکند. کد مشابهی نیز روی محیطهای توزیع شده اصلی (هادوپ، MPI ،SGE) قابل اجرا است که میتواند مسائل دارای بیش از میلیاردها نمونه را حل کند.
۴. StatsModels
(+) (مشارکتکنندگان: ۱۶۲ نفر، کامیتها: ۱۰۸۳۷، ستارهها: ۳۲۷۵)
StatsModels یک «بسته» (Package) پایتون است که نقش متمم را برای scipy به منظور انجام محاسبات آماری شامل آمار توصیفی و تخمین و استنباط برای مدلهای آماری فراهم میکند.
۵. LightGBM
(+) (مشارکتکنندگان: ۹۱ نفر، کامیتها: ۱۲۷۲، ستارهها: ۶۷۳۶)
یک چارچوب تقویت گرادیان با کارایی بالا، توزیع شده و سریع (GBM ،GBRT ،GBDT یا MART) بر پایه الگوریتمهای درخت تصمیم است که برای رتبهبندی، دستهبندی و بسیاری دیگر از وظایف یادگیری ماشین طراحی شده. این چارچوب زیر نظر پروژه DMTK مایکروسافت است.
۶. CatBoost
(+) (مشارکتکنندگان: ۷۷ نفر، کامیتها: ۳۳۰۴، ستارهها: ۳۲۴۱)
CatBoost یک روش یادگیری ماشین بر پایه تقویت گرادیان بر مبنای درختهای تصمیم است. از جمله مزایای اصلی CatBoost میتوان به کیفیت فوقالعاده در مقایسه با دیگر کتابخانههای GBDT، سرعت عالی در استنباط دسته، پشتیبانی از ویژگیهای عددی و دستهای و وجود ابزارهای بصریسازی داده اشاره کرد.
۷. PyBrain
(+) (مشارکتکنندگان: ۳۲ نفر، کامیتها: ۹۹۲ نفر، ستارهها: ۲۵۹۸ نفر)
PyBrain یک کتابخانه یادگیری ماشین برای پایتون است. هدف از این کتابخانه ارائه الگوریتمهای انعطافپذیر و با کاربری آسان اما در عین حال قدرتمند برای وظایف یادگیری ماشین و محیطهای از پیش تعریف شده برای تست و مقایسه الگوریتمها است.
۸. Eli5
(+) (مشارکتکنندگان: ۶ نفر، کامیتها: ۹۲۹ نفر، ستارهها ۹۳۲ نفر)
ELI5 یک بسته پایتون است که به اشکالزدایی (دیباگ | Debug) کردن دستهبندهای یادگیری ماشین و تشریح پیشبینیهای آنها کمک میکند. این کتابخانه از چارچوبها و بستههای lightning ،XGBoost ،scikit-learn و sklearn-crfsuite پشتیبانی میکند.
اگر نوشته بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
- گنجینه آموزشهای برنامه نویسی پایتون (Python)
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- مجموعه آموزشهای هوش محاسباتی
- آموزش برنامهنویسی R و نرمافزار R Studio
- مجموعه آموزشهای برنامه نویسی متلب (MATLAB)
^^
بسیار جالب هستند