يُستخدم الانحدار الخطي عندما نريد التنبؤ بقيمة عددية (على سبيل المثال، سعر المنزل، درجة الحرارة، أو المبيعات). يعمل من خلال إيجاد خط مستقيم يمثل بأفضل شكل العلاقة بين ميزات الإدخال والمخرج.
في هذا الدرس، نركز على فهم المفهوم قبل استكشاف تقنيات الانحدار المتقدمة.

رسم معلوماتي بواسطة Dasani Madipalli
حتى الآن، لقد استكشفت ما هو الانحدار باستخدام بيانات عينة جمعت من مجموعة بيانات تسعير القرع التي سنستخدمها طوال هذا الدرس. كما قمت بتصويرها باستخدام Matplotlib.
الآن أنت مستعد للتعمق أكثر في الانحدار لتعلم الآلة. بينما يتيح التصوير فهم البيانات، القوة الحقيقية لتعلم الآلة تأتي من تدريب النماذج. يتم تدريب النماذج على بيانات تاريخية لالتقاط الاعتمادات ضمن البيانات تلقائياً، وتتيح لك التنبؤ بالنتائج لبيانات جديدة، لم يسبق للنموذج رؤيتها من قبل.
في هذا الدرس، ستتعلم المزيد عن نوعين من الانحدار: الانحدار الخطي الأساسي و الانحدار كثير الحدود، جنبًا إلى جنب مع بعض الرياضيات التي تقوم عليها هذه التقنيات. تلك النماذج ستتيح لنا التنبؤ بأسعار القرع اعتمادًا على بيانات مختلفة.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يستعرض الانحدار الخطي.
طوال هذا المنهج، نفترض معرفة دنيا بالرياضيات، ونسعى لجعلها في متناول الطلاب القادمين من مجالات أخرى، لذا راقب الملاحظات، ونداءات 🧮، والرسوم البيانية، وأدوات التعلم الأخرى لمساعدتك على الفهم.
يجب أن تكون الآن على دراية بهيكل بيانات القرع التي نفحصها. يمكنك العثور عليها محملة مسبقًا ومنقحة في ملف notebook.ipynb الخاص بهذا الدرس. في الملف، يتم عرض سعر القرع لكل بوشل في إطار بيانات جديد. تأكد من قدرتك على تشغيل هذه الدفاتر في النوى داخل Visual Studio Code.
كمذكرة، تقوم بتحميل هذه البيانات لكي تطرح عليها أسئلة.
- متى يكون أفضل وقت لشراء القرع؟
- ما السعر الذي يمكنني توقعه لصندوق قرع صغير؟
- هل يجب أن أشتريه في سلال نصف بوشل أم في صندوق 1 1/9 بوشل؟ لنستمر في التعمق في هذه البيانات.
في الدرس السابق، قمت بإنشاء إطار بيانات Pandas وملأته بجزء من مجموعة البيانات الأصلية، مع توحيد الأسعار حسب البوشل. من خلال ذلك، تمكنت من جمع حوالي 400 نقطة بيانات فقط وللأشهر الخريفية فقط.
ألق نظرة على البيانات التي قمنا بتحميلها مسبقًا في دفتر الملاحظات المرفق بهذا الدرس. البيانات محملة مسبقًا ورسم أولي لنقاط مبعثرة يظهر بيانات الشهر. ربما يمكننا الحصول على مزيد من التفاصيل حول طبيعة البيانات عن طريق تنظيفها أكثر.
كما تعلمت في الدرس 1، الهدف من تمرين الانحدار الخطي هو القدرة على رسم خط ل:
- إظهار علاقات المتغيرات. إظهار العلاقة بين المتغيرات
- إجراء التنبؤات. إجراء تنبؤات دقيقة عن موقع نقطة بيانات جديدة بالنسبة لهذا الخط.
من المعتاد أن يرسم الانحدار الخطي بمعيار المربعات الصغرى هذا النوع من الخطوط. يشير مصطلح "المربعات الصغرى" إلى عملية تقليل الخطأ الإجمالي في نموذجنا. لكل نقطة بيانات، نقيس المسافة العمودية (المسماة الباقي) بين النقطة الفعلية وخط الانحدار الخاص بنا.
نقوم بتربيع هذه المسافات لسببين رئيسيين:
-
المقدار على الاتجاه: نريد معاملة خطأ -5 بنفس الطريقة التي يعامل بها خطأ +5. التربيع يحول جميع القيم إلى موجبة.
-
معاقبة القيم الشاذة: التربيع يعطي وزنًا أكبر للأخطاء الكبيرة، مما يجبر الخط على البقاء أقرب إلى النقاط البعيدة.
بعد ذلك نضيف كل هذه القيم المربعة معًا. هدفنا هو إيجاد الخط المحدد حيث يكون هذا المجموع النهائي هو الأدنى (القيمة الممكنة الأصغر) — ومن هنا جاء اسم "المربعات الصغرى".
🧮 أرني الرياضيات
هذا الخط، المسمى بـ خط الانحدار الأفضل يمكن التعبير عنه بـ معادلة:
Y = a + bX
Xهو 'المتغير التوضيحي'.Yهو 'المتغير التابع'. ميل الخط هوbوaهو قيمة التقاطع الصادي، الذي يشير إلى قيمةYعندما تكونX = 0.أولاً، حساب الميل
b. رسم معلوماتي بواسطة Jen Looperبعبارة أخرى، ومفيدًا لسؤال بيانات القرع الأصلي: "التنبؤ بسعر القرع لكل بوشل حسب الشهر"، سيكون
Xيشير إلى السعر وYيشير إلى شهر البيع.حساب قيمة Y. إذا كنت تدفع حوالي 4 دولارات، فلا بد أن يكون أبريل! رسم معلوماتي بواسطة Jen Looper
يجب أن توضح الرياضيات التي تحسب الخط ميل الخط، والذي يعتمد أيضاً على نقطة التقاطع، أو حيث يقع
Yعندما تكونX = 0.يمكنك ملاحظة طريقة الحساب لهذه القيم على موقع Math is Fun. كما يمكنك زيارة آلة حاسبة للمربعات الصغرى لترى كيف تؤثر قيم الأرقام على الخط.
مصطلح آخر يجب فهمه هو معامل الارتباط بين متغيري X و Y معينين. باستخدام مخطط مبعثر، يمكنك تصور هذا المعامل بسرعة. المخطط الذي تنتشر فيه نقاط البيانات على خط مرتب تكون له ارتباط عالي، أما المخطط الذي تنتشر فيه نقاط البيانات في كل مكان بين X و Y فيكون له ارتباط منخفض.
نموذج انحدار خطي جيد سيكون له معامل ارتباط مرتفع (أقرب إلى 1 من 0) باستخدام طريقة الانحدار بالمربعات الصغرى مع خط الانحدار.
✅ شغل دفتر الملاحظات المرافق لهذا الدرس وانظر إلى مخطط مبعثر الشهر إلى السعر. هل تبدو البيانات التي تربط الشهر بالسعر لمبيعات القرع ذات ارتباط عالي أو منخفض، وفقًا لتفسيرك البصري للمخطط المبعثر؟ هل يتغير هذا إذا استخدمت مقياسًا أكثر دقة بدلاً من Month، مثل اليوم من السنة (أي عدد الأيام منذ بداية السنة)؟
في الكود أدناه، سنفترض أننا نظفنا البيانات، وحصلنا على إطار بيانات يُسمى new_pumpkins مشابهًا لما يلي:
| ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price |
|---|---|---|---|---|---|---|---|---|
| 70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 |
| 71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 |
| 72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 |
| 73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545 |
| 74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 |
الشيفرة الخاصة بتنظيف البيانات متاحة في
notebook.ipynb. لقد أجرينا نفس خطوات التنظيف كما في الدرس السابق، وحسبنا عمودDayOfYearباستخدام التعبير التالي:
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)الآن بعد أن فهمت الرياضيات وراء الانحدار الخطي، دعنا ننشئ نموذج انحدار لنرى إن كان بإمكاننا التنبؤ بأفضل عبوة للقرع تكون بأسعار قرع أفضل. من المحتمل أن يرغب شخص يشتري قرعًا لحديقة قرع العيد في هذه المعلومة لكي يستطيع تحسين شراء عبوات القرع.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يستعرض الارتباط.
من الدرس السابق ربما لاحظت أن متوسط السعر للأشهر المختلفة يبدو بهذا الشكل:
هذا يوحي بوجود ارتباط ما، ويمكننا تجربة تدريب نموذج انحدار خطي لتوقع العلاقة بين Month و Price، أو بين DayOfYear و Price. إليك المخطط المبعثر الذي يوضح هذه العلاقة الأخيرة:
دعنا نرى إذا كان هناك ارتباط باستخدام دالة corr:
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))يبدو أن الارتباط صغير جداً، -0.15 حسب Month و -0.17 حسب DayOfMonth، لكن قد توجد علاقة مهمة أخرى. يبدو أن هناك تجمعات مختلفة من الأسعار التي تناسب أصناف مختلفة من القرع. لتأكيد هذا الافتراض، دعنا نرسم كل فئة قرع بلون مختلف. بتمرير معامل ax إلى دالة الرسم scatter يمكننا رسم جميع النقاط على نفس الرسم البياني:
ax=None
colors = ['red','blue','green','yellow']
for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)تحقيقنا يشير إلى أن الصنف يؤثر أكثر على السعر الكلي من تاريخ البيع الفعلي. نرى هذا بوضوح في الرسم البياني الشريطي:
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')دعنا نركز للحظة على صنف واحد من القرع، وهو 'نوع الفطيرة'، ونرى ما تأثير التاريخ على السعر:
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price') إذا حسبنا الآن الارتباط بين Price و DayOfYear باستخدام دالة corr سنحصل على شيء مثل -0.27 - مما يعني أن تدريب نموذج تنبؤي منطق.
قبل تدريب نموذج الانحدار الخطي، من المهم التأكد من نظافة البيانات. الانحدار الخطي لا يعمل جيدًا مع القيم المفقودة، لذا من المنطقي التخلص من كل الخلايا الفارغة:
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()طريقة أخرى هي ملء تلك القيم الفارغة بمتوسط القيم من العمود المقابل.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يستعرض الانحدار الخطي والانحدار كثير الحدود.
لتدريب نموذج الانحدار الخطي الخاص بنا، سنستخدم مكتبة Scikit-learn.
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_splitنبدأ بفصل القيم المدخلة (الميزات) والقيمة المتوقعة (التسمية) إلى مصفوفات numpy منفصلة:
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']لاحظ أننا اضطررنا لأداء
reshapeعلى البيانات المدخلة لكي يفهمها حزمة الانحدار الخطي بشكل صحيح. الانحدار الخطي يتوقع مصفوفة ذات بعدين كمدخل، حيث كل صف من المصفوفة يمثل متجهًا من الميزات المدخلة. في حالتنا، بما أن لدينا مدخلاً واحداً فقط - فالاحتياج لمصفوفة شكلها N×1، حيث N هو حجم مجموعة البيانات.
بعد ذلك، نحتاج إلى تقسيم البيانات إلى مجموعات تدريب واختبار، لكي نتمكن من التحقق من صحة نموذجنا بعد التدريب:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)أخيرًا، يستغرق تدريب نموذج الانحدار الخطي الفعلي سطرين فقط من الشفرة. نُعرّف كائن LinearRegression، ونقوم بملاءمته لبياناتنا باستخدام طريقة fit:
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)يحتوي كائن LinearRegression بعد إجراء عملية fit على جميع معاملات الانحدار، والتي يمكن الوصول إليها باستخدام خاصية .coef_. في حالتنا، هناك معاملة واحدة فقط، والتي يجب أن تكون حوالي -0.017. هذا يعني أن الأسعار يبدو أنها تنخفض قليلاً مع مرور الوقت، ولكن ليس كثيرًا، حوالي سنتين في اليوم. يمكننا أيضًا الوصول إلى نقطة تقاطع الانحدار مع محور Y باستخدام lin_reg.intercept_ - ستكون حوالي 21 في حالتنا، مما يشير إلى السعر في بداية العام.
لمعرفة مدى دقة نموذجنا، يمكننا التنبؤ بالأسعار على مجموعة اختبار، ثم قياس مدى قرب تنبؤاتنا من القيم المتوقعة. يمكن القيام بذلك باستخدام مقاييس متوسط الخطأ التربيعي (MSE)، وهو متوسط جميع الفروق التربيعية بين القيمة المتوقعة والقيمة المتنبأ بها.
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')يبدو أن خطأنا حوالي نقطتين، وهو ~17٪. ليس جيدًا جدًا. مؤشر آخر لجودة النموذج هو معامل التحديد، والذي يمكن الحصول عليه على النحو التالي:
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)إذا كانت القيمة 0، فهذا يعني أن النموذج لا يأخذ بيانات الإدخال في الاعتبار، ويتصرف كـ أسوأ متنبئ خطي، وهو ببساطة القيمة المتوسطة للنتيجة. والقيمة 1 تعني أننا نستطيع التنبؤ بجميع المخرجات المتوقعة بدقة تامة. في حالتنا، المعامل حوالي 0.06، وهو منخفض جدًا.
يمكننا أيضًا رسم بيانات الاختبار مع خط الانحدار لنرى كيف يعمل الانحدار في حالتنا بشكل أفضل:
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)نوع آخر من الانحدار الخطي هو الانحدار متعدد الحدود. بينما في بعض الأحيان يوجد علاقة خطية بين المتغيرات - كلما كان حجم اليقطين أكبر، ارتفع السعر - في بعض الأحيان لا يمكن تمثيل هذه العلاقات بمستوى أو خط مستقيم.
✅ إليك بعض الأمثلة الإضافية للبيانات التي يمكن استخدام الانحدار متعدد الحدود معها.
انظر مرة أخرى إلى العلاقة بين التاريخ والسعر. هل يبدو أن مخطط التشتت هذا يجب تحليله بالضرورة بواسطة خط مستقيم؟ ألا يمكن أن تتقلب الأسعار؟ في هذه الحالة، يمكنك تجربة الانحدار متعدد الحدود.
✅ كثيرات الحدود هي تعبيرات رياضية قد تتكون من متغير واحد أو أكثر ومعاملات.
يقوم الانحدار متعدد الحدود بإنشاء خط منحني ليتناسب بشكل أفضل مع البيانات غير الخطية. في حالتنا، إذا قمنا بإدراج متغير DayOfYear تربيعي في بيانات الإدخال، يجب أن نتمكن من ملائمة بياناتنا بمنحنى قطع مكافئ، يكون لديه حد أدنى في نقطة معينة خلال العام.
يشمل Scikit-learn واجهة برمجة التطبيقات pipeline مفيدة لدمج خطوات معالجة البيانات المختلفة معًا. pipeline هو سلسلة من المقدِرات. في حالتنا، سننشئ pipeline يضيف أولاً ميزات متعددة الحدود إلى نموذجنا، ثم يدرب الانحدار:
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)استخدام PolynomialFeatures(2) يعني أننا سنشمل جميع كثيرات الحدود من الدرجة الثانية من بيانات الإدخال. في حالتنا، هذا يعني فقط DayOfYear2، ولكن إذا كان لدينا متغيرين إدخال X و Y، فسيضيف هذا X2، XY و Y2. يمكننا أيضًا استخدام كثيرات حدود بدرجة أعلى إذا أردنا.
يمكن استخدام الأنابيب بنفس الطريقة التي يستخدم بها كائن LinearRegression الأصلي، أي يمكننا fit للpipeline، ثم استخدام predict للحصول على نتائج التنبؤ. هذا هو الرسم البياني الذي يظهر بيانات الاختبار ومنحنى التقريب:
باستخدام الانحدار متعدد الحدود، يمكننا الحصول على خطأ متوسط تربيعي أقل قليلاً ومعامل تحديد أعلى، لكن ليس بشكل كبير. نحتاج إلى أخذ ميزات أخرى في الاعتبار!
يمكنك أن ترى أن أدنى أسعار اليقطين يتم ملاحظتها في مكان ما حول عيد الهالوين. كيف تشرح هذا؟
🎃 تهانينا، لقد أنشأت نموذجًا يمكنه المساعدة في التنبؤ بسعر يقطين الفطيرة. ربما يمكنك تكرار نفس الإجراء لجميع أنواع اليقطين، لكن هذا سيكون مملًا. دعنا نتعلم الآن كيفية أخذ نوع اليقطين في الاعتبار في نموذجنا!
في العالم المثالي، نريد أن نتمكن من التنبؤ بأسعار أصناف اليقطين المختلفة باستخدام نفس النموذج. ومع ذلك، فإن عمود Variety مختلف قليلاً عن أعمدة مثل Month، لأنه يحتوي على قيم غير رقمية. تسمى هذه الأعمدة تصنيفية.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يلخص استخدام الميزات التصنيفية.
هنا يمكنك رؤية كيف يعتمد متوسط السعر على النوع:
لأخذ النوع في الاعتبار، نحتاج أولاً إلى تحويله إلى شكل رقمي، أو ترميزه. هناك عدة طرق يمكننا القيام بها:
- الترميز الرقمي البسيط سيبني جدولًا للأنواع المختلفة، ثم يستبدل اسم النوع بمؤشر في ذلك الجدول. هذه ليست أفضل فكرة بالنسبة للانحدار الخطي، لأن الانحدار الخطي يأخذ القيمة الرقمية الفعلية للمؤشر ويضيفها إلى النتيجة مضروبًا في بعض المعاملات. في حالتنا، العلاقة بين رقم المؤشر والسعر غير خطية بوضوح، حتى لو تأكدنا من ترتيب المؤشرات بطريقة معينة.
- الترميز الأحادي (One-hot encoding) سيستبدل عمود
Varietyبأربعة أعمدة مختلفة، واحد لكل صنف. يحتوي كل عمود على1إذا كان الصف المقابل من ذلك النوع، و0غير ذلك. هذا يعني أن هناك أربعة معاملات في الانحدار الخطي، واحد لكل نوع يقطين، مسؤول عن "سعر البداية" (أو بالأحرى "السعر الإضافي") لذلك النوع المعين.
يُظهر الكود أدناه كيفية ترميز النوع بطريقة one-hot:
pd.get_dummies(new_pumpkins['Variety'])| ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE |
|---|---|---|---|---|
| 70 | 0 | 0 | 0 | 1 |
| 71 | 0 | 0 | 0 | 1 |
| ... | ... | ... | ... | ... |
| 1738 | 0 | 1 | 0 | 0 |
| 1739 | 0 | 1 | 0 | 0 |
| 1740 | 0 | 1 | 0 | 0 |
| 1741 | 0 | 1 | 0 | 0 |
| 1742 | 0 | 1 | 0 | 0 |
لتدريب الانحدار الخطي باستخدام النوع المشفر بطريقة one-hot كمدخلات، نحتاج فقط إلى تهيئة بيانات X و y بشكل صحيح:
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']باقي الكود هو نفسه الذي استخدمناه أعلاه لتدريب الانحدار الخطي. إذا جربته، سترى أن متوسط الخطأ التربيعي تقريبا نفسه، لكننا نحصل على معامل تحديد أعلى بكثير (~77٪). للحصول على توقعات أكثر دقة، يمكننا أخذ المزيد من الميزات التصنيفية وكذلك الميزات الرقمية، مثل Month أو DayOfYear. للحصول على مصفوفة كبيرة واحدة من الميزات، يمكننا استخدام join:
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']هنا نأخذ في الاعتبار أيضًا City و Package، مما يعطينا MSE بقيمة 2.84 (10٪)، ومعامل تحديد 0.94!
لإنشاء أفضل نموذج، يمكننا استخدام البيانات المجمعة (الميزات التصنيفية المشفرة بطريقة one-hot + الميزات الرقمية) من المثال أعلاه مع الانحدار متعدد الحدود. إليك الكود الكامل لراحتك:
# إعداد بيانات التدريب
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# إجراء تقسم البيانات إلى تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# إعداد وتدريب خط الأنابيب
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# التنبؤ بالنتائج لبيانات الاختبار
pred = pipeline.predict(X_test)
# حساب متوسط الخطأ التربيعي ومعامل التحديد
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)يجب أن يمنحنا هذا أفضل معامل تحديد يقارب 97٪، و MSE=2.23 (~8٪ خطأ في التنبؤ).
| النموذج | MSE | معامل التحديد |
|---|---|---|
DayOfYear خطي |
2.77 (17.2٪) | 0.07 |
DayOfYear متعدد الحدود |
2.73 (17.0٪) | 0.08 |
Variety خطي |
5.24 (19.7٪) | 0.77 |
| جميع الميزات خطي | 2.84 (10.5٪) | 0.94 |
| جميع الميزات متعدد الحدود | 2.23 (8.25٪) | 0.97 |
🏆 عمل رائع! لقد أنشأت أربعة نماذج انحدار في درس واحد، وحسنت جودة النموذج إلى 97٪. في القسم النهائي عن الانحدار، ستتعلم عن الانحدار اللوجستي لتحديد الفئات.
اختبر عدة متغيرات مختلفة في هذا الدفتر لترى كيف يتوافق الارتباط مع دقة النموذج.
في هذا الدرس تعلمنا عن الانحدار الخطي. هناك أنواع أخرى مهمة من الانحدار. اقرأ عن تقنيات Stepwise و Ridge و Lasso و Elasticnet. دورة جيدة للدراسة والتعلم أكثر هي دورة Stanford Statistical Learning
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. على الرغم من أننا نسعى إلى الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. بالنسبة للمعلومات الحساسة أو الهامة، يُنصح باستخدام الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.












