ทั้งหมดเกี่ยวกับการถดถอยเชิงเส้นโดยใช้ 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 ต่างๆ การใช้อัลกอริธึมเหล่านี้ได้รับการสนับสนุนอย่างกว้างขวางในด้านธุรกิจและการศึกษา