การเรียนรู้ของเครื่อง, การเขียนโปรแกรม

การถดถอยเชิงเส้นอธิบายอย่างสมบูรณ์ด้วย Python

วิธีแก้ปัญหาการถดถอยด้วยตัวอย่างในชีวิตจริง

การถดถอยเชิงเส้นอย่างง่ายใช้สำหรับการวิเคราะห์เชิงคาดการณ์และการอนุมาน ในประเภทนี้ จะมีตัวแปรอิสระหนึ่งตัวและตัวแปรตามหนึ่งตัว เมื่อใดก็ตามที่มีเหตุและผลในการสร้างแบบจำลอง เราจะไปที่การวิเคราะห์การถดถอย ประสิทธิภาพมีความแม่นยำมากขึ้นในการวิเคราะห์แบบเรียลไทม์เมื่อเราใช้เทคนิคการวิเคราะห์ปัจจัย ข้อมูลพื้นฐานการวิเคราะห์การถดถอยใช้ในการเรียนรู้ของเครื่องภายใต้การดูแล สิ่งสำคัญสามประการที่ควรสังเกตที่นี่:

  • เราต้องการข้อมูลเพื่อทำการวิเคราะห์ สำหรับประชากรทั้งหมด ถือเป็นงานที่น่าเบื่อนิดหน่อย ดังนั้นเราจึงได้ข้อมูลตัวอย่างมาวิเคราะห์
  • หลังจากได้รับข้อมูลแล้ว เราจำเป็นต้องออกแบบแบบจำลองเพื่อให้ใช้ได้กับประชากรทั้งหมด
  • หลังจากการสร้างแบบจำลองแล้ว เราสามารถคาดการณ์ประชากรได้


ก่อนหน้านี้เราสังเกตเห็นว่าเป็นการสร้างแบบจำลองประเภทเหตุและผล แล้วเราจะได้การถดถอยเชิงเส้นที่ไหน เชิงเส้นหมายถึงการเพิ่มผลเมื่อเราเพิ่มสาเหตุเพื่อให้ทั้งสองเปลี่ยนขนานกัน เราจำเป็นต้องมีคณิตศาสตร์เพื่อที่จะได้การทำนายเชิงเส้น ดังนั้นเราจึงใช้สมการของเส้นตรงเพื่อหาคุณสมบัติของเส้นตรงเชิงเส้น

สมการของเส้นตรงคือ

y = mx + b

ที่นี่,

Y เป็นตัวแปรตาม ( ผลลัพธ์ ) หรือตัวแปรทำนาย

Xเป็นตัวแปรอิสระ

Mคือความชัน หรืออาจเรียกว่าความชันก็ได้

B คือค่าตัดบนแกน y

Y เป็นฟังก์ชันของ X โมเดลการถดถอยเป็นการประมาณเชิงเส้น เพื่อการทำนายที่ดี เราจำเป็นต้องหา B และ M.

ตัวอย่าง:

สมมติว่าเรามีข้อมูลการออกกำลังกายของพลังงานและกิโลเมตรที่ครอบคลุม

เราจำเป็นต้องค้นหา B และ M สูตรในการค้นหาค่าเหล่านี้แสดงไว้ด้านล่าง:

M = จำนวนตัวอย่าง * (ผลรวม XY- ผลรวม X*ผลรวม Y) / จำนวนตัวอย่าง * (ผลรวม X กำลังสอง- ผลรวม X กำลังสอง)

B = ผลรวม Y- M * X ผลรวม/จำนวนตัวอย่าง

รูปภาพแสดงค่าเหล่านี้

หลังจากคำนวณค่าแล้ว M จะเท่ากับ 1.89 และค่า B จะเท่ากับ 0.667 จากค่าเหล่านี้เราสามารถหาคำทำนายได้จากสูตร

Y = 1.89*X + 0.667

หลังจากตรวจสอบค่า X บางส่วนเพื่อทำนายกิโลเมตรแล้ว ตัวอย่างแสดงไว้ด้านล่าง:

เราได้โมเดลของเรามาแต่เป็นเทคนิคง่ายๆ มาตรวจสอบกับ python ว่าเราได้ค่าเดียวกันหรือไม่

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

อ่านไฟล์เอ็กเซล

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

ใช้ฟังก์ชันอธิบายเพื่อดูสถิติ

แยกข้อมูลออกเป็น x และ 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()

เราเกือบจะได้ความสัมพันธ์เชิงเส้นแล้ว

ตอนนี้พอดีกับโมเดล OLS กับข้อมูลของเรา

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

หลังจากได้ข้อมูลสรุปแล้ว เราก็จะได้ค่าที่เท่ากัน ที่นี่เราใช้ statsmodels ซึ่งเป็นไลบรารีที่ยอดเยี่ยมสำหรับสถิติและการอนุมาน

หลังจากปรับให้พอดีแล้ว โมเดล OLS จะให้ตรวจสอบแผนภูมิกระจายด้วยเส้นพอดี

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

นี่คือแผนภาพกระจายหลังจากเส้นที่ดีที่สุดพอดี

บทสรุป:

OLS ให้การประมาณการถดถอยเชิงเส้นอย่างง่าย และแบบจำลองสถิติให้ข้อมูลเชิงลึกที่ยอดเยี่ยมเกี่ยวกับสถิติของข้อมูล

ติดต่อฉันที่ "LinkedIn" ของฉัน

บทความแนะนำ

  1. NLP — Zero to Hero ด้วย Python

2. โครงสร้างข้อมูล Python ประเภทข้อมูลและวัตถุ

3. MySQL: Zero to Hero