علم البيانات - الانحدار الخطي


نحن نفتقد متغيرًا واحدًا مهمًا يؤثر على Calorie_Burnage ، وهو مدة جلسة التدريب.

ستوضح المدة جنبًا إلى جنب مع Average_Pulse معًا Calorie_Burnage بشكل أكثر دقة.


الانحدارالخطي

يستخدم مصطلح الانحدار عندما تحاول إيجاد العلاقة بين المتغيرات.

في التعلم الآلي والنمذجة الإحصائية ، تُستخدم هذه العلاقة للتنبؤ بنتيجة الأحداث.

في هذه الوحدة ، سنغطي الأسئلة التالية:

  • هل يمكننا أن نستنتج أن متوسط ​​النبضات والمدة يرتبطان بـ Calorie_Burnage؟
  • هل يمكننا استخدام Average_Pulse و Duration للتنبؤ بالحرق السعرات الحرارية؟

طريقة المربعات الصغرى

يستخدم الانحدار الخطي طريقة التربيع الصغرى.

المفهوم هو رسم خط عبر جميع نقاط البيانات المرسومة. يتم وضع الخط بطريقة تقلل المسافة إلى كل نقاط البيانات.

المسافة تسمى "بقايا" أو "أخطاء".

تمثل الخطوط الحمراء المتقطعة المسافة من نقاط البيانات إلى الوظيفة الرياضية المرسومة.

الانحدار الخطي - المربع الصغرى

الانحدار الخطي باستخدام متغير توضيحي واحد

في هذا المثال ، سنحاول التنبؤ بـ Calorie_Burnage باستخدام Average_Pulse باستخدام الانحدار الخطي:

مثال

import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats

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

x = full_health_data["Average_Pulse"]
y = full_health_data ["Calorie_Burnage"]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
 return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, slope * x + intercept)
plt.ylim(ymin=0, ymax=2000)
plt.xlim(xmin=0, xmax=200)
plt.xlabel("Average_Pulse")
plt.ylabel ("Calorie_Burnage")
plt.show()

شرح المثال:

  • قم باستيراد الوحدات التي تحتاجها: Pandas و matplotlib و Scipy
  • عزل Average_Pulse كـ x. عزل Calorie_burnage مثل y
  • احصل على قيم أساسية مهمة باستخدام: slope، intercept، r، p، std_err = stats.linregress (x، y)
  • قم بإنشاء دالة تستخدم قيم التقاطع والميل لإرجاع قيمة جديدة. تمثل هذه القيمة الجديدة حيث سيتم وضع قيمة x المقابلة على المحور y
  • قم بتشغيل كل قيمة من قيم المصفوفة x من خلال الوظيفة. سينتج عن ذلك مصفوفة جديدة بقيم جديدة للمحور الصادي: mymodel = list (map (myfunc، x))
  • ارسم مخطط التبعثر الأصلي: مبعثر plt (x ، y)
  • ارسم خط الانحدار الخطي: plt.plot (x ، mymodel)
  • تحديد الحد الأقصى والحد الأدنى لقيم المحور
  • قم بتسمية المحور: "معدل_النبض" و "حرق_السعرات الحرارية"

انتاج:

الانحدار الخطي - متغير واحد - المربع الأقل

هل تعتقد أن الخط قادر على التنبؤ بالسعرات الحرارية بدقة؟

سوف نظهر أن المتغير Average_Pulse وحده لا يكفي لعمل توقع دقيق لـ Calorie_Burnage.