نرم افزار
داده کاوی (Data Mining) چیست؟
دستیابی به اطلاعات کامل درحجم بالای داده ها و روابط پیچیده آنهابرای کارشناسان عملیات سنگینی میباشد. به کمک داده کاوی میتوان اطلاعات سودمند را از انبارهای داده استخراج نموده و در راستای بهبود کسب و کار مورد استفاده قرار داد. اطلاعات پایه اصلی برای تصمیم گیری و برنامه ریزی سازمان ها میباشد که قسمت اصلی اطلاعات از خود سازمان ناشی می گردد، با استفاده از داده های قبلی و الگوهای عملکرد سازمان و داده های خود سازمان نشان در رابطه با مشتریان و همکاران میتوان موفقیت یا شکست مجموعه را مورد بررسی قرار دهیم. بهمین دلیل مقوله داده کاوی یکی از دقدقه های فکری کارشنسان در این حوضه شده است، در این مقاله به معرفی این واژه مهم میپردازیم.
از فرآیند اکتشاف الگو و اقدامات منظم و پنهان در داده های توزیع شده با استفاده از الگوریتم های ریاضی و آمار، داده کاوی نامیده میشود. مقادیر عددی و غیر متنی از طریق الگوریتم ها، داده های متنی نیز از طریق الگورتیم های متن کاوی بررسی میگردند. در داده کاوی جهت ساخت مدل و ارائه پاسخ مناسب به سوالات از علومی مانند هوش مصنوعی، یادگیری ماشینی، آمار، پژوهش عملیاتی استفاده میگردد. استخراج و تحلیل اطلاعات سازمان از داده های در دسترس توسط کارکنان، فرایندی است که برای سالهای متمادی انجام شده و وظیفه جدیدی در سازمانها به شمار نمی آید. اولین الگوریتم های شناسایی روندهای منظم و الگوها در پایگاه داده، از علم آمار و نظریه های احتمال نشات گرفته اند. در سالهای اخیر، با رشد روزافزون قدرت محاسباتی رایانه ها و امکان دستیابی به نتایج حاصل از محاسبات پیچیده در مدت زمان کوتاه، سبب شده است تا الگوریتمهای پیشرفته ریاضی مورد توجه قرار بگیرند. این الگوریتم ها با درنظرگرفتن ابعاد مختلف داده، به پالایش و تحلیل آن پرداخته و الگوهای پیچیده و غیرقابل شناسایی توسط روشهای قدیمی را استخراج و ارائه میکنند. رایانه ها کمک کرده اند تا فرآیند استخراج،پالایش، پیش پردازش و مدل سازی داده ها و همچنین اعتبارسنجی یافته ها با دقت بیشتر و سرعتی بی نظیر انجام شود. داده کاوی عموما توسط سازمان های مشتری محور استفاده می شود، این سازمان ها (فروشگاه ها، تولید کنندگان، خرده فروشان و فروشگاه های اینترنتی) می توانند با استفاده از داده کاوی ارتباط میان اقدامات خود و عوامل درونی سازمان مثل قیمت کالاها، تخفیفات، هزینه تبلیغات و دیگر عوامل داخلی را با عوامل بیرونی مثل مشخصات مشتریان (سن، جنسیت، درآمد و محل سکونت)، رقبا و عوامل عمومی بازار (سطح درآمد جامعه، وضعیت رونق و رکود اقتصادی) را پیدا کنند. علاوه بر این می توان شاخص هایی مثل رضایت مشتری، درآمد و سود سازمان، مجموع سرمایه درگردش و هزینه های جاری و میزان افزایش و کاهش آنها در طول زمان را استخراج کند. مفهوم داده کاوی یا Data Mining به فرآیند کشف و شناسایی اطلاعات عملیاتی در مجموعه های بزرگ داده اطلاق میشود. در این فرآیند از آنالیزهای ریاضی برای به دست آوردن الگوها و روندهای موجود در دادهها استفاده میشود. لازم به ذکر است که به دلیل پیچیدگی بیش از حد روابط و یا حجم بالای دادهها معمولا نمیتوان این الگوها را از طریق روشهای قدیمی شناسایی نمود. این الگوها و روندها را میتوان در قالب یک مدل داده کاوی جمع آوری و تعریف نمود. در واقع ارائه مدل داده کاوی یا Data Mining، بخشی از یک فرآیند گسترده تر میباشد که شامل مواردی همچون طرح سوال در خصوص دادهها، ایجاد یک مدل برای پاسخگویی به این سوالات و پیاده سازی مدل در فضای عملیاتی میگردد. فرآیند فوق با استفاده از این شش مرحله اصلی تشکیل میشود که مراحل داده کاوی را میتوان به صورت موارد زیر تقسیم بندی نمود:
- تعریف مساله
در این مرحله مواردی همچون آنالیز الزامات مربوط به کسب کار، تعریف چارچوب مساله، تعریف معیارهای مورد استفاده برای ارزیابی مدل و تعریف اهداف مشخص برای پروژه ی داده کاوی صورت می پذیرد. این فعالیت ها در قالب سوالات متعددی بیان میشود که پاسخ به این سوالات ممکن است مستلزم انجام تحقیق و بررسی در خصوص دسترس پذیری دادهها باشد تا بدین ترتیب نیاز کاربران با توجه به داده های دردسترس تامین گردد. در صورتی که داده ها قادر به تامین نیازهای کاربران نباشند، ممکن است نیاز به تعریف مجدد پروژه باشد. ضمن اینکه باید روشهای ثبت نتایجِ مدلها در شاخص های اصلی عملکرد که برای ارزیابی میزان پیشرفت کسب و کار به کار میرود، مد نظر قرار گیرد. با توجه به افزایش روزافزون حجم داده ها و تاثیر گذاری آنها بر کسب و کارها، انجام آنالیزهای دقیق و کاربردی اهمیت ویژه ای یافته است. با استفاده از داده کاوی (Data Mining) میتوان مدلهای مورد نظر خود را بر اساس دادههای موجود ایجاد نمود.
- آماده سازی داده ها
این امکان وجود دارد که داده ها در سراسر سازمان توزیع شده و در قالب های مختلف ذخیره گردند و یا اینکه ممکن است شامل تناقضات و ناسازگاری هایی از جمله ورودی های نادرست یا از دست رفته باشند. برای مثال ممکن است دادهها نشان دهنده ی این موضوع باشند که خرید محصول توسط مشتری پیش از عرضه ی آن در بازار صورت می گیرد یا مشتری همواره از فروشگاهی خرید می کند که بیش از 3 کیلومتر از محل زندگی وی فاصله دارد. فرآیند پاکسازی دادهها (Data Cleaning) تنها به حذف دادههای نامناسب یا وارد کردن مقادیر از دست رفته خلاصه نمی شود، بلکه کشف روابط پنهان شده ی میان دادهها، شناسایی دقیق ترین منابع داده و تعیین مناسب ترین ستون ها برای استفاده در آنالیز را نیز دربر میگیرد. برای مثال میتوان به مواردی از این دست که از بین تاریخ ارسال محموله یا تاریخ دریافت سفارش، کدام یک مدنظر قرار گیرد و یا اینکه از میان دو پارامتر قیمت کل و تخفیف کدام یک به عنوان موثرترین عامل در افزایش فروش به شمار میروند، اشاره نمود. لازم به ذکر است که داده های ناقص، داده های نادرست و داده های ورودی به ظاهر مجزا اما در حقیقت بسیار به هم پیوسته و مرتبط با یکدیگر، می توانند تاثیری فراتر از حد انتظار بر روی نتایج داشته باشند. بنابراین پیش از اقدام به ایجاد مدلهای داده کاوی (Mining Model) باید به شناسایی این مسائل و نحوه ی پاسخگویی به آنها پرداخته شود. با توجه به اینکه فرآیند داده کاوی معمولا برروی حجم بالایی از مجموعه داده ها انجام شده و امکان بررسی کیفیت دادهها برای هر تراکنش وجود ندارد، احتمالا استفاده از برخی روشهای پروفایل نمودن دادهها و همچنین استفاده از ابزارهای پاکسازی و فیلترینگ خودکار آنها ضرورت می یابد. لازم به ذکر است که الزامی در رابطه با ذخیره ی داده های مورد استفاده در داده کاوی بر روی یک پایگاه داده ی Cube OLAP و یا پایگاه های داده ی رابطه ای (Relational Database) وجود ندارد، اگرچه میتوان از هردوی آنها به عنوان منبع های داده استفاده نمود. بنابراین فرآیند داده کاوی را میتوان با استفاده از هر منبع داده ای که به عنوان منبع داده ی Analysis Services تعریف شده باشد، انجام داد. این منابع داده ممکن است شامل فایل های متنی (Text) و Workbookهای Excel یا داده های سایر منابع خارجی باشد.
- جستجوی داده ها
کاربران برای اتخاذ تصمیم های مناسب در هنگام ایجاد مدل های داده کاوی باید به درک صحیحی از داده ها برسند. از جمله تکنیک های جستجو میتوان به محاسبه ی حداقل و حداکثر مقادیر، محاسبه ی میانگین و انحراف معیار و توجه به توزیع داده ها اشاره نمود. به طور مثال، این امکان وجود دارد تا با بازنگری حداقل، حداکثر و میانگین مقادیر به این نتیجه گیری دست یافت که داده ها قادر به نمایش فرآیندهای مرتبط با مشتریان یا کسب و کار نبوده و از همین رو نیاز به کسب داده های متوازن تر یا بازنگری فرضیاتی است که انتظارات بر مبنای آن شکل گرفته است. با توجه به انحراف معیار و سایر مقادیر توزیعی می توان به اطلاعات مفیدی درباره ی ثبات و دقت نتایج دست یافت. انحراف معیار بالا ممکن است نشانه ی آن باشد که افزایش میزان داده ها میتواند به بهبود مدل کمک نماید. داده هایی که انحراف زیادی از توزیع استاندارد داشته باشند احتمالا خطا دارند، بدین معنا که تصویر دقیقی از یک مسئله در دنیای واقعی ارائه میدهند اما تناسب و هماهنگی مدل با داده ها را دشوار می نمایند. با جستجوی داده ها بر اساس درک شخصی از مسائل کسب و کار میتوان در مورد مجموعه داده های دارای داده های معیوب تصمیم گیری نمود و سپس به تدوین یک استراتژی مناسب برای حل مساله یا درک عمیق تر از رفتارهای معمول در کسب و کار پراخت. استفاده از ابزارهایی همچون Master Data Services این امکان را فراهم می کند تا منابع داده ی قابل دسترس کاملا بررسی گردیده و در خصوص دسترس پذیری آنها برای داده کاوی تصمیم گیری های لازم صورت پذیرد. پس از تعریف منابع باید با استفاده از Data Source View Designer در SQL Server Data Tools به ترکیب آنها در ساختار Data Source پرداخته شود. این ابزار طراحی نیز به نوبه ی خود از ابزارهای متعددی بهره می برد که برای جستجوی داده ها و تایید قابلیت کاربرد آن برای ایجاد مدل به کار میرود.
- مفهوم مدل سازی
ستون هایی از دادهها که برای استفاده در نظر گرفته شده اند را میتوان با ایجاد یک ساختار داده کاوی (Mining Structure)، تعریف نمود. هرچند ساختار داده کاوی، به منبع داده ها مرتبط میگردد اما در واقع تا قبل از پردازش، شامل هیچ داده ای نمی شود و در هنگام پردازش نمودن ساختار داده کاوی، Analysis Services میتواند اطلاعات گردآوری شده و سایر اطلاعات آماری مورد استفاده برای آنالیز را ارائه نماید. ضمن اینکه این اطلاعات در هر مدل داده کاوی ساختاریافته نیز مورد استفاده قرار میگیرد. پیش از پردازش ساختار و مدل، مدل داده کاوی نیز تنها یک ظرفیت خالی محسوب میشود که مشخص کننده ی ستون های مربوط به داده های ورودی، صفات یا Attribute های پیش بینی شده و پارامترهایی میباشد که نحوه ی پردازش داده ها توسط الگوریتم را معین میکند. پردازش یک مدلِ اغلب Training یا آموزشی نامیده میشود و در واقع فرآیندی است جهت به کارگیری یک الگوریتم ریاضی خاص برای داده های یک ساختار و هدف آن، استخراج الگوها میباشد. نوع الگوهای یافت شده در روند Training به مواردی همچون انتخاب داده های Training، الگوریتم انتخاب شده و چگونگی پیکربندی الگوریتم بستگی دارد. SQL Server 2016 شامل تعداد زیادی از الگوریتم های مختلف میباشد که هریک با نوع متفاوتی از امور تناسب داشته و هرکدام مدل متفاوتی را ایجاد مینمایند. از پارامترهایی جهت تنظیم هر الگوریتم استفاده شود، همچنین میتوان از فیلترها در داده های آموزشی بهره گرفته و به این وسیله صرفا از یک زیرمجموعه از دادهها استفاده نمود که منجر به نتایج متفاوتی نیز خواهد شد. Object متعلق به مدل داده کاوی پس از عبور داده ها از مدل، شامل خلاصه ها و الگوهایی است که قابلیت استفاده یا Query برای فرآیند پیش بینی را دارا میباشد.
- جستجو و تایید اعتبار مدل ها
پیش از پیاده سازی مدل در محیط عملیاتی باید نحوه عملکرد آن مورد بررسی قرار گیرد. به علاوه در هنگام تهیه مدل معمولا باید چندین مدل با پیکربندی های متفاوت ارائه شوند تا پس از تست نمودن آنها بتوان به مدلی دست یافت که بهترین نتیجه را در ارتباط با مشکلات و داده ها فراهم می آورد. Analysis Services به ارائه ابزارهایی میپردازد که تقسیم داده ها به دو مجموعه داده ی Testing و Training را میسر نموده و بدین ترتیب امکان ارزیابی دقیق عملکرد در تمام مدل های مربوط به داده های مشابه را فراهم مینماید. بدین ترتیب میتوان از مجموعه داده های Training برای ایجاد مدل و از مجموعه داده های Testing برای بررسی دقت مدل ها از طریق ایجاد Queryهای پیش بینی، استفاده نمود. در SQL Server 2016 Analysis Services یا به اختصار (SSAS)، این تقسیم بندی به صورت خودکار و در حین ارائه مدل انجام میپذیرد. امکان جستجوی روندها و الگوهای شناسایی شده توسط الگوریتم ها با استفاده از Viewerهای موجود در Data Mining Designer در SQL Server Data Tools میسر میگردد. همچنین میتوان کیفیت پیش بینی مدلها را با بهره گیری از ابزارهایی در Designer مانند ماتریس دسته بندی و Life Chart تست نمود. تکنیکهای آماری با نام Cross-Validation به ایجاد زیرمجموعه هایی از دادهها به صورت خودکار و تست مدلها در هر زیرمجموعه کمک می کند، به این ترتیب میتوان اطمینان حاصل نمود که مدل مورد نظر به دادههای مشخصی اختصاص داشته و ممکن است برای فرآیندهای استنتاجی برروی کل جمعیت مورد استفاده قرار گیرد. چنانچه هیچ یک از مدلهای ایجاد شده در مرحله ی ایجاد مدل (Building Models) به خوبی عمل نکنند، لازم است که به مرحله قبلی فرآیند رجوع و مسئله مجددا تعریف گردد و یا اینکه دادهها در مجموعه اصلی دادهها مجددا مورد بررسی قرارگیرند.
- پیاده سازی و بروز رسانی مدل ها
پس از استقرار Mining Model در یک محیط عملیاتی میتوان عملکرد های بسیاری را با توجه به نیازها اجرا نمود. در زیر به برخی از این عملکردها اشاره می شود: استفاده از مدلها برای فرآیندهای پیش بینی که ممکن است در مراحل بعدی برای اتخاذ تصمیمات در کسب و کار نیز به کار گرفته شود. SQL Server به ارائه ی زبان DMX برای ایجاد Queryهای پیش بینی و Prediction Query Builder برای کمک به انجام Query می پردازد. انجام Query های محتوا به منظور بازیابی اطلاعات آماری، قواعد یا فرمولهای مربوط به مدل ها جایگذاریِ مستقیم عملکرد داده کاوی در برنامه های کاربردی: بدین ترتیب میتوان AMO را شامل نمود که دربردارنده مجموعه ای از Objectهای مورد استفاده در برنامه کاربردی برای ارائه، تغییر، پردازش و حذف ساختارها و مدل های داده کاوی است. ضمن اینکه امکان ارسال مستقیم پیام های (XML for Analysis (XMLA به یکی از Instanceهای Analysis Services نیز وجود دارد. استفاده از Integration Services برای ارائه Packageی که از مدل داده کاوی برای تفکیک هوشمندانه داده های ورودی در قالب چندین جدول استفاده می نماید. برای مثال چنانچه یک پایگاه داده برای مشتریان بالقوه به طور پیوسته بروز رسانی میشود، میتوان از یک Mining Model همراه با Integration Services بهره برده و داده های ورودی مشتریان را به دو دسته تقسیم نمود که مشتریان احتمالی خریدار و غیرخریدار محصول را دربر دارد. ارائه گزارشی که امکان Query نمودن مستقیم در مدل داده کاوی موجود را برای کاربران فراهم میکند. بروز رسانی مدلها پس از بازنگری و آنالیز هر یک از این بروز رسانی مستلزم پردازش مجدد مدلها میباشد. به روزرسانی پویای مدلها همگام با افزایش میزان داده های ورودی به سازمان و ایجاد تغییرات مداوم با هدف بهبود اثر بخشی راهکار که باید بخشی از استراتژی پیاده سازی باشد.