ทั้งหมดเกี่ยวกับการถดถอยเชิงเส้นโดยใช้ Scikit
เผยแพร่แล้ว: 2022-09-08ในทางปฏิบัติ มีอัลกอริธึมแมชชีนเลิร์นนิงภายใต้การดูแลหลักสองประการ: 1. การจำแนกประเภทและ 2. การถดถอย — การจำแนกประเภทใช้เพื่อทำนายผลลัพธ์ที่ไม่ต่อเนื่อง ในขณะที่การถดถอยใช้เพื่อทำนายผลลัพธ์ของค่าที่ต่อเนื่องกัน
ในพีชคณิต ลิเนียริตี้หมายถึงความสัมพันธ์แบบตรงหรือเชิงเส้นระหว่างตัวแปรหลายตัว การแสดงความสัมพันธ์นี้ตามตัวอักษรจะเป็นเส้นตรง
ลงทะเบียน เรียนหลักสูตร Machine Learning จากมหาวิทยาลัยชั้นนำของโลก รับ Masters, Executive PGP หรือ Advanced Certificate Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
การถดถอยเชิงเส้นเป็นอัลกอริธึมการเรียนรู้ของเครื่องที่ดำเนินการภายใต้การดูแล เป็นกระบวนการในการค้นหาและทำแผนที่เส้นที่เหมาะสมสำหรับจุดข้อมูลทั้งหมดที่มีอยู่ในแปลงดังกล่าว เป็นแบบจำลองการถดถอยที่ช่วยประมาณค่าระหว่างตัวแปรอิสระหนึ่งตัวกับตัวแปรอิสระหนึ่งตัว ทั้งหมดนี้ใช้เส้นตรง
ตัวแบบการถดถอยเชิงเส้นช่วยสร้างความสัมพันธ์เชิงเส้นตรงระหว่างตัวแปรอิสระเหล่านี้ ซึ่งมีต้นทุนต่ำที่สุด โดยอิงตามตัวแปรตามที่กำหนด
ในวิชาคณิตศาสตร์ เรามีสามวิธีที่ใช้อธิบายแบบจำลองการถดถอยเชิงเส้น มีดังนี้ (เป็นตัวแปรตาม):
- y = การสกัดกั้น + (ความชัน x) + ข้อผิดพลาด
- y = ค่าคงที่ + (สัมประสิทธิ์x) + ข้อผิดพลาด
- y = a + bx + e
เหตุใดการถดถอยเชิงเส้นจึงสำคัญ
แบบจำลองของการถดถอยเชิงเส้นนั้นค่อนข้างง่ายกว่าและใช้งานง่ายกว่า พวกเขาทำให้กระบวนการตีความข้อมูล/สูตรทางคณิตศาสตร์ที่สามารถสร้างการคาดคะเนได้ค่อนข้างง่าย การถดถอยเชิงเส้นสามารถเป็นเครื่องมือในด้านต่างๆ (เช่น วิชาการหรือธุรกิจศึกษา)
แบบจำลองการถดถอยเชิงเส้นเป็นวิธีเดียวที่ได้รับการพิสูจน์ทางวิทยาศาสตร์แล้วว่าสามารถทำนายอนาคตได้อย่างแม่นยำ ใช้ในศาสตร์ต่างๆ ตั้งแต่สิ่งแวดล้อม พฤติกรรม สังคม ฯลฯ
คุณสมบัติของแบบจำลองเหล่านี้เป็นที่เข้าใจกันเป็นอย่างดี ดังนั้นจึงฝึกได้ง่าย เนื่องจากเป็นขั้นตอนทางสถิติที่มีมายาวนาน นอกจากนี้ยังอำนวยความสะดวกในการแปลงชุดข้อมูลดิบจำนวนมากให้เป็นข้อมูลที่สามารถดำเนินการได้
สมมติฐานหลักของการถดถอยเชิงเส้นที่มีประสิทธิผล
- ควรพิจารณาจำนวนกรณีที่ถูกต้อง ค่าเฉลี่ย และส่วนเบี่ยงเบนมาตรฐานสำหรับแต่ละตัวแปร
- สำหรับแต่ละแบบจำลอง : ควรพิจารณาสัมประสิทธิ์การถดถอย เมทริกซ์สหสัมพันธ์ ความสัมพันธ์บางส่วนและบางส่วน ข้อผิดพลาดมาตรฐานของการประมาณค่า ตารางวิเคราะห์ความแปรปรวน ค่าที่คาดการณ์ และค่าคงเหลือ
- พล็อต : แผนภาพกระจาย ฮิสโตแกรม แผนภาพบางส่วน และแผนภาพความน่าจะเป็นปกติ
- ข้อมูล : ต้องแน่ใจว่าตัวแปรตามและตัวแปรอิสระเป็นเชิงปริมาณ ตัวแปรตามหมวดหมู่ไม่จำเป็นต้องเข้ารหัสซ้ำกับตัวแปรไบนารีหรือตัวแปรจำลอง หรือตัวแปรคอนทราสต์ประเภทอื่นๆ
- สมมติฐานอื่นๆ : สำหรับทุกค่าของตัวแปรอิสระที่กำหนด เราจำเป็นต้องมีการแจกแจงแบบปกติของตัวแปรตาม ความแปรปรวนของการแจกแจงตัวแปรตามที่กำหนดควรคงที่สำหรับค่าตัวแปรอิสระทุกค่า ความสัมพันธ์ระหว่างตัวแปรอิสระทุกตัวควรเป็นแบบเส้นตรง นอกจากนี้ การสังเกตทั้งหมดควรเป็นอิสระ
นี่คือตัวอย่างที่มีอยู่ของการ ถดถอยเชิงเส้นอย่างง่าย :
ชุดข้อมูลในตัวอย่างประกอบด้วยข้อมูลเกี่ยวกับสถานการณ์สภาพอากาศทั่วโลกในแต่ละวันในช่วงเวลาหนึ่งๆ รายการข้อมูลโดยละเอียดนี้รวมถึงปัจจัยต่างๆ เช่น ปริมาณน้ำฝน หิมะ อุณหภูมิ ความเร็วลม พายุฝนฟ้าคะนอง หรือสภาพอากาศที่เป็นไปได้อื่นๆ
ปัญหานี้มีจุดมุ่งหมายเพื่อใช้แบบจำลองการถดถอยเชิงเส้นอย่างง่ายในการทำนายอุณหภูมิสูงสุดโดยรับอุณหภูมิต่ำสุดเป็นอินพุต
ประการแรก ต้องนำเข้าไลบรารีทั้งหมด
นำเข้าแพนด้าเป็น pd
นำเข้า numpy เป็น np
นำเข้า matplotlib.pyplot เป็น plt
นำเข้า seaborn เป็น seabornInstance
จาก sklearn.model_selection นำเข้า train_test_split
จาก sklearn.linear_model นำเข้า LinearRegression
จากเมตริกการนำเข้า sklearn
%matplotlib แบบอินไลน์
ในการนำเข้าชุดข้อมูลต่อไปนี้โดยใช้แพนด้า ต้องใช้คำสั่งต่อไปนี้:
ชุดข้อมูล = pd.read_csv('/Users/nageshsinghchauhan/Documents/projects/ML/ML_BLOG_LInearRegression/Weather.csv')
ในการตรวจสอบจำนวนแถวและคอลัมน์ที่มีอยู่ในชุดข้อมูลเพื่อสำรวจข้อมูล ต้องใช้คำสั่งต่อไปนี้:
dataset.shape
ผลลัพธ์ที่ได้รับควรเป็น (119040, 31) ซึ่งหมายความว่าข้อมูลประกอบด้วย 119040 แถวและ 31 คอลัมน์
หากต้องการดูรายละเอียดทางสถิติของชุดข้อมูล สามารถใช้คำสั่งต่อไปนี้:
อธิบาย():
dataset.describe()
นี่เป็นอีกตัวอย่างหนึ่ง ที่มีจุดมุ่งหมายเพื่อสาธิตวิธีการดึงและใช้ไลบรารี Python ต่างๆ ที่จะใช้สำหรับการถดถอยเชิงเส้นกับชุดข้อมูลที่กำหนด:
1. การนำเข้าไลบรารีที่จำเป็นทั้งหมด
นำเข้า numpy เป็น np
นำเข้าแพนด้าเป็น pd
นำเข้า seaborn เป็น sns
นำเข้า matplotlib.pyplot เป็น plt
จากการประมวลผลล่วงหน้าการนำเข้า sklearn, svm
จาก sklearn.model_selection นำเข้า train_test_split
จาก sklearn.linear_model นำเข้า LinearRegression
2. การอ่านชุดข้อมูล
cd C:\Users\Dev\Desktop\Kaggle\Salinity
# การเปลี่ยนตำแหน่งการอ่านไฟล์เป็นตำแหน่งของชุดข้อมูล
df = pd.read_csv('bottle.csv')
df_binary = df[['เค็ม', 'T_degC']]
# รับเพียงสองแอตทริบิวต์ที่เลือกจากชุดข้อมูล
df_binary.columns = ['ซัล', 'ชั่วคราว']
#เปลี่ยนชื่อคอลัมน์เพื่อให้เขียนโค้ดได้ง่ายขึ้น
df_binary.head()
# แสดงเฉพาะแถวที่ 1 พร้อมชื่อคอลัมน์
2. สำรวจการกระจายข้อมูล
sns.lmplot(x =”Sal”, y =”Temp”, data = df_binary, order = 2, ci = None)
# พล็อตการกระจายข้อมูล
3. การล้างข้อมูล
# การกำจัด NaN หรือหมายเลขอินพุตที่ขาดหายไป
df_binary.fillna(method ='ffill', inplace = True)
4. การฝึกโมเดล
X = np.array(df_binary['Sal']).reshape(-1, 1)
y = np.array(df_binary['Temp']).reshape(-1, 1)
# การแยกข้อมูลออกเป็นตัวแปรอิสระและตัวแปรตาม
# การแปลงแต่ละดาต้าเฟรมเป็นอาร์เรย์จำนวนมาก
# เนื่องจากแต่ละ dataframe มีเพียงคอลัมน์เดียว
df_binary.dropna (แทนที่ = จริง)
# วางแถวใด ๆ ที่มีค่าน่าน
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25)
# แยกข้อมูลออกเป็นข้อมูลการฝึกอบรมและการทดสอบ
reg = การถดถอยเชิงเส้น ()
reg.fit(X_train, y_train)
พิมพ์(regr.score(X_test, y_test))
5. สำรวจผลลัพธ์
y_pred = reg.predict(X_test)
plt.scatter(X_test, y_test, color ='b')
plt.plot(X_test, y_pred, color ='k')
plt.show()
# การกระจายข้อมูลของค่าที่คาดการณ์ไว้
6. การทำงานกับชุดข้อมูลที่มีขนาดเล็กลง
df_binary500 = df_binary[:][:500]
# การเลือก 500 แถวแรกของ data
sns.lmplot(x =”Sal”, y =”Temp”, data = df_binary500,
คำสั่ง = 2, ci = ไม่มี)
บล็อกการเรียนรู้ของเครื่องยอดนิยมและปัญญาประดิษฐ์
IoT: ประวัติศาสตร์ ปัจจุบัน และอนาคต | บทช่วยสอนการเรียนรู้ของเครื่อง: เรียนรู้ ML | อัลกอริทึมคืออะไร? ง่ายและสะดวก |
เงินเดือนวิศวกรหุ่นยนต์ในอินเดีย: บทบาททั้งหมด | วันหนึ่งในชีวิตของวิศวกรแมชชีนเลิร์นนิง: พวกเขาทำอะไร? | IoT คืออะไร (Internet of Things) |
การเปลี่ยนแปลงและการรวมกัน: ความแตกต่างระหว่างการเปลี่ยนแปลงและการรวมกัน | แนวโน้ม 7 อันดับแรกในปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง | แมชชีนเลิร์นนิงกับ R: ทุกสิ่งที่คุณต้องรู้ |
หากคุณ สนใจที่จะเรียนรู้แมชชีนเลิร์นนิงแบบเต็มรูปแบบ เราขอแนะนำให้เข้าร่วม Master of Science in Machine Learning & AI ของ Grad โปรแกรม 20 เดือนเปิดสอนร่วมกับ IIIT Bangalore และ Liverpool John Moores University ได้ รับการออกแบบมาเพื่อช่วยคุณสร้างความสามารถในภาษาโปรแกรม เครื่องมือ และไลบรารีที่เกี่ยวข้องกับอุตสาหกรรม เช่น Python, Keras, Tensor Flow, MySql, Flask, Kubernetes เป็นต้น
โปรแกรมสามารถช่วยให้คุณเก่งแนวคิดวิทยาศาสตร์ข้อมูลขั้นสูงผ่านประสบการณ์จริงและการสร้างทักษะ นอกจากนี้ คุณยังได้รับประโยชน์จาก upGrad ด้วยการเข้าถึงที่ปรึกษาด้านอาชีพ 360° กลุ่มเครือข่ายของผู้เรียนที่ชำระเงินแล้วกว่า 40,000 คน และโอกาสในการทำงานร่วมกันอีกมาก!
สำรองที่นั่งได้แล้ววันนี้!
การถดถอยเชิงเส้นใช้สำหรับอะไร
การวิเคราะห์ประเภทนี้มักใช้เพื่อทำนายค่าของตัวแปรหนึ่งโดยพิจารณาจากตัวแปรอื่นที่รู้จัก ตัวแปรที่ใช้หาค่าของอีกตัวแปรหนึ่งเรียกว่าตัวแปรตามและตัวแปรอิสระตามลำดับ
วิธีการติดตั้ง scikit เรียนรู้?
ในตอนแรก จำเป็นต้องติดตั้ง Scikit เรียนรู้เวอร์ชันการถดถอยเชิงเส้นที่จัดเตรียมโดยระบบปฏิบัติการที่เกี่ยวข้องหรือการกระจาย Python นี่เป็นวิธีที่เร็วที่สุดสำหรับผู้ที่มีตัวเลือกนี้ จากนั้นจะต้องติดตั้งเวอร์ชันที่เผยแพร่อย่างเป็นทางการและอัปเดตล่าสุด
scikit เรียนรู้ทำงานอย่างไร?
Scikit เรียนรู้การถดถอยเชิงเส้นให้ช่วงของอัลกอริธึมภายใต้การดูแลและไม่ได้ดูแลผ่านอินเทอร์เฟซของ python ซึ่งมีความสอดคล้องกันเสมอ ได้รับอนุญาตภายใต้ใบอนุญาต BSD ที่อนุญาต มีการแจกจ่ายภายใต้ตัวดำเนินการ Linux ต่างๆ การใช้อัลกอริธึมเหล่านี้ได้รับการสนับสนุนอย่างกว้างขวางในด้านธุรกิจและการศึกษา