Ilmu Data - Regresi Linier


Kami kehilangan satu variabel penting yang memengaruhi Calorie_Burnage, yaitu Durasi sesi latihan.

Durasi dalam kombinasi dengan Average_Pulse bersama-sama akan menjelaskan Kalori_Pembakaran lebih tepat.


Regresi linier

Istilah regresi digunakan ketika Anda mencoba mencari hubungan antar variabel.

Dalam Pembelajaran Mesin dan dalam pemodelan statistik, hubungan itu digunakan untuk memprediksi hasil peristiwa.

Dalam modul ini, kita akan membahas pertanyaan-pertanyaan berikut:

  • Bisakah kita menyimpulkan bahwa Average_Pulse dan Duration terkait dengan Calorie_Burnage?
  • Bisakah kita menggunakan Average_Pulse dan Duration untuk memprediksi Kalori_Pembakaran?

Metode Kuadrat Terkecil

Regresi linier menggunakan metode kuadrat terkecil.

Konsepnya adalah menggambar garis melalui semua titik data yang diplot. Garis diposisikan sedemikian rupa sehingga meminimalkan jarak ke semua titik data.

Jarak ini disebut "sisa" atau "kesalahan".

Garis putus-putus merah mewakili jarak dari titik data ke fungsi matematika yang digambar.

Regresi Linier - Kuadrat Terkecil

Regresi Linier Menggunakan Satu Variabel Penjelas

Dalam contoh ini, kami akan mencoba memprediksi Kalori_Pembakaran dengan Average_Pulse menggunakan Regresi Linier:

Contoh

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()

Contoh Dijelaskan:

  • Impor modul yang Anda butuhkan: Pandas, matplotlib, dan Scipy
  • Pisahkan Average_Pulse sebagai x. Pisahkan Kalori_pembakaran sebagai y
  • Dapatkan nilai kunci penting dengan: kemiringan, intersep, r, p, std_err = stats.linregress(x, y)
  • Buat fungsi yang menggunakan kemiringan dan nilai intersep untuk mengembalikan nilai baru. Nilai baru ini menunjukkan di mana pada sumbu y nilai x yang sesuai akan ditempatkan
  • Jalankan setiap nilai larik x melalui fungsi. Ini akan menghasilkan array baru dengan nilai baru untuk sumbu y: mymodel = list(map(myfunc, x))
  • Gambarkan plot pencar asli: plt.scatter(x, y)
  • Gambar garis regresi linier: plt.plot(x, mymodel)
  • Tentukan nilai maksimum dan minimum dari sumbu
  • Beri label sumbu: "Average_Pulse" dan "Calorie_Burnage"

Keluaran:

Regresi Linier - Satu variabel - Kuadrat Terkecil

Apakah menurut Anda garis tersebut mampu memprediksi Kalori_Pembakaran dengan tepat?

Kami akan menunjukkan bahwa variabel Average_Pulse saja tidak cukup untuk membuat prediksi yang tepat dari Calorie_Burnage.