机器学习 - 多元回归
- หน้าก่อนหน้า การทดสอบทางเชิงเรขาคณิต
- หน้าต่อไป ย่อย
Multiple Regression
Multiple Regression คล้ายเดียวกับ Linear Regression แต่มีมาตราฐานอิสระหลายมาตราฐาน ซึ่งหมายความว่าเราพยายามที่จะคาดการณ์ค่าหนึ่งโดยอิงบนตัวแปรสองหรือมากกว่า
โปรดดูข้อมูลต่อไปนี้ ซึ่งมีข้อมูลเกี่ยวกับรถยนต์บางอย่าง
Car | Model | Volume | Weight | CO2 |
---|---|---|---|---|
Toyota | Aygo | 1000 | 790 | 99 |
Mitsubishi | Space Star | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Fiat | 500 | 900 | 865 | 90 |
Mini | Cooper | 1500 | 1140 | 105 |
VW | Up! | 1000 | 929 | 105 |
Skoda | Fabia | 1400 | 1109 | 90 |
Mercedes | A-Class | 1500 | 1365 | 92 |
Ford | Fiesta | 1500 | 1112 | 98 |
Audi | A1 | 1600 | 1150 | 99 |
Hyundai | I20 | 1100 | 980 | 99 |
Suzuki | Swift | 1300 | 990 | 101 |
Ford | Fiesta | 1000 | 1112 | 99 |
Honda | Civic | 1600 | 1252 | 94 |
Hundai | I30 | 1600 | 1326 | 97 |
Opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Rapid | 1600 | 1119 | 104 |
Ford | Focus | 2000 | 1328 | 105 |
Ford | Mondeo | 1600 | 1584 | 94 |
Opel | Insignia | 2000 | 1428 | 99 |
Mercedes | C-Class | 2100 | 1365 | 99 |
Skoda | Octavia | 1600 | 1415 | 99 |
Volvo | S60 | 2000 | 1415 | 99 |
Mercedes | CLA | 1500 | 1465 | 102 |
Audi | A4 | 2000 | 1490 | 104 |
Audi | A6 | 2000 | 1725 | 114 |
Volvo | V70 | 1600 | 1523 | 109 |
BMW | 5 | 2000 | 1705 | 114 |
Mercedes | E-Class | 2100 | 1605 | 115 |
Volvo | XC70 | 2000 | 1746 | 117 |
Ford | B-Max | 1600 | 1235 | 104 |
BMW | 2 | 1600 | 1390 | 108 |
Opel | Zafira | 1600 | 1405 | 109 |
Mercedes | SLK | 2500 | 1395 | 120 |
เราสามารถคาดการณ์ปริมาณการปล่อย CO2 ของรถยนต์ตามปริมาณเครื่องยนต์ แต่ด้วยการทำการประมาณปริมาณมากมาย พวกเราสามารถเพิ่มตัวแปรเพิ่มเติม เช่น น้ำหนักของรถยนต์ เพื่อทำการประมาณที่เหมาะสมยิ่งขึ้น
หลักการทำงาน
เรามีโมดูลที่สามารถทำงานนี้ได้ใน Python ตั้งแต่การนำโมดูล Pandas มาใช้
import pandas
หลักการทำงาน
โมดูล Pandas อนุญาตให้เราเรียกข้อมูลในไฟล์ csv และส่งกลับมาในรูปแบบ DataFrameไฟล์นี้ใช้เพื่อตั้งทดสอบเท่านั้น คุณสามารถดาวน์โหลดได้ที่นี่
df = pandas.read_csv("cars.csv")
cars.csv
เมื่อได้ตัวแปรค่าเดี่ยวกันแล้ว ตั้งชื่อตัวแปรดังกล่าวเป็น X
X = df[['Weight', 'Volume']] y = df['CO2']
ใส่ค่าที่เกี่ยวข้องไปในตัวแปรชื่อ yคำขวัญ ส่วนใหญ่จะตั้งชื่อรายการค่าเดี่ยวกันให้เป็นคำภาษาอักษรใหญ่
X นามความหมายของรายการค่าที่เกี่ยวข้อง ตั้งชื่อให้เป็นคำภาษาอักษรเล็ก
y
。
from sklearn import linear_model
เราจะใช้วิธีบางตัวในโมดูล sklearn ดังนั้นเราก็ต้องนำโมดูลนี้เข้ามาใช้ ในโมดูล sklearn พวกเราจะใช้
LinearRegression()
วัตถุนี้มีวิธีที่ชื่อ fit()
วิธีการ
regr = linear_model.LinearRegression() regr.fit(X, y)
ตอนนี้ เรามีวัตถุที่สามารถคาดการณ์ค่า CO2 ของรถยนต์เพื่อตามน้ำหนักและปริมาณ
# คาดการณ์ปริมาณการปล่อย CO2 ของรถยนต์ที่มีน้ำหนัก 2300kg และปริมาณ 1300ccm predictedCO2 = regr.predict([[2300, 1300]])
ตัวอย่าง
ดูตัวอย่างเต็มเรียบร้อย
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) # คาดการณ์ปริมาณการปล่อย CO2 ของรถยนต์ที่มีน้ำหนัก 2300kg และปริมาณ 1300ccm predictedCO2 = regr.predict([[2300, 1300]]) print(predictedCO2)
ผลลัพธ์:
[107.2087328]
เราคาดการณ์ว่า รถยนต์ที่มีเครื่องยนต์ 1.3 ลิตร น้ำหนัก 2300 กิโลกรัม จะปล่อยคาร์บอนไดออกไซด์ประมาณ 107 กรัม ต่อทุกกิโลเมตรที่วิ่ง
สัดส่วน
สัดส่วนคือประกายที่เฝ้าระวังความสัมพันธ์ของตัวแปรที่ไม่ทราบค่า
เช่น ถ้า x
คือตัวแปร 2x
คือ x
สองเท่าx
คือตัวแปรที่ไม่ทราบค่า ตัวเลข 2
คือสัดส่วน
ในสถานการณ์นี้ เราสามารถขอค่าสัดส่วนของน้ำหนักเกี่ยวกับ CO2 และปริมาณเกี่ยวกับ CO2 ของเราได้ และตอบแอนส์เราบอกเราว่า ถ้าเราเพิ่มหรือลดค่าของค่าเดี่ยวกันหนึ่ง จะเกิดอะไรขึ้น
ตัวอย่าง
แสดงค่าสัดส่วนของตัวแปรในวัตถุที่เรียกเรียนต่อ
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) print(regr.coef_)
ผลลัพธ์:
[0.00755095 0.00780526]
การอธิบายผลลัพธ์
แอร์รายการผลลัพธ์นี้แสดงค่าสัดส่วนของน้ำหนักและปริมาณที่ถูกปรับตัว
น้ำหนัก: 0.00755095 ปริมาณ: 0.00780526
ค่าเหล่านี้บอกเราว่า ถ้าน้ำหนักเพิ่ม 1g ปริมาณการปล่อย CO2 จะเพิ่ม 0.00755095g。
ถ้าขนาดเครื่องยนต์ (ปริมาณ) เพิ่ม 1 ccm แล้ว ปริมาณการปล่อย CO2 จะเพิ่ม 0.00780526g。
ฉันคิดว่านี่เป็นการคาดการณ์ที่เหมาะสม แต่ก็โปรดทดสอบอีกด้วย!
เราได้ทำนายไว้แล้วว่า ถ้ารถมีเครื่องยนต์ 1300ccm น้ำหนัก 2300 กิโลกรัม การปล่อยก๊าซคาร์บอนไดออกไซด์จะประมาณ 107 กรัม
จะเกิดอะไรถ้าเพิ่มน้ำหนัก 1000g?
ตัวอย่าง
คัดลอกตัวอย่างที่แล้ว แต่แก้ไขน้ำหนักจาก 2300 เป็น 3300:
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) predictedCO2 = regr.predict([[3300, 1300]]) print(predictedCO2)
ผลลัพธ์:
[114.75968007]
เราได้ทำการทำนายว่า รถที่มีเครื่องยนต์ 1.3 ลิตร น้ำหนัก 3.3 ตัน จะปล่อยก๊าซคาร์บอนไดออกไซด์ประมาณ 115 กรัมต่อทุกกิโลเมตรที่ขับขี่
นี่หมายความว่า ค่าเศษที่ 0.00755095 ถูกต้อง
107.2087328 + (1000 * 0.00755095) = 114.75968
- หน้าก่อนหน้า การทดสอบทางเชิงเรขาคณิต
- หน้าต่อไป ย่อย