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

السؤال

Recommended Posts

  • 1
نشر (معدل)

يحاول الانحدار الخطي LinearRegression   نمذجة العلاقة بين متغيرين X وY من خلال ملاءمة معادلة خطية (خط مستقيم) للبيانات التي يتم التدريب عليها وهو من الشكل Y=WX+b. ويستخدم في مهام التنبؤ Regression (مثل توقع أسعار المنازل مثلاُ أو توقع عدد الإصابات بمرض معين).
ندعو X  بال features و b بال bias (وهي تكافئ الإزاحة) بينما w تمثل أوزان النموذج (وهي تكافئ ميل المستقيم).
نميز نوعين للتوقع الخطي:
Univariate Linear Regression : أي التوقع الخطي الذي يعتمد فيه الخرج Y على One feature أي تكون X عبارة عن متغير واحد.
Multiple linear regression : أي التوقع الخطي الذي يعتمد فيه الخرج Y على أكتر من feature أي تكون X عبارة عن x1,x2,...,xn.
يمكن تطبيق التوقع الخطي عن طريق مكتبة Sklearn.
يتم استخدامها عبر الموديول .linear_model.LinearRegression

sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

الوسطاء:
fit_intercept: لجعل المستقيم يتقاطع مع أفضل نقطة على المحور العيني y.
copy_X: وسيط بولياني، في حال ضبطه على True سوف يأخذ نسخة من البيانات ، وبالتالي لاتتأثر البيانات الأصلية بالتعديل، ويفيدنا في حالة قمنا بعمل Normalize للبيانات.
normalize: وسيط بولياني، في حال ضبطه على True سوف يقوم بتوحيد البيانات (تقييسها) اعتماداً على المقياس L2norm. وقد سبق وتحدثت عن هذا الموضوع في هذا الرابط:

n_jobs: لتحديد عدد العمليات التي ستتم بالتوازي (Threads) أي لزيادة سرعة التنفيذ، افتراضياُ تكون قيمته None أي بدون تسريع، وبالتالي لزيادة التسريع نضع عدد صحيح وكلما زاد العدد كلما زاد التسريع (التسريع يتناسب مع قدرات جهازك)، وفي حال كان لديك GPU وأردت التدريب عليها فقم بضبطه على -1.

أهم ال attributes:
_coef: الأوزان التي حصلنا عليها بعد انتهاء التدريب وهي مصفوفة بأبعاد (,عدد الfeatures).
أهم التوابع:
fit(data, truevalue): للقيام بعملية التدريب.
predict(data): دالة التوقع ونمرر لها البيانات وتعطيك التوقع لها.
score(data, truevalue): لمعرفة مدي كفاءة النموذج ونمرر لها بيانات الاختبار والقيم الحقيقية لها فيقوم بعمل predict للداتا الممررة ثم يقارنها بالقيم الحقيقية ويرد الناتج حسي معيار R Squaerd .
إليك التطبيق العملي:
الداتاسيت هي مواصفات منازلX مع أسعارها Y في مدينة بوسطن.

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# تحميل الداتاسيت
BostonData = load_boston()
x = BostonData.data
y = BostonData.target

# تقسيم الداتا إلى عينة تدريب وعينة اختبار
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=33, shuffle =True)


#تعريف LinearRegressionModel 

LR = LinearRegression(fit_intercept=True,copy_X=True,n_jobs=-1)
LR.fit(X_train, y_train)

print('Train Score is : ' ,LR.score(X_train, y_train)) #  R Squaerd on trainset
print('Test Score is : ' , LR.score(X_test, y_test))   #   R Squaerd on testset
print('Coef is : \n' ,     LR.coef_) # Coefficent

# حساب القيم المتوقعة
y_pred = LR.predict(X_test)
print(y_pred[0:10])
# عرض القيم الحقيقية 
print(y_test[0:10])

# Machine Learning is everywhere

تم التعديل في بواسطة Ali Haidar Ahmad

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...