برنامه نویسی

منظم سازی خالص الاستیک: ایجاد تعادل بین پنالتی های L1 و L2

منظم سازی شبکه الاستیک با ترکیب نقاط قوت هر دو روش منظم سازی L1 (کمان) و L2 (ریج) برجسته می شود. این مقاله جنبه های نظری، ریاضی و عملی تنظیم شبکه الاستیک را بررسی می کند.

رگرسیون کمند در مقابل ریج

  • رگرسیون کمند: افزودن جریمه هنجار L1، ارتقاء پراکندگی با به صفر رساندن برخی ضرایب. این می تواند منجر به انتخاب ویژگی شود. با این حال، Lasso می تواند با ویژگی های بسیار همبسته مبارزه کند.
  • رگرسیون ریج: اضافه کردن جریمه هنجار L2، کاهش همه ضرایب به سمت صفر اما لزوماً آنها را به صفر نمی رساند. این از پراکندگی جلوگیری می کند، اما می تواند در انتخاب ویژگی کمتر موثر باشد.

تنظیم توری الاستیک

منظم سازی شبکه الاستیک یک رویکرد ترکیبی است که جریمه های منظم سازی L1 و L2 را با هم ترکیب می کند. Elastic Net برخی از محدودیت‌های Lasso و Ridge را، به‌ویژه در سناریوهایی با ویژگی‌های بسیار مرتبط، برطرف می‌کند.

فرمول بندی ریاضی

تنظیم شبکه الاستیک هر دو جریمه L1 و L2 را به تابع ضرر اضافه می کند. مدت مجازات عبارت است از:

توضیحات تصویر

درک تاثیر:

  • جریمه L1 از Lasso باعث ایجاد پراکندگی می شود و به طور بالقوه برخی ضرایب را به صفر می رساند (انتخاب ویژگی)
  • جریمه L2 ناشی از رگرسیون خط الراس، تمام ضرایب را به سمت صفر کاهش می دهد، و انقباض ضریب هموارتر و به طور بالقوه مدیریت بهتر ویژگی های مرتبط را ارتقا می دهد.

با تنظیم مقادیر lambda1 و lambda2، می‌توانیم تأثیر نسبی جریمه‌های L1 و L2 را کنترل کنیم. لامبدا1 بالاتر، پراکندگی بیشتر را تشویق می‌کند، در حالی که ضرایب خفه‌کننده لامبدا2 پایین‌تر باعث انقباض می‌شود.

مزایای توری الاستیک:

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

انتخاب مقدار مناسب:

یافتن مقادیر بهینه برای λ1 و λ2 برای عملکرد بهینه بسیار مهم است. تکنیک هایی مانند اعتبار سنجی متقابل برای شناسایی ترکیب λ1 و λ2 استفاده می شود که خطای اعتبارسنجی را به حداقل می رساند و در عین حال سطح پراکندگی مطلوبی را حفظ می کند.

چه موقع باید استفاده کرد

  • زمانی که مجموعه داده بسیار بزرگ است
  • ستون های ورودی دارای چند خطی هستند

پیاده سازی عملی

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import ElasticNet
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=10, noise=0.1, random_state=42)

elastic_net = ElasticNet(alpha=0.1, l1_ratio=0.5)  # alpha controls L1 & L2, l1_ratio controls L1 vs L2 ratio
elastic_net.fit(X, y)

plt.figure(figsize=(12, 6))
plt.plot(range(X.shape[1]), elastic_net.coef_, marker="o", linestyle="none")
plt.xlabel('Feature Index')
plt.ylabel('Coefficient Value')
plt.title('Elastic Net Coefficients')
plt.xticks(range(X.shape[1]))
plt.grid(True)
plt.show()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

در نتیجه، منظم سازی شبکه الاستیک یک تکنیک همه کاره و موثر برای بهبود عملکرد و تفسیرپذیری مدل های رگرسیون خطی است. با اعمال جریمه های L1 و L2، راه حل جامعی ارائه می دهد که می تواند به خوبی تنظیم شود تا با مجموعه های مختلف داده ها و چالش های مدل سازی سازگار باشد.

نوشته های مشابه

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

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

دکمه بازگشت به بالا