การเรียนรู้ของเครื่อง, การเขียนโปรแกรม
การถดถอยเชิงเส้นอธิบายอย่างสมบูรณ์ด้วย 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" ของฉัน