علم البيانات - الانحدار والاعتراض


الانحدار والاعتراض

سنشرح الآن كيف وجدنا منحدر وظيفتنا وتقاطعها:

f(x) = 2x + 80

تشير الصورة أدناه إلى الميل - الذي يشير إلى مدى انحدار الخط ، والتقاطع - وهي قيمة y ، عندما x = 0 (النقطة التي يتقاطع فيها الخط المائل مع المحور الرأسي). الخط الأحمر هو استمرار للخط الأزرق من الصفحة السابقة.

دالة خطية

أوجد المنحدر

يُعرَّف المنحدر على أنه مقدار زيادة حرق السعرات الحرارية ، إذا زاد متوسط ​​النبض بمقدار واحد. يخبرنا كيف "انحدار" الخط القطري.

يمكننا إيجاد الميل باستخدام الاختلاف النسبي بين نقطتين من التمثيل البياني.

  • إذا كان متوسط ​​النبض 80 ، فإن حرق السعرات الحرارية هو 240
  • إذا كان متوسط ​​النبض 90 ، فإن حرق السعرات الحرارية هو 260

نرى أنه إذا زاد متوسط ​​النبض بمقدار 10 ، فإن حرق السعرات الحرارية يزيد بمقدار 20.

Slope = 20/10 = 2

المنحدر 2.

رياضيا ، يتم تعريف المنحدر على النحو التالي:

Slope = f(x2) - f(x1) / x2-x1

f (x2) = الملاحظة الثانية لـ Calorie_Burnage = 260
f (x1) = الملاحظة الأولى لـ Calorie_Burnage = 240
x2 = الملاحظة الثانية لـ Average_Pulse = 90
x1 = الملاحظة الأولى للنبض المتوسط ​​= 80

Slope = (260-240) / (90 - 80) = 2

كن متسقًا لتحديد الملاحظات بالترتيب الصحيح! إذا لم يكن الأمر كذلك ، فلن يكون التنبؤ صحيحًا!

استخدم بايثون لإيجاد المنحدر

احسب الميل بالكود التالي:

مثال

def slope(x1, y1, x2, y2):
  s = (y2-y1)/(x2-x1)
  return s

print (slope(80,240,90,260))

البحث عن التقاطع

يستخدم التقاطع لضبط قدرة الوظائف على التنبؤ بالسعرات الحرارية.

التقاطع هو المكان الذي يتقاطع فيه الخط القطري مع المحور الصادي ، إذا تم رسمه بالكامل.

التقاطع هو قيمة y ، عندما x = 0.

هنا ، نرى أنه إذا كان متوسط ​​النبض (س) يساوي صفرًا ، فإن حرق السعرات الحرارية (ص) هو 80.

إذن ، التقاطع 80.

في بعض الأحيان ، يكون للاعتراض معنى عمليًا. أحيانا لا.

هل يعقل أن متوسط ​​النبض هو صفر؟

لا ، ستكون ميتًا وبالتأكيد لن تحرق أي سعرات حرارية.

ومع ذلك ، نحتاج إلى تضمين التقاطع لإكمال قدرة الوظيفة الرياضية على التنبؤ بالسعرات الحرارية بشكل صحيح.

أمثلة أخرى حيث يمكن أن يكون لاعتراض دالة رياضية معنى عمليًا:

  • توقع إيرادات السنوات القادمة باستخدام نفقات التسويق (ما مقدار الإيرادات التي سنحصل عليها في العام المقبل ، إذا كانت نفقات التسويق صفرًا؟). من المحتمل أن تفترض أن الشركة ستظل لديها بعض الإيرادات على الرغم من أنها لا تنفق الأموال على التسويق.
  • استخدام الوقود مع السرعة (ما مقدار الوقود الذي نستخدمه إذا كانت السرعة تساوي 0 ميل في الساعة؟). السيارة التي تستخدم البنزين ستستمر في استخدام الوقود عندما تكون في وضع الخمول.


ابحث عن المنحدر والتقاطع باستخدام بايثون

تقوم np.polyfit()الدالة بإرجاع الميل والتقاطع.

إذا تابعنا الكود التالي ، فيمكننا الحصول على الميل والاعتراض من الوظيفة.

مثال

import pandas as pd
import numpy as np

health_data = pd.read_csv("data.csv", header=0, sep=",")

x = health_data["Average_Pulse"]
y = health_data["Calorie_Burnage"]
slope_intercept = np.polyfit(x,y,1)

print(slope_intercept)

شرح المثال:

  • افصل المتغيرين Average_Pulse (x) و Calorie_Burnage (y) من health_data.
  • اتصل بوظيفة np.polyfit ().
  • تحدد المعلمة الأخيرة للدالة درجة الوظيفة ، والتي تكون في هذه الحالة "1".

نصيحة: الدوال الخطية = وظيفة الدرجة الأولى. في مثالنا ، الوظيفة خطية ، وهي في الدرجة الأولى. هذا يعني أن جميع المعاملات (الأرقام) في قوة واحد.

لقد حسبنا الآن الميل (2) والتقاطع (80). يمكننا كتابة الوظيفة الرياضية على النحو التالي:

توقع Calorie_Burnage باستخدام تعبير رياضي:

f(x) = 2x + 80

مهمة:

الآن ، نريد توقع حرق السعرات الحرارية إذا كان متوسط ​​النبض 135.

تذكر أن التقاطع ثابت. الثابت هو رقم لا يتغير.

يمكننا الآن استبدال الإدخال x بـ 135:

f(135) = 2 * 135 + 80 = 350

إذا كان متوسط ​​النبض 135 ، فإن حرق السعرات الحرارية هو 350.


حدد الوظيفة الرياضية في بايثون

ها هي نفس الوظيفة الرياضية بالضبط ، لكن في بايثون. ترجع الدالة 2 * x + 80 ، مع x كمدخل:

مثال

def my_function(x):
  return 2*x + 80

print (my_function(135))

حاول استبدال x بـ 140 و 150.


ارسم رسم بياني جديد في بايثون

هنا ، نرسم نفس الرسم البياني كما في السابق ، لكننا نسق المحور قليلاً.

الحد الأقصى لقيمة المحور الصادي هو الآن 400 وللمحور السيني هو 150:

مثال

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line'),
plt.ylim(ymin=0, ymax=400)
plt.xlim(xmin=0, xmax=150)

plt.show()

شرح المثال

  • قم باستيراد وحدة pyplot من مكتبة matplotlib
  • ارسم البيانات من Average_Pulse مقابل Calorie_Burnage
  • kind='line'يخبرنا أي نوع من الحبكة نريد. هنا ، نريد أن يكون لدينا خط مستقيم
  • يخبرنا plt.ylim () و plt.xlim () القيمة التي نريد أن يبدأ المحور فيها ويتوقف.
  • يظهر لنا plt.show () الإخراج