هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری
هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری

کلیات فرآیند ایجاد پروژه‌ی هوشمندی کسب و کار

به طور کلی فرآیند ایجاد پروژه‌های هوشمندی کسب و کار به سه دسته عمده‌ی ((شناخت و تحلیل، طراحی و ساخت و گسترش و پشتیبانی)) تقسیم می‌شود.


1-شناخت و تحلیل

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


2- طراحی و ساخت

در فاز طراحی و ساخت، با توجه به اطلاعات بدست آمده از سازمان و درک نیازها به طراحی و ساخت مدل و راهکارهای هوش تجاری می‌پردازیم. طراحی و ایجاد انبار داده، Solutionهای هوشمند کسب و کار (OLAP, Data Mining) و گزارش‌گیری در این فاز از پروژه انجام می‌شود.

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

در نهایت برای کشف دانش، توسط یکی از ابزارهای گزارش‌گیری (ابزاری که توانایی ساخت داشبورد مدیریتی داشته باشد) از حوزه‌های مختلف فعالیت سازمان داشبوردهای مدیریتی ایجاد می‌شود تا به واسطه‌ی آن مدیر بتواند وضعیت سازمان را به درستی تحلیل کند و برای آینده برنامه ریزی‌‌های لازم را انجام دهد.


3- گسترش و پشتیبانی

مطمئنا هر پروژه‌ای نیاز به پشتیبانی و نگهداری دارد تا در صورت بروز مشکلات احتمالی به سرعت رفع شود و سیستم مجدد به کار خود ادامه دهد. در این فاز پشتیبانی پروژه‌ی هوشمندی کسب و کار انجام می‌شود. معمولا این پشتیبانی توسط تیمی که پروژه را انجام داده است انجام می‌شود.

علاوه بر این ممکن است پس از مدتی سازمان قصد گسترش پروژه را داشته باشد. معمولا برای گسترش پروژه نیز در اختیار تیم قبلی ساخت پروژه قرار می‌گیرد. 

الگوریتم خوشه‌بندی در داده کاوی

همانطور که می‌دانید از داده‌کاوی برای کاوش در اطلاعات و کشف دانش استفاده می‌شود. برای اینکار الگوریتم‌های متعددی وجود دارد که هر یک برای هدف خاصی کاربرد دارند. در  SQL Server Business Intelligence Development Studio تعداد 9 الگوریتم مختلف برای انجام عمل داده‌کاوی وجود دارد که از هر یک در شرایط خاص و در جهت رسیدن به اهداف مشخصی استفاده می‌شود. خوشه بندی از مهمترین الگوریتم‌های داده کاوی است و کاربرد بسیاری در کشف دانش دارد به همین دلیل در این مقاله به الگوریتم خوشه بندی که یکی از مهمترین الگوریتم‌های داده‌کاوی است، خواهیم پرداخت.

کلاسترینگ (Clustering) یا خوشه‌بندی از جمله الگوریتم‌های قطعه بندی به حساب می‌آید. الگوریتم خوشه‌بندی اطلاعاتی را که ویژگی‌های نزدیک به هم و مشابه دارند را در دسته‌های جداگانه که به آن خوشه گفته می‌شود قرار می‌دهد. به بیان دیگر خوشه‌بندی همان دسته‌بندی‌های ساده‌ای است که در کارهای روزانه انجام می‌دهیم. وقتی با یک مجموعه کوچک از صفات روبرو باشیم دسته بندی به سادگی قابل اجرا است، برای مثال در یک مجموعه ‌از خودکارهای آبی، مشکی، قرمز و سبز به راحتی می‌توانیم آن‌ها را در 4 دسته قرار دهیم اما اگر در همین مجموعه ویژگی‌های دیگری مثل سایز، شرکت سازنده، وزن، قیمت و... مطرح باشد کار کمی پیچیده می‌شود. حال فرض کنید در یک مجموعه متشکل از هزاران رکورد و صدها ویژگی قصد دسته بندی دارید، چگونه باید این کار را انجام دهید؟!

بخش بندی داده‌ها به گروه‌ها یا خوشه‌های معنادار به طوری که محتویات هر خوشه ویژگی‌های مشابه و در عین حال نسبت به اشیاء دیگر در سایر خوشه‌ها غیر مشابه باشند را خوشه‌بندی می‌گویند. از این الگوریتم در مجموعه داده‌های بزرگ و در مواردی که تعداد ویژگی‌های داده زیاد باشد استفاده می‌شود.

  

تعریف خوشه بندی

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

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

زمانی که با یک مجموعه کوچک از خصوصیات سروکار داریم، خوشه‌بندی یک عمل ساده ای است که می توانیم آن را انجام دهیم. اما زمانی که خصوصیات رشد می‌کنند مشکلات خوشه‌بندی افزایش پیدا کرده و حتی ممکن است از طریق ذهن آدمی غیر ممکن باشد. عمل خوشه‌بندی فقط در 5 یا 6 بٌعد برای افراد نظریه پرداز که فهم عمیقی از داده‌ها دارند امکان پذیر است. اما مجموعه داده‌های مدرن، عموماً شامل ده‌ها (اگر نگوییم صدها) بٌعد هستند و زمانی که ما نمی‌توانیم روابط ممکن بین خصوصیات را درک کنیم، عمل خوشه‌بندی غیر ممکن می‌شود.

توجه: در این مقاله منظور از بٌعد تعداد خصوصیات اشیاء می‌باشد. به عنوان مثال، نقاط در صفحه دکارتی دارای دو بعد X و Y هستند.

کلاسترینگ، اشیاء را براساس ویژگی‌هایی که با هم دارند گروه‌بندی می‌کند. هدف اصلی در خوشه بندی تقسیم بندی اشیاء به گونه‌ای است که بیشترین شباهت در یک گروه و بیشترین تفاوت با اشیاء گروه‌های دیگر را دارا ‌باشد. بعنوان تعریف ساده‌تر می‌توان گفت که اشیاء در خوشه مخصوص خود دارای بیشترین شباهت و در برابر اشیای متعلق به خوشه‌های دیگر دارای بیشترین تفاوت هستند.

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


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




با توجه به شکل ممکن است که گرفتن چهار خوشه عقلانی نباشد (به علت شباهت نزدیک دو گروه)، به همین علت تاکید می‌کنیم که اشیاء خوشه را با توجه به وابستگی نوع داده‌ها و نتایج آن می‌توان بدست آورد.

 چه تحلیل و آنالیزهایی خوشه بندی نیستند؟

در این قسمت به طور خلاصه تفاوت تجزیه و تحلیل خوشه‌ای با دیگر تکنیک های گروه‌بندی را بیان می‌کنیم. در واقع گروه‌بندی اشیاء، داده را به کلاسهای نام گذاری شده تخصیص می‌دهد. در گروه بندی هر شیء دارای یک سرپرست و یا ناظر می‌باشد. می‌توان گفت خوشه بندی یک نوع طبقه بندی بدون سرپرست است یعنی اشیاء بر اساس شباهت‌هایی که باهم دارند تقسیم می‌شوند و نه بر اساس معیارهای از پیش تعیین شده. به همین دلیل به خوشه‌بندی گاهی اوقات طبقه بندی بدون سرپرست نیز می‌گویند. در داده‌کاوی هنگامی که از اصطلاح طبقه بندی استفاده می‌شود منظور همان طبقه بندی بصورت با سرپرست می‌باشد و همچنین واژه‌های قطعه بندی و پارتیشن بندی مترادف خوشه بندی هستند. این لغات بارها در روش های سنتی استفاده شده است. در واقع استفاده از قطعه بندی، استفاده از تکنیک های ساده ای برای گروه‌بندی داده‌ها می‌باشد.

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

 ارتباط محکمی میان پارتیشن‌بندی و گراف خوشه بندی وجود دارد. برای درک بهتر تفاوت میان خوشه بندی و سایر تکنیک‌های گروه‌بندی اشیاء به مثال زیر توجه کنید.

تفاوت خوشه بندی با بانک اطلاعاتی یا درخواست از موتور جستجو: اگرچه یک کوئری مجموعه‌ای از رکوردها  را به دو گروه تقسیم می کند ( و فقط قسمت مورد نیاز پرس و جو بازیابی می‌شود) این دو نتیجه به علت نداشتن ارتباط، خوشه بندی نیستند. یک پرس و جو مجموعه ای از اشیاء را نمایش می‌دهد در حالی که خوشه بندی تلاش می‌کند اشیاء را براساس شباهت ها و تفاوت‌ها سازماندهی کند.

نکته: شاید به نظر برسد که پاسخ های کوئری دارای شباهت هایی هستند، اما باید توجه داشت که در پرس و جو عموما تمام ابعاد درخواست نمی‌شوند و ممکن است شباهت ها فقط در چند بٌعد کوچک باشد.

الگوریتم خوشه بندی  

زمانی که روابط بین داده‌ها به خوبی آشکار نباشند، این الگوریتم یک گروه بندی طبیعی میان داده‌ها انجام می‌دهد. یا به عبارت دیگر این الگوریتم متغیرهای پنهانی را پیدا می‌کند که دقیقا داده‌های شما را دسته‌بندی کرده است. برای مثال ممکن است با دیدن بخشی از مردم که عازم سفر هستند متوجه شوید که درصد قابل توجه‌ای از مسافرین لباس های نازک پوشیده‌اند در حالیکه بقیه افراد گرمکن و کت به تن دارند. در این حالت می‌توان یک متغیر پنهانی را نتیجه گرفت‌ که آن متغیر بیان می کند یک گروه افراد از آب و هوای گرمسیری می آیند و گروه دیگر از ناحیه سرد و بارانی بازمی گردند. این توانایی که رشته مشترکی از ارتباطات را به یکدیگر متصل می‌کند باعث می‌شود که خوشه‌بندی تبدیل به یک تکنیک استخراج داده‌ی رایج، در بازاریابی شود.

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

برای شناخت بیشتر و بهتر رفتار پیرامون مشتریان جهت ارسال پیام‌های مناسب به گروه های خاص می توان از خوشه بندی استفاده نمود. برای مثال یک ویدئو کلوپ ممکن است دریابد که گروهی از مشتریان فیلم‌های خانوادگی را بر پایه یک نظم خاصی خریداری می کنند و گروه دیگر علاقه کمتری نسبت به خرید فیلم‌های مستند دارند. ظاهرا ارسال کارت تبلیغاتی فیلم‌های دیسنی (نام یک شرکت فیلمسازی در آمریکا) برای گروه دوم گزینه عاقلانه‌ای نمی‌باشد.

توانایی تعریف و شناسایی بخش‌های بازار ابزاری قوی برای اداره بهتر کسب و کار فراهم می کند. فیلم‌های خانوادگی برای فروش مطلوب هستند یا فیلم‌های مستند؟ سود بیشتر در ناحیه شمال غرب است یا جنوب شرق؟ سود اجاره‌کنندگان بیشتر است یا خریداران؟ تقریبا راه ها‌ی بیشماری برای گروه‌بندی داده‌ها وجود دارد. اما برای گروه‌بندی با یک دید عمیق در کسب و کار راه‌های کمی وجود دارد.

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

ETL چیست؟

ETL مخفف Extract Transform and Load است که به معنای استخراج، پالایش و بارگذاری اطلاعات می‌باشد. از ETL در زمان ساخت انبار داده‌ها (Data Warehouse) استفاده می‌شود. فرایندی که به موجب آن اطلاعات از یک یا چند منبع مختلف جمع آوری، پالایش و در نهایت در انبار داده بارگذاری می‌شود.

نمی‌توان ETL و Data Warehouse را از یکدیگر جدا کرد. در واقع با انجام ETL، تحلیل و طراحی انجام گرفته برای  Warehouse به ثمر می‌رسد. پیشتر در مقاله " مراحل و نحوه بارگذاری داده ها در انبار داده "  به  ETL  پرداخته شده بود. در این مقاله به تشریح مراحل و ابزارهای ETL می‌پردازم.

Extract: منظور استخراج داده از یک یا چند منبع مختلف است. پس از آنکه تحلیل و طراحی مدل Warehouse به پایان رسید، نوبت به بارگذاری داده‌ها در آن می‌رسد. اما بارگذاری داده‌ها تابع قوانین خاصی هستند و باید به آن‌ها توجه شود. ابتدا باید منابعی که قرار است اطلاعات آن‌ها را در Warehouse داشته باشیم شناسایی کنیم و پس از آن داده‌ها را در یک محیط واسط قرار دهیم. این عملیات می‌تواند توسط یکی از ابزارهای ETL و یا Stored Procedureها، Functionها و کوئری‌ها انجام گیرد. منظور از محیط واسط یک بانک اطلاعاتی است که میان انبار داده‌ها و منابع داده قرار گیرد. دلیل استفاده از محیط واسط این است که معمولا داده‌های منبع نیاز به پالایش دارند که اولا این پالایش نباید در منبع داده‌ها انجام گیرد و دوما اطلاعاتی که در Warehouse بارگذاری می‌شوند باید به صورت پالایش شده باشد. باید در زمان استخراج، داده‌ها را از منابع مختلف  جمع آوری و در یک محیط واسط قرار دهیم.

Transform: منظور پالایش داده‌های استخراج شده است. پالایش داده‌ها بسیار مهم است چرا که بعد از پالایش داده‌ها باید آن‌ها را در انبار داده بارگذاری کرد. برای این کار از یک محیط واسط که کم و بیش شبیه انبار داده است استفاده میشود. پالایش داده‌ها شامل موارد زیر است.

·         بررسی کیفیت داده‌ها (Verify data quality)

کیفیت داده‌ها به وسیله پرسش‌هایی از قبیل سوالات زیر مورد بررسی قرار می‌گیرند: 

 آیا داده‌ها کامل هستند (مواردی مورد نیازمان را پوشش می‌دهند)؟

داده‌ها صحیح هستند یا اشتباهاتی دارند؟ اگر اشتباه هستند علت اشتباهات چیست؟

آیا ارزش‌های گم شده در داده وجود دارد؟ اگر اینگونه است آن‌ها چگونه نمایش داده می‌شود؟ عموماً در کجا اتفاق افتاده است؟

·  پاک‌سازی داده‌ها (Clean data)

بالا بردن کیفیت داده‌ها نیازمند انتخاب تکنیک آنالیز می‌باشد. این انتخاب شامل پاک کردن زیر مجموعه‌ای از داده‌های نامناسب و درج پیش‌فرض‌های مناسب می‌باشد.

·  شکل دادن داده‌ها (Construct data)

این قسمت شامل عملیات ویژه‌ای مانند تولید خصوصیت‌های مشتق شده، تولید رکوردهای جدید و کامل یا مقادیر تبدیل شده از خصوصیات موجود می‌باشد.

·  ادغام داده‌ها (Integrate data)

روش‌هایی وجود دارد که به وسیله آن اطلاعات از چند جدول ترکیب شده و رکوردهای جدید یا مقادیری جدیدی ایجاد می‌شود.

· قالب بندی داده‌ها (Format data)

منظور از قالب بندی داده‌ها، تغییر و تبدیل قواعد اولیه داده مورد نیاز ابزار مدل سازی می باشد.


Load: آخرین کاری که در ETL انجام می‌گیرد بارگذاری داده‌های استخراج و پالایش شده از منابع مختلف در انبار داده‌ها است. معمولا در زمان بارگذاری در انبار داده تغییرات خاصی روی داده‌ها انجام نمی‌گیرد و آن‌ها بدون هیچ تغییری از محیط واسط در انبار داده‌ها بارگذاری می‌شوند.

یکی از بهترین و قویترین ابزارها برای عملیات ETL، ابزار SSIS است که استفاده از آن سرعت و دقت در عملیات را بالا می‌برد.