Pembelajaran Mesin, Pemrograman

Regresi Linier yang Dijelaskan Sepenuhnya dengan Python

Bagaimana masalah regresi diselesaikan dengan contoh kehidupan nyata.

Regresi linier sederhana digunakan untuk analisis prediktif dan membuat kesimpulan. Pada tipe ini terdapat satu variabel bebas dan satu variabel terikat. Kapanpun ada sebab dan akibat dalam pemodelan, kita pergi ke analisis regresi. Performanya lebih akurat dalam analisis real-time bila kita menggunakan teknik analisis faktor. Dasar-dasar analisis regresi digunakan dalam pembelajaran mesin yang diawasi. Tiga hal penting yang perlu diperhatikan di sini:

  • Kami memerlukan data untuk dianalisis, untuk seluruh populasi ini adalah tugas yang membosankan, jadi kami mendapatkan data sampel untuk dianalisis.
  • Setelah mendapatkan data, kita perlu merancang model agar dapat diterapkan pada seluruh populasi.
  • Setelah melakukan pemodelan, kita dapat membuat prediksi terhadap populasi.


Sebelumnya, kita telah memperhatikan bahwa ini adalah pemodelan tipe sebab dan akibat. Jadi, dari mana kita mendapatkan regresi linier kita. Linier artinya memperbesar akibat seiring dengan bertambahnya sebab sehingga keduanya berubah secara paralel. Kita memerlukan beberapa matematika untuk mendapatkan prediksi linier. Jadi kita menggunakan persamaan garis lurus untuk mendapatkan sifat-sifat garis lurus linier.

Persamaan garis lurus adalah

y = mx + b

Di Sini,

Y adalah variabel terikat ( outcome ) atau variabel prediksi.

Xadalahvariabel independen.

Madalah kemiringan, atau kita dapat menyebutnya gradien.

B adalah titik potong nilai pada sumbu y.

Y adalah fungsi dari X. Model regresi merupakan pendekatan linier. Untuk prediksi yang baik, kita perlu mencari B dan M.

Contoh:

Misalkan kita memiliki data kebugaran Energi dan jarak tempuh.

Kita perlu menemukan B dan M. Rumus untuk menemukan nilai-nilai ini diberikan di bawah ini:

M = jumlah sampel * ( jumlah XY- jumlah X*jumlah Y) / Jumlah sampel * (jumlah X kuadrat- X jumlah kuadrat)

B = Y jumlah- M * X jumlah/jumlah sampel

Gambar menunjukkan nilai-nilai ini.

Setelah dihitung nilainya, M menjadi 1,89, dan nilai B menjadi 0,667. Dari nilai tersebut kita bisa mendapatkan prediksi dari rumusnya.

Y = 1.89*X + 0.667

Setelah memeriksa beberapa nilai X untuk memprediksi Kilometer. Contohnya ditunjukkan di bawah ini:

Kami mendapatkan model kami tetapi tekniknya sederhana. Mari kita periksa dengan python apakah kita mendapatkan nilai yang sama atau tidak.

#import all the libraries
import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm

Baca file excelnya

df = pd.read_excel("fitness.xlsx")

Gunakan fungsi deskripsikan untuk melihat statistik.

Bagilah data menjadi x dan y.

y = df['Y1']
x = df['X1']
#plot the scatter plot between them
plt.scatter(x,y)
plt.xlabel('Energy', fontsize =20)
plt.ylabel('Kms Covered', fontsize =20)
plt.show()

Kami hampir mendapatkan korelasi linier.

Sekarang sesuaikan model OLS pada data kita.

x_new = sm.add_constant(x)
output = sm.OLS(y, x_new).fit()
output.summary()
#output:
                coef        
---------------------------------
const          0.667   
x1             1.89

Setelah mendapatkan rangkumannya, kita mendapatkan nilai yang sama. Di sini kami menggunakan statsmodels, yang merupakan perpustakaan yang sangat baik untuk statistik dan kesimpulan.

Setelah kecocokan, model OLS memeriksa plot sebar dengan garis yang dipasang.

plt.scatter(x1,y)
y_pred = 1.89*X + 0.667
fig = plt.plot(x1, y_pred, lw = 5, c='red', label='regression line' 
plt.xlabel('Energy', fontsize =20)
plt.ylabel('Kms Covered', fontsize =20)
plt.show()

Berikut adalah plot pencar setelah kecocokan garis terbaik.

Kesimpulan:

OLS memberikan perkiraan regresi linier sederhana, dan statsmodel memberikan wawasan yang luar biasa tentang statistik data.

Hubungi saya di LinkedIn saya

Artikel yang Direkomendasikan

  1. "NLP - Zero to Hero dengan Python"

2. Struktur Data Python Tipe Data dan Objek

3. MySQL: Nol untuk Pahlawan