انتخاب ابزار داده کاوی – پادکست پرسش و پاسخ


«دادهکاوی» (Data Mining)، یکی از موضوعات داغ این روزها است که به دلیل کاربردهای متعددی که در زمینههای گوناگون دارد، توانسته توجه پژوهشگران، سازمانهای دولتی و صاحبان کسب و کارها را به خود جلب کند. اما، یکی از پرسشهای اساسی که برای بسیاری از افرادی که در صدد یادگیری دادهکاوی هستند پیش میآید آن است که از چه نرمافزاری برای دادهکاوی استفاده کنند و یا به طور کلی، روش انتخاب ابزار داده کاوی چیست. دکتر «سید مصطفی کلامی هریس»، در پادکستی که در ادامه آمده، به این پرسش به طور مشروح پاسخ داده است. نسخه متنی این پادکست نیز در همین مطلب قرار دارد. البته، منبع اصلی همچنان فایل صوتی محسوب میشود.
پادکست پیرامون انتخاب ابزار داده کاوی
ذخیره کردن این فایل صوتی: لینک دانلود
نسخه نوشتاری
یکی از دوستان پرسشی را مطرح کردند مبنی بر اینکه از کدام یک از نرمافزارهای موجود برای «دادهکاوی» (Data Mining) استفاده کنند. نرمافزارهای متعددی مانند «وکا» (Weka) و «اسپیاساس مدلر» (SPSS Modeler) یا همان «کلمنتاین» (Clementine) سابق، وجود دارد که میتوان از آنها برای انجام پروژههای دادهکاوی استفاده کرد. اما، پرسش کلی این است که چه ابزاری برای دادهکاوی مناسب محسوب میشود.
در پاسخ به این پرسش باید گفت، اغلب اوقات انتخاب ابزار، کاملا به نیاز کاربر بستگی دارد. مثلا، اگر یک کار دادهکاوی خیلی عادی (یک کاربرد معمولی از دادهکاوی) وجود داشته باشد، تقریبا همه این ابزارها به صورت معادل میتوانند کار کنند؛ بنابراین، انتخاب با کاربر است که مثلا از وکا استفاده کند و یا از کلمنتاین سابق (همان SPSS Modeler) و یا حتی افزونهای که مایکروسافت برای نرمافزار «اکسل» (Microsoft Excel) ارائه داده است که در نرمافزارهای «اکسس» (Microsoft Access) و «اسکیوال سرور» (SQL Server) هم قابل استفاده است. هر یک از این ابزارها یک کاراییهایی دارند. کاربر کافی است عبارت «Data Mining Software» را در ویکیپدیا جستجو کند تا لیست بسیار جامعی از ابزارهای موجود برای دادهکاوی را مشاهده کند. افرادی که مهارت کد نویسی دارند، میتوانند از «زبان برنامهنویسی آر» (R Programming Language) و «زبان برنامهنویسی پایتون» (Python Programming Language) و کتابخانههای متعددی که برای دادهکاوی و «یادگیری ماشین» (Machine Learning) در این زبانها و برخی از دیگر زبانها وجود دارد، استفاده کنند.
اما عملا میتوان گفت که در کاربردهای عادی، امکانات این موارد با هم خیلی تفاوتی ندارد. زمان کاربر تعیین کننده است که فرد مثلا برود به سمت استفاده از یک محصول آماده یا سراغ یک زبان برنامهنویسی؛ در حال حاضر در محیط محاسباتی متلب (Matlab)، جعبه ابزارهای آمادهای (Toolbox) وجود دارد که فرد میتواند در کنار آن برنامهنویسی نیز انجام بدهد (متلب یک زبان برنامهنویسی نسل چهارم محسوب میشود). برای برخی از مسائل هم اصلا جعبه ابزار آمادهای وجود ندارد. اینکه مساله چه باشد، فرد چقدر زمان داشته باشد، تا چه حد دقت لازم باشد، حجم دادههای مساله چه میزان باشد، همه و همه میتوانند روی انتخاب ابزار تاثیر بگذارند. یعنی این چنین نیست که یکی از این ابزارها الزاما همیشه راهکاری برای حل همه مسائل دادهکاوی است.
اما شخصا اگر بخواهم ابزاری را به شما توصیه بکنم که با استفاده از آنها فرایند توسعه سادهتر شود و آسانتر بتوان با آن کار کرد، یکی از ابزارهای پیشنهادی «متلب» است که شاید در ایران در بیرون از فضای آکادمیک خیلی هم شناخته شده نباشد، ولی میتوان به خوبی از آن استفاده کرد. یکی از فواید متلب در این است که الگوریتمهایی که حتی کتابخانه آمادهای برای آنها وجود ندارد را خیلی راحت میتوان با استفاده از آن پیادهسازی کرد. البته، ابزارهای آماده نیز جایگاه خودشان را دارند. خیلی وقتها نیاز سازمانها در حد همان ابزارهای آماده است. البته، ای کاش در همان حد هم استفاده بشود، زیرا اغلب حتی در همان حد نیز از ابزارهای دادهکاوی در سازمانها استفاده نمیشود.
البته گاهی دیگر آن پردازشهایی که مثلا در SPSS Modeler وجود دارد، پاسخگوی نیاز کاربر نیستند و لازم میشود که یک الگوریتم جدید را تست کرد و یا توسعه داد. در این شرایط طبیعی است که نیاز به ابزاری به وجود میآید که بتوان با بهرهگیری از آن، الگوریتم را پیادهسازی کرد. در چنین مواقعی مثلا میتوان از متلب، پایتون یا آر استفاده کرد. برای انجام چنین کارهایی و در صورتی که پژوهشهایی در حال انجام باشد، توصیه میشود که فرد به سمت ابزارهای غیر آماده که با استفاده از آنها میتوان روشها و ابزارها را ساخت حرکت کند.
بنابراین، اگر بخواهیم جمعبندی کنیم که کدام نرمافزار را استفاده کنیم، باید گفت حقیقتا هیچ کدام ترجیح خاصی بر دیگری ندارند. شرایط کاربر، بودجه زمانی او و میزان انتظار کاربر از یک ابزار است که تعیین میکند کدام ابزار مناسبتر خواهد بود. یک نکته مهم دیگر هم این است که یادگیری و کار با زبانهای برنامهنویسی، در کنار سختیهایی که دارد، یک مزیت مهم هم دارد و آن این است که اگر فرد در حال انجام کارهای پژوهشی باشد، طبیعتا باید اصلیترین انتخاب او زبانهای برنامهنویسی باشند؛ زیرا مثلا با وکا یا دیگر ابزارهای آماده نمیتوان یک الگوریتم جدید را توسعه داد. امیدوارم این توضیحات برای شما کامل و گویا باشد.
برای دانلود و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند: