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

تطبيق Lasso Regularization في مكتبة Sklearn مع ال Linear Regression

Meezo ML

السؤال

Recommended Posts

  • 2

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

sklearn.linear_model.Lasso(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
positive:عندما يأخذ True تكون المعلاملات كلها موجبه
أهم ال 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 Lasso
# تحميل الداتا
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)
# تطبيق التابع
LassoRegression =Lasso(alpha=0.5,random_state=20,solver='auto')
LassoRegression.fit(X_train, y_train)
#حساب الكفاءه على التدريب والاختبار
print('Train Score is : ' , LassoRegression.score(X_train, y_train))
print('Test Score is : ' , LassoRegression.score(X_test, y_test))
#print('Coef is : ' , LassoRegression.coef_)
print(LassoRegression.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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...