رگرسیون لجستیک یک الگوریتم طبقه بندی یادگیری ماشین است که برای پیش بینی احتمال یک متغیر وابسته به طبقه استفاده می شود. در رگرسیون لجستیک ، متغیر وابسته یک متغیر باینری است که حاوی داده های کدگذاری شده به عنوان 1 (بله ، موفقیت و غیره) یا 0 (خیر ، خرابی و غیره) است. به عبارت دیگر ، مدل رگرسیون لجستیک p (y = 1) را به عنوان تابعی از x پیش بینی می کند.
فرضیات رگرسیون لجستیک
- رگرسیون لجستیک باینری به متغیر وابسته نیاز دارد که باینری باشد.
- برای رگرسیون باینری ، سطح فاکتور 1 متغیر وابسته باید نتیجه مطلوب را نشان دهد.
- فقط متغیرهای معنی دار باید گنجانده شوند.
- متغیرهای مستقل باید مستقل از یکدیگر باشند. یعنی مدل باید چند یا چندانی داشته باشد.
- متغیرهای مستقل به صورت خطی با شانس ورود به سیستم مرتبط هستند.
- رگرسیون لجستیک به اندازه نمونه بسیار بزرگی نیاز دارد.
فرضیات فوق را در خاطر داشته باشید ، بیایید به مجموعه داده های خود نگاه کنیم.
این مجموعه داده از مخزن یادگیری ماشین UCI تهیه شده است و مربوط به کمپین های بازاریابی مستقیم (تماس های تلفنی) یک موسسه بانکی پرتغالی است. هدف طبقه بندی پیش بینی اینکه آیا مشتری (1/0) در یک سپرده ترم (متغیر Y) مشترک خواهد شد یا خیر. مجموعه داده ها را می توان از اینجا بارگیری کرد.
این مجموعه اطلاعات اطلاعات مشتریان بانک را ارائه می دهد. این شامل 41188 رکورد و 21 زمینه است.
متغیرهای ورودی
- سن (عددی)
- شغل: نوع شغل (طبقه بندی: "مدیر" ، "یقه آبی" ، "کارآفرین" ، "خانه دار" ، "مدیریت" ، "بازنشسته" ، "خود اشتغالی" ، "خدمات" ، "دانشجو" ، "تکنسین""،" بیکار "،" ناشناخته ")
- زناشویی: وضعیت زناشویی (طبقه بندی: "طلاق" ، "متاهل" ، "مجرد" ، "ناشناخته")
- آموزش (طبقه بندی: "Basic. 4y" ، "Basic. 6y" ، "Basic. 9y" ، "High. school" ، "Budited" ، "Professional. Course" ، "University. Degree" ، "ناشناخته")
- پیش فرض: اعتبار به طور پیش فرض دارد؟(طبقه بندی: "نه" ، "بله" ، "ناشناخته")
- مسکن: وام مسکن دارد؟(طبقه بندی: "نه" ، "بله" ، "ناشناخته")
- وام: وام شخصی دارد؟(طبقه بندی: "نه" ، "بله" ، "ناشناخته")
- مخاطب: نوع ارتباطات تماس (طبقه بندی: "تلفن همراه" ، "تلفن")
- ماه: آخرین ماه تماس سال (طبقه بندی: "ژانویه" ، "فوریه" ، "مار" ، ... ، "نوامبر" ، "دسامبر")
- day_of_week: آخرین روز تماس هفته (طبقه بندی: "دوشنبه" ، "سه شنبه" ، "چهارشنبه" ، "پنجشنبه" ، "جمعه")
- مدت زمان: آخرین مدت تماس ، در ثانیه (عددی). نکته مهم: این ویژگی به شدت بر هدف خروجی تأثیر می گذارد (به عنوان مثال ، اگر مدت زمان = 0 باشد ، y = "نه"). مدت زمان قبل از انجام تماس مشخص نیست ، همچنین ، پس از پایان تماس ، Y آشکارا شناخته شده است. بنابراین ، این ورودی فقط باید برای اهداف معیار گنجانده شود و در صورتی که قصد داشته باشد یک مدل پیش بینی واقع بینانه باشد ، باید دور ریخته شود
- کمپین: تعداد مخاطبین انجام شده در این کمپین و برای این مشتری (عددی ، شامل آخرین تماس)
- PDAYS: تعداد روزهایی که پس از آخرین تماس با مشتری از یک کمپین قبلی گذشت (عددی ؛ 999 به این معنی است که قبلاً با مشتری تماس گرفته نشده بود)
- قبلی: تعداد مخاطبین انجام شده قبل از این کمپین و برای این مشتری (عددی)
- Poutcome: نتیجه کمپین بازاریابی قبلی (طبقه بندی: "شکست" ، "وجود" ، "موفقیت")
- emp. var. rate: نرخ تنوع اشتغال - (عددی)
- ins. price. idx: شاخص قیمت مصرف کننده - (عددی)
- cons. conf. idx: شاخص اعتماد به نفس مصرف کننده - (عددی)
- EURIBOR3M: نرخ 3 ماه EURIBOR - (عددی)
- nr. employed: تعداد کارمندان - (عددی)
پیش بینی متغیر (هدف مورد نظر):
y - آیا مشتری سپرده مدت دار را ثبت کرده است؟(دودویی: "1"، به معنی "بله"، "0" به معنای "نه")
ستون آموزش مجموعه داده دارای دسته های زیادی است و برای مدل سازی بهتر باید دسته ها را کاهش دهیم. ستون آموزش دارای دسته های زیر است:
اجازه دهید "basic. 4y"، "basic. 9y" و "basic. 6y" را با هم گروه بندی کنیم و آنها را "basic" بنامیم.
پس از گروه بندی، این ستون ها است:
کاوش داده ها
درصد عدم اشتراک 88. 73458288821988 است
درصد اشتراک 11. 265417111780131
کلاس های ما نامتعادل هستند و نسبت عدم اشتراک به نمونه های اشتراک 89:11 است. قبل از اینکه کلاسها را متعادل کنیم، اجازه دهید کمی کاوش کنیم.
مشاهدات:
- میانگین سنی مشتریانی که سپرده مدت دار را خریداری کرده اند بیشتر از مشتریانی است که این سپرده را خریداری نکرده اند.
- pdays (روزهای پس از آخرین تماس با مشتری) برای مشتریانی که آن را خریده اند به طور قابل درک کمتر است. هرچه تعداد pday ها کمتر باشد، حافظه آخرین تماس بهتر است و در نتیجه شانس فروش بیشتر است.
- با کمال تعجب، کمپین ها (تعداد مخاطبین یا تماس های برقرار شده در طول کمپین فعلی) برای مشتریانی که سپرده مدت دار را خریداری کرده اند کمتر است.
ما میتوانیم میانگینهای مقولهای را برای سایر متغیرهای طبقهبندی مانند تحصیلات و وضعیت تأهل محاسبه کنیم تا درک دقیقتری از دادههای خود داشته باشیم.
تجسم ها
دفعات خرید سپرده تا حد زیادی به عنوان شغل بستگی دارد. بنابراین، عنوان شغلی می تواند پیش بینی کننده خوبی برای متغیر نتیجه باشد.
وضعیت تاهل پیش بینی کننده قوی برای متغیر نتیجه به نظر نمی رسد.
به نظر می رسد تحصیلات پیش بینی کننده خوبی برای متغیر نتیجه باشد.
روز هفته ممکن است پیش بینی خوبی برای نتیجه نباشد.
ماه ممکن است پیش بینی کننده خوبی برای متغیر نتیجه باشد.
اکثر مشتریان بانک در این مجموعه داده در محدوده سنی 30 تا 40 سال هستند.
به نظر می رسد Poutcome پیش بینی کننده خوبی برای متغیر نتیجه باشد.
متغیرهای ساختگی ایجاد کنید
یعنی متغیرهایی با تنها دو مقدار صفر و یک.
ستون های داده نهایی ما به صورت زیر خواهد بود:
نمونه برداری بیش از حد با استفاده از SMOTE
با ایجاد دادههای آموزشی ما، بدون اشتراک را با استفاده از الگوریتم SMOTE (تکنیک نمونهبرداری بیش از حد اقلیت مصنوعی) نمونهبرداری میکنم. SMOTE در سطح بالا:
- با ایجاد نمونه های مصنوعی از کلاس مینور (بدون اشتراک) به جای ایجاد کپی کار می کند.
- به طور تصادفی یکی از k-نزدیک ترین همسایه ها را انتخاب کنید و از آن برای ایجاد مشاهدات جدید مشابه، اما به طور تصادفی بهینه شده استفاده کنید.
ما قصد داریم SMOTE را در پایتون پیاده سازی کنیم.
اکنون ما یک داده متعادل کامل داریم!شاید متوجه شده باشید که من فقط روی داده های آموزشی نمونه برداری بیش از حد انجام دادم، زیرا با نمونه برداری بیش از حد از داده های آموزشی، هیچ یک از اطلاعات موجود در داده های آزمایشی برای ایجاد مشاهدات مصنوعی استفاده نمی شود، بنابراین، هیچ اطلاعاتی از داده های آزمایشی خارج نمی شود. آموزش مدل
حذف ویژگی بازگشتی
حذف ویژگی بازگشتی (RFE) مبتنی بر ایده ساخت مکرر یک مدل و انتخاب بهترین یا بدترین ویژگی، کنار گذاشتن ویژگی و سپس تکرار فرآیند با بقیه ویژگیها است. این فرآیند تا زمانی که تمام ویژگی های مجموعه داده تمام شود اعمال می شود. هدف RFE انتخاب ویژگی ها با در نظر گرفتن بازگشتی مجموعه های کوچکتر و کوچکتر از ویژگی ها است.
RFE به ما کمک کرده است تا ویژگی های زیر را انتخاب کنیم: "Euribor3m" ، "job_blue-Collar" ، "job_housemaid" ، "Marital_unknown" ، "Education_illiterate" ، "Default_No" ، "Default_unknown" ، "contact_cellular" ، "contact_telephone" ، "Mothous_apr""،" MONH_AUG "،" MONH_DEC "،" MONH_JUL "،" MONH_JUN "،" MONH_MAR "،" MONH_MAY "،" MONH_NOV "،" MONH_OCT "،" POUTCOME_FAILURE "،" POUTCOME_SUCCESS ".
اجرای مدل
مقادیر p برای بیشتر متغیرها از 0. 05 کوچکتر است ، به جز چهار متغیر ، بنابراین ما آنها را حذف خواهیم کرد.
متناسب با مدل رگرسیون لجستیک
پیش بینی نتایج مجموعه آزمون و محاسبه دقت
دقت طبقه بندی رگرسیون لجستیک در مجموعه آزمون: 0. 74
ماتریس سردرگمی
[[6124 1542]
[2505 5170]]
نتیجه به ما می گوید که ما 6124+5170 پیش بینی صحیح و پیش بینی های نادرست 2505+1542 داریم.
محاسبه دقت ، یادآوری ، اندازه گیری F و پشتیبانی
دقت نسبت TP / (TP + FP) است که TP تعداد مثبت واقعی و FP تعداد مثبت کاذب است. دقت به طور شهودی توانایی طبقه بندی کننده در برچسب زدن نمونه به عنوان مثبت در صورت منفی است.
فراخوان نسبت TP / (TP + FN) است که TP تعداد مثبت واقعی است و تعداد منفی های کاذب را FN می کند. فراخوان به طور شهودی توانایی طبقه بندی کننده برای یافتن تمام نمونه های مثبت است.
نمره F-Beta را می توان به عنوان میانگین هارمونیک وزنی از دقت و فراخوان تعبیر کرد ، جایی که یک نمره F-Beta به بهترین ارزش خود در 1 و بدترین امتیاز در 0 می رسد.
نمره F- بتا بیش از دقت با ضریب بتا ، فراخوان را نشان می دهد. بتا = 1. 0 به معنای فراخوان و دقت به همان اندازه مهم است.
پشتیبانی تعداد وقایع هر کلاس در y_test است.
تفسیر: از کل مجموعه آزمون ، 74 ٪ از سپرده ترمیم شده مدت سپرده ای بود که مشتریان دوست داشتند. از کل مجموعه آزمون ، 74 ٪ از سپرده های ارجح مشتری که ارتقا یافته اند.
منحنی ROC
منحنی ویژگی عامل (ROC) گیرنده یکی دیگر از ابزارهای رایج است که با طبقه بندی کننده های باینری مورد استفاده قرار می گیرد. خط نقطه ای منحنی ROC یک طبقه بندی کاملاً تصادفی را نشان می دهد. یک طبقه بندی خوب تا حد امکان از آن خط دور می ماند (به سمت گوشه بالا سمت چپ).
نوت بوک Jupyter که برای تهیه این پست استفاده می شود در اینجا موجود است. من خوشحال می شوم که در مورد هر یک از موارد فوق بازخورد یا سؤالاتی دریافت کنم.