اذهب إلى المحتوى
  • 0

كيفية تطبيق (L2) Ridge Regularization في ال Linear Regression

Meezo ML

السؤال

Recommended Posts

  • 3

توفر Sklearn القيام بالتوقع الخطي مع التنعيم عن طريق استخدام  الكلاس Ridge.
يتم استخدامها عبر الموديول linear_model.Ridge كالتالي:

sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False,
                           copy_X=True, max_iter=None, tol=0.001, solver='auto',
                           random_state=None)

الوسطاء:
fit_intercept: لجعل المستقيم يتقاطع مع أفضل نقطة على المحور العيني y.
copy_X: وسيط بولياني، في حال ضبطه على True سوف يأخذ نسخة من البيانات ، وبالتالي لاتتأثر البيانات الأصلية بالتعديل، ويفيدنا في حالة قمنا بعمل Normalize للبيانات.
normalize: وسيط بولياني، في حال ضبطه على True سوف يقوم بتوحيد البيانات (تقييسها) اعتماداً على المقياس
n_jobs: لتحديد عدد العمليات التي ستتم بالتوازي (Threads) أي لزيادة سرعة التنفيذ، افتراضياُ تكون قيمته None أي بدون تسريع، وبالتالي لزيادة التسريع نضع عدد صحيح وكلما زاد العدد كلما زاد التسريع (التسريع يتناسب مع قدرات جهازك)، وفي حال كان لديك GPU وأردت التدريب عليها فقم بضبطه على -1.
random_state: للتحكم بآلية التقسيم.
max_iter: العدد الأقصى للتكرارات.
tol: مقدار التسماح في التقارب من القيم الدنيا. float, default=1e-3
solver: ال Optimezer المستخدم. 
solver{‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’}, default=’auto’
alpha: هو معامل التنعيم ويأخذ قيم من الصفر إلى n، و كلما زادت القيمة زاد تأثير التنعيم. default=1.0.
أهم ال attributes:
_coef: الأوزان التي حصلنا عليها بعد انتهاء التدريب وهي مصفوفة بأبعاد (,عدد الfeatures).
intercept: التقاطع مع المحور y.
أهم التوابع:
fit(data, truevalue): للقيام بعملية التدريب.
predict(data): دالة التوقع ونمرر لها البيانات وتعطيك التوقع لها.
score(data, truevalue): لمعرفة مدي كفاءة النموذج ونمرر لها بيانات الاختبار والقيم الحقيقية لها فيقوم بعمل predict للداتا الممررة ثم يقارنها بالقيم الحقيقية ويرد الناتج حسي معيار R Squaerd.
يمكن تطبيقه كما يلي:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
# تحميل الداتا
BostonData = load_boston()
data = BostonData.data
labels = BostonData.target
# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle =True, random_state=2021)
# تطبيق التابع
RidgeRegression = Ridge(alpha=0.5,random_state=20,solver='auto')
RidgeRegression.fit(X_train, y_train)
#Calculating Details
print('Train Score is : ' , RidgeRegression.score(X_train, y_train))
print('Test Score is : ' , RidgeRegression.score(X_test, y_test))
#print('Coef is : ' , RidgeRegression.coef_)
print(RidgeRegression.predict(X_test))

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...