کاربرد رگرسیون لجستیک(logistic regression) در آمار: از مفاهیم پایه تا تفسیر نتایج
حتماً برای شما هم پیش آمده که دوست داشته باشید آینده را پیشبینی کنید. آیا این مشتری جدید خرید خواهد کرد؟ آیا این بیمار به درمان جواب خواهد داد؟ آیا این کاربر به سرویس ما علاقهمند خواهد شد؟ اینها همان سوالاتی هستند که رگرسیون لجستیک، این مدل به ظاهر ساده اما فوقالعاده قدرتمند، به ما کمک میکند تا برایشان پاسخی علمی و مبتنی بر داده پیدا کنیم.
در دنیای پرهیاهوی هوش مصنوعی و مدلهای پیچیده، رگرسیون لجستیک همچنان یکی از محبوبترین و قابل اعتمادترین ابزارها برای متخصصان داده است.
در این مقاله جامع، ما به زبان ساده اما با عمق تحلیلی، رگرسیون لجستیک را موشکافی میکنیم: از مفاهیم پایه و فرمولهای آن گرفته تا پیادهسازی عملی و تفسیر نتایج
1. رگرسیون لجستیک چیست؟
۱.۱ تفاوت اصلی با رگرسیون خطی
همه با رگرسیون خطی (Linear Regression) آشنا هستند: مدلی که رابطه بین متغیرها (مثلاً متراژ خانه و قیمت آن) را مدل میکند و خروجی آن یک عدد پیوسته (مثلاً قیمت) است. اما وقتی خروجی یک دسته یا کلاس باشد (مثلاً “میخرد” یا “نمیخرد”)، رگرسیون خطی شکست میخورد. چرا؟ چون نمیتواند خروجی را بین ۰ و ۱ محدود کند. بنابراین بر خلاف وجود کلمه «رگرسیون» در نامش، این مدل اصلاً برای پیشبینی اعداد پیوسته (مثل قیمت خانه) استفاده نمیشود. بلکه وظیفه اصلی آن طبقهبندی یا همان دستهبندی دادهها است. به زبان ساده، رگرسیون لجستیک به ما میگوید یک چیز در کدام دسته قرار میگیرد: سیب یا پرتقال؟ سالم یا بیمار؟ موفق یا ناموفق؟
برای درک بهتر، بیایید به مدل قدیمی و آشنا یعنی رگرسیون خطی فکر کنیم. این مدل مانند یک خط کش عمل میکند و مقدار دقیق چیزی را پیشبینی میکند. اما اگر بخواهیم بدانیم یک اتفاق میافتد یا نه، دیگر خط کش به کارمان نمیآید. اینجاست که رگرسیون لجستیک این مشکل را با یک ترفند هوشمندانه حل میکند. به جای پیشبینی مستقیم دسته، احتمال تعلق به یک دسته را پیشبینی میکند.این ابزار به ما می گوید: “بله، این اتفاق با احتمال ۸۰ درصد رخ خواهد داد” یا “خیر، احتمال آن تنها ۱۰ درصد است”. این مدل به جای پیشبینی مقدار، احتمال رخ دادن یک رویداد را پیشبینی میکند.
۱.۲ تابع سیگموئید:
اساس کار رگرسیون لجستیک بر پایه تابعی ریاضی به نام تابع سیگموئید (Sigmoid Function) یا تابع لجستیکاستوار است. این تابع هر عددی را (چه بسیار بزرگ و چه بسیار کوچک) گرفته و آن را به عددی بین صفر و یک تبدیل میکند. دقیقاً مانند یک دماسنج که دمای هوا را به عددی بین صفر تا صد تبدیل میکند.
تصور کنید این تابع مانند یک ماشین تصمیمگیری است. هرچه عدد ورودی بزرگتر باشد، خروجی آن به یک نزدیکتر میشود (یعنی احتمال بیشتری برای رخ دادن رویداد وجود دارد). هرچه عدد ورودی کوچکتر باشد، خروجی به صفر نزدیکتر میشود (یعنی احتمال کمتری وجود دارد).
فرمول تابع سیگموئید:
σ(z) = 1 / (1 + e^(-z))
جایی که z همان معادله خطی است که از رگرسیون خطی میشناسیم: z = β₀ + β₁X₁ + β₂X₂ + ... + βₙXₙ
این خروجی بین ۰ و ۱ را میتوان به عنوان احتمال تفسیر کرد. برای مثال، اگر خروجی مدل برای یک مشتری برابر ۰.۸ شود، یعنی مدل با ۸۰٪ اطمینان پیشبینی میکند که آن مشتری خرید خواهد کرد.
درک مفهوم پشت مدل بسیار مهم است. بیایید z را تجزیه کنیم.
β₀ (مقدار ثابت): این مقدار زمانی که همه متغیرهای مستقل صفر هستند، log odds پایه رویداد را نشان میدهد.
β₁, β₂, …, βₙ (ضرایب): اینها مهمترین بخش مدل هستند. هر ضریب، اندازه و جهت تاثیر یک متغیر مستقل بر روی احتمال خروجی را نشان میدهد.
z = β₀ + β₁X₁ + … + βₙXₙ: هرچه
zبزرگتر باشد، احتمال خروجی به ۱ نزدیکتر میشود. هرچهzکوچکتر (منفیتر) باشد، احتمال به ۰ نزدیکتر میشود.
۲.2 Odds و Log-Odds: کلید تفسیر مدل
یکی از زیباترین ویژگیهای رگرسیون لجستیک، قابلیت تفسیر آسان نتایج آن است. برخلاف بسیاری از مدلهای پیچیده که مانند جعبه سیاه عمل میکنند، این مدل به وضوح به ما میگوید هر factor چقدر در نتیجه نهایی تاثیر دارد.
احتمال (Probability): شانس وقوع یک رویداد (مثلاً P(خرید) = 0.8).
Odds: نسبت احتمال وقوع به عدم وقوع:
Odds = P / (1 - P). اگر احتمال خرید ۰.۸ باشد، odds آن برابر ۴ است (یعنی ۴ به ۱ به نفع خرید).Log-Odds: لگاریتم طبیعی (ln) Odds. این دقیقاً همان
zدر معادله ماست! یعنی:
log(P / (1-P)) = z = β₀ + β₁X₁ + ... + βₙXₙ
استفاده از این توابع تفسیر ضرایب (β) را بسیار آسان میکند.
