آپاچی ماهوت (Apache Mahout)

ابزار پرکاربرد دیگر اکوسیستم هدوپ، آپاچی ماهوت می‌باشد. ماهوت واسط‌هایی برای ایجاد برنامه‌های مقیاس‌پذیر یادگیری ماشین را فراهم می‌کند.

یادگیری ماشین چیست؟

الگوریتم‌های فراگیری ماشینی، اجازه‌ی ساخت سیستم‌های خود-یادگیرنده را به ما می‌دهند، که بدون آن‌که نیاز به برنامه‌ریزی مشخصی داشته باشد، تکامل می‌یابند و براساس رفتار کاربر، الگوهای داده و تجربیات گذشته می‌توانند در تصمیمات آینده یاری‌رسان باشند.

یادگیری ماشین و آپاچی ماهوت

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

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

معماری آپاچی ماهوت

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

برای فعال کردن پردازش موازی، آپاچی ماهوت پارادایم برنامه نویسی Map reduce را دارد. هنگامی که آپاچی ماهوت قابل استفاده برای یادگیری ماشین است، Map reduce  برای هر الگوریتم اختصاص داده می‌شود. در آپاچی ماهوت عمدتا دارای گره اصلی است که mappers و reducers را مدیریت میکند. توزیع آپاچی ماهوت با گره اصلیشروع می‌شود، فایل‌های ورودی به گره اصلی ارسال می‌شود و داده‌ها را تجزیه و تحلیل می‌کند و این داده‌ها را به مکان‌های مختلف که گره‌های دیگری هستند، اختصاص می‌دهد.

چارچوب آپاچی ماهوت منبع باز است و توسط بنیاد آپاچی توسعه یافته است. این چارچوب به عنوان ابزارهایی برای ساخت الگوریتم‌های مقیاس‌پذیر و همچنین ارائه الگوریتم‌های توکار است. این الگوریتم ها بر روی Hadoop Map Reduction، Apache Spark و H2O اجرا می‌شود.

آپاچی ماهوت چه کاری انجام می‌دهد؟

پالایش گروهی، خوشه‌بندی، طبقه‌بندی و قواعد انجمنی کارهایی است که می‌توان توسط آپاچی ماهوت انجام داد:

  1. پالایش گروهی: Mahout رفتارهای کاربران، الگوهای آن‌ها و ویژگی‌هایشان را بررسی می‌کند و بر اساس آن پیش‌بینی‌هایی انجام می‌دهد و به کاربران پیشنهاد می‌دهد. رایج‌ترین کاربرد آن، استفاده در وب‌سایت‌های تجارت الکترونیکی است.
  2. خوشه‌بندی: خوشه‌بندی یا آنالیز خوشه در یادگیری ماشین، یکی از شاخه های یادگیری بی‌نظارتمی‌باشد و فرآیندی است که در طی آن، نمونه‌ها به  دسته‌هایی که اعضای آن مشابه یکدیگر می‌باشند تقسیم می‌شوند که به این دسته ها خوشه گفته می‌شود. بنابراین خوشه مجموعه ای از اشیاء می‌باشد که در آن اشیاء با یکدیگر مشابه بوده و با اشیاء موجود در خوشه‌های دیگر غیر مشابه می‌باشند.
  3. طبقه‌بندی: این روش به طبقه‌بندی و دسته‌بندی داده‌ها به زیر مجموعه‌هایی بر اساس خصوصیاتشان اشاره دارد. در واقع در این روش مجموعه‌ای از قوانین بر اساس داده‌های موجود (داده‌های مجموعه آموزش) ایجاد می‌شود تا بر اساس آن طبقه‌بندی مناسبی برای موضوع جدید در میان طبقه‌بندی‌های مختلف انجام گیرد. این روش جزء روش های یادگیری با نظارت محسوب می‌شود.
  4. قواعد انجمنی قوانین انجمنی روابط و وابستگیهای متقابل بین مجموعه بزرگی از اقلام داده‌ای را نشان می‌دهند. پیدا کردن چنین قوانینی می‌تواند در حوزه‌های مختلف مورد توجه بوده و کاربردهای متفاوتی داشته باشد بعنوان مثال کشف روابط انجمنی بین حجم عظیم تراکنش های کسب و کار می‌تواند درتشخیص تقلب ، در حوزه پزشکی و همچنین در مورد اطلاعات روش بکارگیری وب توسط کاربران مورد استفاده قرار گیرد.

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