مفهوم دادهکاوی یا Data Mining به فرآیند کشف و شناسایی اطلاعات عملیاتی در مجموعههای بزرگ داده اطلاق میشود. در این فرآیند از آنالیزهای ریاضی برای به دست آوردن الگوها و روندهای موجود در دادهها استفاده میشود. لازم به ذکر است که به دلیل پیچیدگی بیش از حد روابط و یا حجم بالای دادهها معمولا نمیتوان این الگوها را از طریق روشهای قدیمی شناسایی نمود. این الگوها و روندها را میتوان در قالب یک مدل دادهکاوی جمعآوری و تعریف نمود؛ در ضمن این الگوها برای سناریوهای خاصی کارایی دارند که از جمله آن میتوان به موارد زیر اشاره نمود:
- پیشبینی: برآورد میزان فروش، پیشبینی میزان بار بر روی سرور و یا Downtime آن
- ریسک و احتمالات: انتخاب بهترین مشتریان جهت ارسال ایمیلهای هدفمند، تعیین Break-Event Point یا به اختصار BEP برای سناریوهای مرتبط با ریسک، اختصاص احتمالات به موارد شناساییشده یا سایر نتایج
- توصیهها: با شناسایی محصولاتی که احتمال فروش آنها با هم وجود دارد به ارائهی توصیههایی میانجامد.
- یافتن توالیها: با آنالیز انتخابهای مشتریان در سبد خرید آنها، رویدادهای احتمالی آینده را پیشبینی مینماید.
- گروهبندی: تقسیمبندی مشتریان یا رویدادها به گروههای مرتبط که موارد وابسته را آنالیز و پیشبینی مینماید.
در واقع ارائه مدل دادهکاوی یا Data Mining، بخشی از یک فرآیند گستردهتر میباشد که شامل مواردی همچون طرح سوال در خصوص دادهها، ایجاد یک مدل برای پاسخگویی به این سوالات و پیادهسازی مدل در فضای عملیاتی میگردد. فرآیند فوق با استفاده از این شش مرحله اصلی تعریف میشود که در این سری از مقالات مورد بررسی قرار خواهد گرفت:
۱- تعریف مساله
۲- آمادهسازی دادهها
۳- شناسایی دادهها
۴- ارائه مدل
۵- شناسایی و تایید اعتبار مدلها
۶- پیادهسازی و بهروزرسانی مدلها
نمودار زیر نمایشدهندهی چرخهی این فرآیند میباشد که به معنای پویا بودن فرآیند ایجاد مدل دادهکاوی میباشد. پس از انجام شناسایی ممکن است دادههای به دست آمده برای ایجاد مدل کافی نبوده و نیاز به جستجوی دادههای بیشتری باشد؛ ضمن اینکه ممکن است چندین مدل ارائه شود و سپس مشخص شود که این مدلها برای پاسخگویی به مسئله تعریفشده ناکافی میباشد و نیازمند تعریف مجدد مساله باشد. در عین حال این امکان نیز وجود دارد که مدلها پس از انجام پیادهسازی به دلیل افزایش حجم دادههای موجود، نیازمند بهروزرسانی باشند، بنابراین ممکن است هر یک از مراحل این فرآیند به دفعات زیادی تکرار شود تا یک مدل مناسب ارائه گردد.
Microsoft SQL Server Data Mining به ارائهی یک محیط یکپارچه برای ایجاد مدلهای دادهکاوی و کار با آنها میپردازد. این محیط شامل SQL Server Development Studio است که با بهرهمندی از الگوریتمهای دادهکاوی و ابزارهای Query موجب تسهیل در روند ایجاد یک راهکار جامع برای بسیاری از پروژهها و SQL Server Management Studio میشود که ابزارهایی برای جستجوی مدلها و مدیریت Objectهای دادهکاوی میباشند.
تعریف مساله
مطابق نمودار زیر اولین مرحله از فرآیند دادهکاوی به تعریف دقیق مساله اختصاص یافته و روشهای بهکارگیری دادهها جهت پاسخگویی به مساله را مدنظر قرار میدهد.
در این مرحله مواردی همچون آنالیز الزامات مربوط به کسبوکار، تعریف چارچوب مساله، تعریف معیارهای مورد استفاده برای ارزیابی مدل و تعریف اهداف مشخص برای پروژهی دادهکاوی صورت میپذیرد. این فعالیتها در قالب سوالات زیر بیان میشود:
- جستجو برای چه مواردی صورت میگیرد؟ چه نوع روابطی مورد جستجو قرار میگیرد؟
- آیا مسالهای که برای برطرف نمودن آن تلاش میشود، Policyها یا فرآیندهای کسبوکار را منعکس مینماید؟
- آیا تمایلی به انجام پیشبینیها بر اساس مدل دادهکاوی وجود دارد یا هدف صرفا جستجو برای روابط یا الگوهای مورد توجه است؟
- برای پیشبینی کدام نتایج یا خصوصیات تلاش میشود؟
- چه نوع دادههایی دردسترس بوده و چه نوع اطلاعاتی در هر ستون وجود دارد؟ در صورت وجود چندین جدول، این جداول به چه ترتیب با هم مرتبط میشوند؟ آیا به منظور قابل استفاده نمودن دادهها نیازی به پاکسازی برخی دادهها، ادغام یا پردازش آنها وجود دارد؟
- نحوهی توزیع دادهها به چه صورت است؟ آیا دادهها فصلی میباشند؟ آیا دادهها به صورت دقیق بیانگر فرآیندهای کسبوکار میباشند؟
پاسخ به سوالات فوق ممکن است مستلزم انجام تحقیق و بررسی در خصوص دسترسپذیری دادهها باشد تا بدین ترتیب نیاز کاربران با توجه به دادههای دردسترس تامین گردد. در صورتی که دادهها قادر به تامین نیازهای کاربران نباشند، ممکن است نیاز به تعریف مجدد پروژه باشد. ضمن اینکه باید روشهای ثبت نتایجِ مدلها در شاخصهای اصلی عملکرد که برای ارزیابی میزان پیشرفت کسبوکار بهکار میرود، مد نظر قرار گیرد.
با توجه به افزایش روزافزون حجم دادهها و تاثیرگذاری آنها بر کسب و کارها، انجام آنالیزهای دقیق و کاربردی اهمیت ویژهای یافته است. با استفاده از دادهکاوی (Data Mining) میتوان مدلهای مورد نظر خود را بر اساس دادههای موجود ایجاد نمود. در قسمت اول از این سری مقالات به بررسی مفهوم Data Mining و مراحل ساخت مدل پرداختیم. در این مقاله که قسمت دوم از این سری مقالات میباشد، به بررسی ادامه مراحل ایجاد مدل دادهکاوی میپردازیم.
آمادهسازی دادهها
مطابق نمودار زیر، در مرحله دوم از روند دادهکاوی (Data Mining) به تجمیع و پاکسازی دادههایی پرداخته میشود که در مرحلهی تعریف مسئله شناسایی شدهاند.
این امکان وجود دارد که دادهها در سراسر سازمان توزیع شده و در قالبهای مختلف ذخیره گردند و یا اینکه ممکن است شامل تناقضات و ناسازگاریهایی از جمله ورودیهای نادرست یا از دست رفته باشند. برای مثال ممکن است دادهها نشاندهندهی این موضوع باشند که خرید محصول توسط مشتری پیش از عرضهی آن در بازار صورت میگیرد یا مشتری همواره از فروشگاهی خرید میکند که بیش از ۳ کیلومتر از محل زندگی وی فاصله دارد.
فرآیند پاکسازی دادهها (Data Cleaning) تنها به حذف دادههای نامناسب یا وارد کردن مقادیر از دست رفته خلاصه نمیشود، بلکه کشف روابط پنهانشدهی میان دادهها، شناسایی دقیقترین منابع داده و تعیین مناسبترین ستونها برای استفاده در آنالیز را نیز دربر میگیرد. برای مثال میتوان به مواردی از این دست که از بین تاریخ ارسال محموله یا تاریخ دریافت سفارش، کدام یک مدنظر قرار گیرد و یا اینکه از میان دو پارامتر قیمت کل و تخفیف کدام یک به عنوان موثرترین عامل در افزایش فروش به شمار میروند، اشاره نمود. لازم به ذکر است که دادههای ناقص، دادههای نادرست و دادههای ورودی به ظاهر مجزا اما در حقیقت بسیار بههمپیوسته و مرتبط با یکدیگر، میتوانند تاثیری فراتر از حد انتظار بر روی نتایج داشته باشند.
بنابراین پیش از اقدام به ایجاد مدلهای دادهکاوی (Mining Model) باید به شناسایی این مسائل و نحوهی پاسخگویی به آنها پرداخته شود. با توجه به اینکه فرآیند دادهکاوی معمولا برروی حجم بالایی از مجموعه دادهها انجام شده و امکان بررسی کیفیت دادهها برای هر تراکنش وجود ندارد، احتمالا استفاده از برخی روشهای پروفایل نمودن دادهها و همچنین استفاده از ابزارهای پاکسازی و فیلترینگ خودکار آنها ضرورت مییابد؛ به عنوان مثال میتوان از محصولاتی همچون Integration Services ،Microsoft SQL Server 2012 Master Data Services و یا SQL Server Data Quality Services نام برد که قابلیتهایی جهت جستجوی دادهها و کشف تناقضات و ناهماهنگیها فراهم مینمایند.
لازم به ذکر است که الزامی در رابطه با ذخیرهی دادههای مورد استفاده در دادهکاوی بر روی یک پایگاهدادهی Cube OLAP و یا پایگاههای دادهی رابطهای (Relational Database) وجود ندارد، اگرچه میتوان از هردوی آنها به عنوان منبعهای داده استفاده نمود. بنابراین فرآیند دادهکاوی را میتوان با استفاده از هر منبع دادهای که به عنوان منبع دادهی Analysis Services تعریف شده باشد، انجام داد. این منابع داده ممکن است شامل فایلهای متنی (Text) و Workbookهای Excel یا دادههای سایر منابع خارجی باشد.
جستجوی دادهها
مطابق نمودار زیر، جستجوی دادههای آمادهشده به عنوان سومین مرحله از روند دادهکاوی محسوب میشود.
کاربران برای اتخاذ تصمیمهای مناسب در هنگام ایجاد مدلهای داده کاوی باید به درک صحیحی از دادهها برسند. از جمله تکنیکهای جستجو میتوان به محاسبهی حداقل و حداکثر مقادیر، محاسبهی میانگین و انحراف معیار و توجه به توزیع دادهها اشاره نمود. به طور مثال، این امکان وجود دارد تا با بازنگری حداقل، حداکثر و میانگین مقادیر به این نتیجهگیری دستیافت که دادهها قادر به نمایش فرآیندهای مرتبط با مشتریان یا کسبوکار نبوده و از همین رو نیاز به کسب دادههای متوازنتر یا بازنگری فرضیاتی است که انتظارات بر مبنای آن شکل گرفته است. با توجه به انحراف معیار و سایر مقادیر توزیعی میتوان به اطلاعات مفیدی دربارهی ثبات و دقت نتایج دست یافت. انحراف معیار بالا ممکن است نشانهی آن باشد که افزایش میزان دادهها میتواند به بهبود مدل کمک نماید. دادههایی که انحراف زیادی از توزیع استاندارد داشته باشند احتمالا خطا دارند، بدین معنا که تصویر دقیقی از یک مسئله در دنیای واقعی ارائه میدهند اما تناسب و هماهنگی مدل با دادهها را دشوار مینمایند.
با جستجوی دادهها بر اساس درک شخصی از مسائل کسبوکار میتوان در مورد مجموعه دادههای دارای دادههای معیوب تصمیمگیری نمود و سپس به تدوین یک استراتژی مناسب برای حل مساله یا درک عمیقتر از رفتارهای معمول در کسبوکار پراخت.
استفاده از ابزارهایی همچون Master Data Services این امکان را فراهم میکند تا منابع دادهی قابلدسترس کاملا بررسی گردیده و در خصوص دسترسپذیری آنها برای دادهکاوی تصمیمگیریهای لازم صورت پذیرد. با بهکار گیری ابزارهایی همچون SQL Server Data Quality Services یا Data Profiler در Integration Services نیز میتوان به بررسی توزیع دادهها و حل مشکلاتی همچون خطا یا دادههای از دست رفته پرداخت.
پس از تعریف منابع باید با استفاده از Data Source View Designer در SQL Server Data Tools به ترکیب آنها در ساختار Data Source پرداخته شود. این ابزار طراحی نیز به نوبهی خود از ابزارهای متعددی بهره میبرد که برای جستجوی دادهها و تایید قابلیت کاربرد آن برای ایجاد مدل به کار میرود.
نکتهی قابلتوجه اینکه Analysis Service در هنگام طراحی مدل به صورت خودکار اقدام به ارائهی خلاصههای آماری از دادههای موجود در مدل مینماید که بدین ترتیب کاربر میتواند برای ارائه گزارش یا آنالیزهای بیشتر، Query خود را ارسال نماید.
مفهوم مدلسازی
همانطور که در تصویر زیر مشاهده میشود، مرحلهی چهارم در فرآیند دادهکاوی به ارائه مدل یا مدل هایی برای کاوش اختصاص دارد.
ستونهایی از دادهها که برای استفاده در نظرگرفته شدهاند را میتوان با ایجاد یک ساختار دادهکاوی (Mining Structure)، تعریف نمود. هرچند ساختار داده کاوی، به منبع دادهها مرتبط میگردد اما در واقع تا قبل از پردازش، شامل هیچ دادهای نمیشود و در هنگام پردازش نمودن ساختار داده کاوی، Analysis Services میتواند اطلاعات گردآوری شده و سایر اطلاعات آماری مورد استفاده برای آنالیز را ارائه نماید. ضمن اینکه این اطلاعات در هر مدل دادهکاوی ساختاریافته نیز مورد استفاده قرار میگیرد.
پیش از پردازش ساختار و مدل، مدل دادهکاوی نیز تنها یک ظرفیت خالی محسوب میشود که مشخصکنندهی ستونهای مربوط به دادههای ورودی، صفات یا Attributeهای پیشبینیشده و پارامترهایی میباشد که نحوهی پردازش دادهها توسط الگوریتم را معین میکند. پردازش یک مدلِ اغلب Training یا آموزشی نامیده میشود و در واقع فرآیندی است جهت بهکارگیری یک الگوریتم ریاضی خاص برای دادههای یک ساختار و هدف آن، استخراج الگوها میباشد. نوع الگوهای یافت شده در روند Training به مواردی همچون انتخاب دادههای Training، الگوریتم انتخاب شده و چگونگی پیکربندی الگوریتم بستگی دارد. SQL Server 2016 شامل تعداد زیادی از الگوریتمهای مختلف میباشد که هریک با نوع متفاوتی از امور تناسب داشته و هرکدام مدل متفاوتی را ایجاد مینمایند.
علاوه بر موارد فوق این امکان نیز وجود دارد تا از پارامترهایی جهت تنظیم هر الگوریتم استفاده شود، همچنین میتوان از فیلترها در دادههای آموزشی بهره گرفته و به این وسیله صرفا از یک زیرمجموعه از دادهها استفاده نمود که منجر به نتایج متفاوتی نیز خواهد شد. Object متعلق به مدل داده کاوی پس از عبور دادهها از مدل، شامل خلاصهها و الگوهایی است که قابلیت استفاده یا Query برای فرآیند پیشبینی را دارا میباشد.
کاربر با استفاده از Data Mining Wizard در SQL Server Data Tools یا با کاربرد زبان (Data Mining Extensions (DMX میتواند یک مدل جدید را تعریف نماید.
این نکته را باید در نظر داشت که همراه با تغییرات دادهها، باید ساختار و مدل دادهکاوی بهروزرسانی گردد. هنگامی که Mining Structure از طریق پردازش مجدد بهروزرسانی میشود، Analysis Services اقدام به بازیابی دادهها از منبع مینماید که شامل هر گونه داده جدید در صورت بهروزرسانی منبع به شکلی پویا میشود و محتوای ساختار دادهکاوی را مورد بازنگری قرار میدهد. در صورت وجود مدلهای مبتنی بر ساختار، این امکان وجود دارد که فقط همین مدلها برای بهروزرسانی انتخاب شود؛ بدین معنا که فرآیند Train کردن فقط برای دادههای جدید صورت گیرد و یا اینکه مدل به همان صورت حفظ شود.
جستجو و تایید اعتبار مدلها
در مرحله پنجم از فرآیند دادهکاوی همانطور که در نمودار زیر نشان داده شده است، روند جستجوی مدلهایی است که ایجاد شده و اثربخشی آنها مورد بررسی قرار گرفته است.
پیش از پیادهسازی مدل در محیط عملیاتی باید نحوه عملکرد آن مورد بررسی قرار گیرد. به علاوه در هنگام تهیه مدل معمولا باید چندین مدل با پیکربندیهای متفاوت ارائه شوند تا پس از تست نمودن آنها بتوان به مدلی دست یافت که بهترین نتیجه را در ارتباط با مشکلات و دادهها فراهم میآورد.
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های محتوا به منظور بازیابی اطلاعات آماری، قواعد یا فرمولهای مربوط به مدلها
- جایگذاریِ مستقیم عملکرد دادهکاوی در برنامههای کاربردی: بدین ترتیب میتوانAnalysis Management Objects (AMO) را شامل نمود که دربردارنده مجموعهای از Objectهای مورد استفاده در برنامهکاربردی برای ارائه، تغییر، پردازش و حذف ساختارها و مدلهای دادهکاوی است. ضمن اینکه امکان ارسال مستقیم پیامهای (XML for Analysis (XMLA به یکی از Instanceهای Analysis Services نیز وجود دارد.
- استفاده از Integration Services برای ارائه Packageی که از مدل داده کاوی برای تفکیک هوشمندانه دادههای ورودی در قالب چندین جدول استفاده مینماید. برای مثال چنانچه یک پایگاهداده برای مشتریان بالقوه به طور پیوسته بهروزرسانی میشود، میتوان از یک Mining Model همراه با Integration Services بهره برده و داده های ورودی مشتریان را به دو دسته تقسیم نمود که مشتریان احتمالی خریدار و غیرخریدار محصول را دربر دارد.
- ارائه گزارشی که امکان Query نمودن مستقیم در مدل داده کاوی موجود را برای کاربران فراهم میکند.
- بهروزرسانی مدلها پس از بازنگری و آنالیز: هر یک از این بهروزرسانی مستلزم پردازش مجدد مدلها میباشد.
- به روزرسانی پویای مدلها همگام با افزایش میزان دادههای ورودی به سازمان و ایجاد تغییرات مداوم با هدف بهبود اثربخشی راهکار که باید بخشی از استراتژی پیادهسازی باشد.