شناسایی ویژگی‌های تاثیرگذار از مشتریان

Feature Subset Selection Methods

شناسایی ویژگی‌های تاثیرگذار از مشتریان

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

در فاز پاکسازی داده‌ها شما باید مشکلاتی از قبیل وجود داده‌های دورافتاده (پرت)، داده‌های از دست رفته (گم شده) رکوردهای تکراری و … را مدیریت کنید. همچنین گفتیم که در برخی از موارد داده‌های شما نیازمند انجام برخی پیش پردازش‌های اضافی‌تر نیز می‌باشند. به عنوان نمونه ممکن است داده‌های شما نیاز به یکپارچه‌سازی، تجمیع، نمونه‌گیری، انتخاب زیرمجموعه‌ای از ویژگی‌های تأثیرگذار، کاهش ابعاد، گسسته‌سازی، خلق ویژگی، نرمال‌سازی و … باشد. در مقاله آماده سازی داده ها در اجرای پروژه های داده کاوی درباره هر یک از این مراحل توضیحاتی را ارائه نمودیم و همچنین برای هر یک از مراحل راهنمای اجرا در نرم افزار RapidMiner و زبان R نیز برای شما ارائه شده است. 

در این مقاله می خواهیم با جزئیات بیشتری به موضوع انتخاب زیر مجموعه ای از ویژگی‌های تاثیرگذار بپردازیم.

در دنیای واقعی پایگاه‌های داده مشتریان معمولا دارای ابعاد بالایی می‌باشند، متغیرهای زاید و بی‌ربط در مجموعه داده می‌تواند منجر به کاهش دقت الگوریتم رده‌بندی گردد.

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

ویژگی‌های زائد یا افزونه ویژگی‌هایی هستند که از طریق سایر ویژگی‌ها قابل‌محاسبه می‌باشند. اجازه دهید در این مورد مثالی برای شما ارائه کنم. ممکن است در مجموعه داده‌ای که در اختیار دارید یک ستون مربوط به قیمت باشد و ستون دیگری مربوط به مالیات و شما بدانید که مالیات به‌صورت ۱۰ درصد از قیمت محاسبه می­شود. در این صورت می‌توانید یکی از این ستون‌ها را حذف نمایید چراکه یکی بر مبنای دیگری قابل‌محاسبه است.

ویژگی‌های غیر مرتبط نیز ویژگی‌هایی هستند که هیچ ارزش اطلاعاتی برای مسئله نداشته باشند. فرض کنید می‌خواهید ریزش یک مشتری را پیش‌بینی کنید. آیا دانستن نام مشتری در مدل‌سازی پیش‌بینی ریزش مشتری تأثیر می‌گذارد؟ پس بهتر است چنین ویژگی‌هایی را از همان ابتدا وارد مدل‌سازی نکنید.

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

روش های مختلفی برای انتخاب زیرمجموعه ای از ویژگی ها وجود دارد که در ادامه به برخی از آن ها اشاره می کنیم.

  • روش ناآگاهانه (Brute-force)

    در این روش تمامی حالات ممکن ورود متغیرها به مدل مورد بررسی قرار می گیرد. برای مثال فرض کنید ۴ متغیر داشته باشیم،‌ تمامی حالات ممکن برابر با ۲۴ می باشد. این روش در مواقعی کاربرد دارد که تعداد متغیرهای مسئله ما کم باشد. فرض کنید در حالتی که تعداد متغیرها برابر با ۱۰۰ باشد، بررسی ۲۱۰۰ حالت کار مشکلی خواهد بود.

  • روش توکار (Embedded) 

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

  • روش های فیلتری (Filtering) 

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

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

 

شکل ۱- چارچوب انتخاب ویژگی فیلتری

در کتاب تُندآموز RapidMiner  نحوه انتخاب ویژگی های تاثیرگذار از مشتریان با استفاده از روش های فیلتری با ارائه مثالی توضیح داده شده است.
  • روش های انحصاری (Wrapper) 

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

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

 

شکل ۲- چارچوب انتخاب ویژگی در روش‌های انحصاری (الگوریتم ژنتیک)

 

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

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit exceeded. Please complete the captcha once again.

سوالی دارید؟ با ما صحبت کنید!
مکالمه را شروع کنید
سلام! برای گفتگو در WhatsApp مسئول بخش مورد نظر که میخواهید با او صحبت کنید را انتخاب کنید