امروزه با گسترش ابزار ها و کتابخانههای داده کاوی انتخاب یک ابزار پایه کارا برای توسعه الگوریتمها جهت برآورده نمودن نیازهای یک محصول از دغدغههای مهم سازمانها میباشد در نتیجه مطالعه و مقایسه ابزارهای موجود از اهمیت دوچندان برخوردار است. در این نوشتار ابزارهای موجود را با معیارهای نوع جواز نرمافزاری، زبان توسعه و کاربردها در صنعت را به طور اجمالی بررسی خواهیم نمود.
ابزار هایی که قرار است در این نوشتار بررسی شوند به طور کلی در چند دسته قرار می گیرند:
1. کتابخانههای زبان های برنامه نویسی
2. نرم افزارهای متن باز
3. نرمافزارهای اختصاصی
دامنه استفاده هر ابزار الزاماً با سایر ابزارها یکسان نمیباشد.
با گسترش زبانهای اسکریپتی نظیر پایتون یا R در حوزههای مرتبط با مهندسی داده کتابخانههای کاربردی جهت اعمال مرتبط نیز توسعه داده شده است. به طور مثال در زبان پایتون به کتابخانههای زیر اشاره نمود:
· Numpy
· Scipy
· Scikitlearn
· Matplotlib
· Tensorflow
· Pytorch
· Seaborn
· Plotly
· …
در مجموع هر کدام از این کتابخانهها بخشی از قابلیتها را ارایه میدهند تا توسعه دهنده با بهرهگیری از ترکیب چند کتابخانه به حل مساله خواهد پرداخت. البته لازم به ذکر است که زبان R اغلب برای کاربردهای آماری استفاده میشود و دامنه کاربردهای آن به گستردگی زبان پایتون نیست. از همین رو موقعیتهای شغلی برای زبان R به مراتب کمتر از پایتون است. نکته قابل توجه دیگر محیطهای توسعه است که برای زبان R به برنامه R studioمحدود شده اما برای پایتون چنین محدودیتی وجود ندارد.
با گسترش جامعه پروژههای متن باز، شرکتهای بزرگ به این رویکرد پرداختند. در نتیجه در حوزه داده کاوی شاهد ظهور ابزارهای زیر هستیم:
این نرم افزار امکان ساخت و مدیریت workflow های دادهکاوی از مرحله خواندن داده تا کشف حقایق را فراهم میآورد. مطابق شکل 1 کاربران میتوانند یک workflow ساده را توصیف نمایند. روند کار در واقع یک توصیف انتزاعی و مرحله به مرحله اجرای فرآیند دادهکاوی را تعیین میکند. بنابرین با اجرای دستی یا خودکار فرآیند دلخواه انجام می گردد. نرم افزار مذکور دارای دو نسخه رایگان و پولی میباشد.
این ابزار در سال 2001 توسط Klinkenberg بر بستر زبان جاوا همراه با رابط گرافیکی توسعه داده شد.[2] از ویژگیهای کلیدی این ابزار میتوان به موارد زیر اشاره کرد:
· ورود داده و انجام تبدیلهای لازم(ETL)
· پیشپردازش و مصورسازی دادهها
· ارایه تحلیلهای آماری و پیشبینی
· مهیا کردن استقرارسازی مدل روی سرور
· قابلیت توسعه ماژولهای بیشتر توسط زبانهای R و پایتون
همچنین قابل ذکر است که نرمافزارهای جانبی زیر نیز ارایه شده است:
· RapidMiner Studio
· RapidMiner Auto Model
· RapidMiner Turbo Prep
· RapidMiner Go
· RapidMiner Server
· RapidMiner Radoop
این نرم افزار متنباز یکی از محبوبترین زیرساختهای مهندسی داده است(برای یادگیری عمیق نیز نرمافزار مخصوصی به نام Wekadeeplearning4j). از ویژگیهای خوب این محصول میتوان به سازگاری با پایتون و R و اسپارک اشاره نمود[3]. از قابلیتهای کلیدی این محصول میتوان به رابط کاربر پسند و مدلهای ازپیش آماده و جامع آن اشاره نمود.
این زبان مدیریت ارتباط به زیرساخت های مدیریتی پایگاههای داده(DBMS) را به عهده دارد و به تنهایی ارتباطی با دادهکاوی ندارد اما در قابلیت های مربوط به دادهکاوی در هر پلتفرم به طور اختصاصی پیادهسازی شده است. به عنوان مثال SQL Server به عنوان یکی از این پلتفرمها این امکان را مهیا کرده است. ورود و پاکسازی دادهها و مدلهای از پیش آماده مانند درخت تصمیم، شبکههای عصبی و خوشهبندی نمونهای از قابلیتهای ارزشمند این پلتفرم است. در هر پلتفرمی این گونه خدمات نام اختصاصی خود را دارد. به عنوان مثال در SQL Server عنوان این مجموعه سرویسها Ssas میباشد[4].
این نرمافزار به دلیل قابلیتهای متنوع مصورسازی دارای شهرت فراوان است. در واقع امکان پرس و جو روی پایگاهدادههای رابطهای داخلی(local)، ابری، فایلهای صفحهگسترده جهت مصورسازی را فراهم آورده است. در سال 2003 در دانشگاه استنفورد این ابزار توسعه یافته است در نتیجه از قدمت خوبی برخوردار است[5].
از ویژگیهای کلیدی این نرمافزار پشتیبانی ویژه از دادههای مکان محور است؛ در واقع فایلهای از نوع GeoJSON و KML را میتواند پشتیبانی کند.
این نرم افزار توسط شرکت IBM با هدف تمرکز در صنایع زیر توسعه داده شده است[6]:
· مدیریت ارتباط با مشتری
· کشف تقلب
· بیمه
· مدیریت رسیک
· سلامت
روال کاری این محصول همانند محصولات مشابهش مبتنی بر تعریف Workflow داده کاوی و مدیریت آن میباشد. یکی از دلایل محبوبیت این محصول قابل اعتماد بودن آن به دلیل پشتیبانی توسط یک شرکت قوی میباشد. این نرم افزار در کنار محصولات دیگر شرکت مانند IBM SPSS Statistics میتواند به نتایج ارزشمندی برای یک پروژه به ارمغان بیاورد. محصولات دیگر این شرکت در همین حوزه در [7] قابل مشاهده است.
در مجموع بنا بر هدف تیمها و بودجه آنها پیشنهاد ابزار پایه داده کاوی برای آنها میتواند متفاوت باشد. اگر شرکتی بودجه کافی دارد و قابل اطمینان بودن محصول برایش اولویت دارد میتواند از محصولی مانند IBM SPSS Modeler استفاده کند درحالی که ممکن است شرکتی زمان عرضه به بازار در اولویت بالاتری برایش باشد بنابرین بدلیل وجود نیروی کار بیشتر[8] در حال حاضر از کتابخانههای پایتونی استفاده کند. هر چند که بعضی شرکتها ترجیح میدهند از افزودن تکنولوژی جدید در تیمهایشان امتناع ورزند بنابرین از گزینههای مبتنی بر SQL استفاده خواهند کرد.
[1] https://www.knime.com/getting-started-guide
[2] https://en.wikipedia.org/wiki/RapidMiner
[3] https://www.cs.waikato.ac.nz/ml/weka/
[5] https://en.wikipedia.org/wiki/Tableau_Software
[6] https://en.wikipedia.org/wiki/SPSS_Modeler#cite_note-3
[7] https://www.ibm.com/products/software
[8] https://towardsdatascience.com/top-10-in-demand-programming-languages-to-learn-in-2020-4462eb7d8d3e