Datumbox Machine Learning Framework 0.6.0 اطلاعات PlatoBlockchain Intelligence را منتشر کرد. جستجوی عمودی Ai.

چارچوب یادگیری ماشین Datumbox 0.6.0 منتشر شد

نسخه جدید چارچوب یادگیری ماشین Datumbox منتشر شد! اکنون آن را از گیتهاب or مخزن مرکزی Maven.

تازه چه خبر؟

تمرکز اصلی 0.6.0 نسخه گسترش چارچوب برای مدیریت داده های بزرگ، بهبود معماری کد و API های عمومی، ساده سازی تجزیه داده ها، بهبود اسناد و انتقال به مجوز مجاز است.

بیایید تغییرات این نسخه را با جزئیات ببینیم:

  1. مدیریت داده های بزرگ: مدیریت بهبود یافته حافظه و موتورهای ذخیره سازی پایدار جدید، چارچوب را قادر می سازد تا مجموعه داده های بزرگی با اندازه چندین گیگابایت را مدیریت کند. اضافه کردن پشتیبانی از MapDB موتور پایگاه داده چارچوب را قادر می سازد تا از ذخیره تمام داده ها در حافظه جلوگیری کند و در نتیجه بتواند داده های بزرگ را مدیریت کند. موتور پیش‌فرض InMemory برای کارآمدتر بودن دوباره طراحی شده است در حالی که موتور MongoDB به دلیل مشکلات عملکرد حذف شده است.
  2. معماری فریم ورک بهبود یافته و ساده شده: سطح انتزاع به طور قابل توجهی کاهش می یابد و چندین مؤلفه اصلی دوباره طراحی می شوند. به ویژه مکانیسم های ذخیره سازی پایدار بازنویسی شده و چندین ویژگی غیر ضروری و ساختار داده حذف می شوند.
  3. APIهای عمومی جدید «Scikit-Learn-like»: همه روش‌های عمومی الگوریتم‌ها برای شبیه‌سازی APIهای Scikit-Learn Python (پارادایم مناسب/پیش‌بینی/تغییر) تغییر کرده‌اند. روش های عمومی جدید انعطاف پذیرتر، آسان تر و دوستانه تر برای استفاده هستند.
  4. تجزیه داده ها را ساده کنید: چارچوب جدید با مجموعه‌ای از روش‌های راحت ارائه می‌شود که امکان تجزیه سریع فایل‌های CSV یا Text و تبدیل آنها به اشیاء Dataset را فراهم می‌کند.
  5. اسناد بهبود یافته: تمام کلاس‌ها و روش‌های عمومی/محافظت‌شده Framework با استفاده از نظرات Javadoc مستند شده‌اند. علاوه بر این، نسخه جدید تست های بهبود یافته JUnit را ارائه می دهد که نمونه های خوبی از نحوه استفاده از هر الگوریتم چارچوب است.
  6. لایسنس جدید آپاچی: مجوز نرم افزار فریم ورک از “مجوز عمومی GNU v3.0"را به"مجوز آپاچی ، نسخه 2.0". مجوز جدید مجاز است و اجازه توزیع مجدد در نرم افزار تجاری را می دهد.

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

چگونه به استفاده از آن

در یک پست وبلاگ قبلی، ما ارائه کرده ایم راهنمای نصب دقیق در مورد نحوه نصب فریم ورک این راهنما هنوز برای نسخه جدید معتبر است. علاوه بر این در این نسخه جدید می توانید چندین مورد را پیدا کنید مثالهای کد در مورد نحوه استفاده از مدل ها و الگوریتم های چارچوب.

مراحل بعدی و نقشه راه

توسعه چارچوب ادامه خواهد داشت و پیشرفت‌های زیر باید قبل از انتشار نسخه 1.0 انجام شود:

  1. Usنشستند چارچوب از کنسول: اگرچه هدف اصلی این چارچوب کمک به توسعه برنامه‌های یادگیری ماشینی است، اما باید استفاده از آن توسط توسعه‌دهندگان غیر جاوا آسان‌تر شود. با پیروی از رویکرد مشابه Mahout، چارچوب باید با استفاده از دستورات کنسول دسترسی به الگوریتم ها را فراهم کند. رابط کاربری باید ساده، آسان برای استفاده باشد و الگوریتم های مختلف باید به راحتی ترکیب شوند.
  2. پشتیبانی از Multi-threading: این فریم ورک در حال حاضر از رشته ها فقط برای فرآیندهای پاکسازی و نوشتن ناهمزمان در دیسک استفاده می کند. با این وجود برخی از الگوریتم ها را می توان موازی کرد و این امر زمان اجرا را به میزان قابل توجهی کاهش می دهد. راه حل در این موارد باید ظریف باشد و باید تا حد امکان منطق/ریاضیات داخلی الگوریتم های یادگیری ماشین را اصلاح کند.
  3. استفاده از آرایه ها و ماتریس های دو بعدی را کاهش دهید: تعداد کمی از الگوریتم ها هنوز از آرایه ها و ماتریس های دو بعدی استفاده می کنند. این باعث می شود که تمام داده ها در حافظه بارگذاری شوند که اندازه مجموعه داده قابل استفاده را محدود می کند. برخی از الگوریتم‌ها (مانند PCA) باید برای جلوگیری از استفاده از ماتریس‌ها دوباره پیاده‌سازی شوند، در حالی که برای برخی دیگر (مانند GaussianDPMM، MultinomialDPMM و غیره) باید از ماتریس‌های پراکنده استفاده کنیم.

سایر کارهای مهمی که باید در نسخه های بعدی انجام شود:

  1. شامل الگوریتم های یادگیری ماشینی جدید: این چارچوب را می توان برای پشتیبانی از چندین الگوریتم عالی مانند مخلوط گوسی ها، فرآیندهای گاوسی، k-NN، درختان تصمیم، تحلیل عاملی، SVD، PLSI، شبکه های عصبی مصنوعی و غیره گسترش داد.
  2. بهبود اسناد، پوشش تست نمونه های & کد: مستندات بهتری ایجاد کنید، تست‌های JUnit را بهبود ببخشید، نظرات کد را تقویت کنید، مثال‌های بهتری در مورد نحوه استفاده از الگوریتم‌ها ارائه دهید و غیره.
  3. بهبود معماری & بهینه سازی کد: ساده سازی و بهبود بیشتر در معماری چارچوب، منطقی کردن انتزاع، بهبود طراحی، بهینه سازی سرعت و مصرف حافظه و غیره.

همانطور که می بینید راه طولانی است و می توانم از کمکی استفاده کنم. اگر آماده چالش هستید باهام تماس بگیر یا درخواست کشش خود را در github ارسال کنید.

سپاسگزاریها

مایلم تشکر کنم الفتریوس بامپالتاکیس برای کمک ارزشمند او در بهبود معماری چارچوب. همچنین من می خواهم تشکر کنم ej-technologies GmbH برای ارائه مجوز برای Java Profiler خود به من. علاوه بر این ادای احترام من به جان کوتک برای کار شگفت انگیز او در موتور ذخیره سازی MapDB. آخرین اما نه کم اهمیت، عشق من به دوست دخترم کریاکی است که مرا تحمل می کند.

فراموش نکنید که کد Datumbox v0.6.0 را دانلود کنید گیتهاب. کتابخانه نیز در دسترس است مخزن مرکزی Maven. برای اطلاعات بیشتر در مورد نحوه استفاده از کتابخانه در پروژه جاوا، موارد زیر را بررسی کنید راهنمایی یا دستورالعمل های موجود در صفحه اصلی مخزن Github ما را بخوانید.

منتظر نظرات و پیشنهادات شما هستم. درخواست کشش همیشه خوش آمدید! 🙂

تمبر زمان:

بیشتر از Datumbox