บทช่วยสอนงูหลาม

Python HOME แนะนำ Python Python เริ่มต้น ไวยากรณ์หลาม ความคิดเห็นหลาม ตัวแปรหลาม ประเภทข้อมูลหลาม ตัวเลขหลาม Python Casting Python Strings Python Booleans ตัวดำเนินการ Python รายการหลาม Python Tuples ชุดหลาม พจนานุกรม Python Python If...Else Python ในขณะที่ลูป Python สำหรับลูป ฟังก์ชั่นหลาม Python Lambda Python Arrays Python คลาส/วัตถุ มรดกหลาม Python Iterators ขอบเขตหลาม โมดูล Python วันที่หลาม คณิตศาสตร์หลาม Python JSON Python RegEx Python PIP Python ลอง...ยกเว้น อินพุตผู้ใช้ Python การจัดรูปแบบสตริงหลาม

การจัดการไฟล์

การจัดการไฟล์ Python Python อ่านไฟล์ Python เขียน/สร้างไฟล์ Python ลบไฟล์

โมดูล Python

กวดวิชา NumPy เกมส์หมีแพนด้า กวดวิชา Scipy

Python Matplotlib

บทนำ Matplotlib Matplotlib เริ่มต้น Matplotlib Pyplot Matplotlib พล็อต เครื่องหมาย Matplotlib Matplotlib Line ป้ายกำกับ Matplotlib Matplotlib Grid แผนย่อย Matplotlib Matplotlib Scatter Matplotlib บาร์ Matplotlib Histograms Matplotlib แผนภูมิวงกลม

การเรียนรู้ของเครื่อง

เริ่มต้น โหมดค่ามัธยฐาน ส่วนเบี่ยงเบนมาตรฐาน เปอร์เซ็นไทล์ การกระจายข้อมูล การกระจายข้อมูลปกติ พล็อตกระจาย การถดถอยเชิงเส้น การถดถอยพหุนาม การถดถอยพหุคูณ มาตราส่วน รถไฟ/ทดสอบ ต้นไม้การตัดสินใจ

Python MySQL

MySQL เริ่มต้น MySQL สร้างฐานข้อมูล MySQL สร้างตาราง MySQL Insert MySQL Select MySQL Where MySQL สั่งซื้อโดย MySQL Delete MySQL Drop Table MySQL Update MySQL Limit MySQL เข้าร่วม

Python MongoDB

MongoDB เริ่มต้น MongoDB สร้างฐานข้อมูล MongoDB สร้างคอลเล็กชัน MongoDB แทรก MongoDB ค้นหา แบบสอบถาม MongoDB MongoDB Sort MongoDB ลบ MongoDB Drop Collection อัพเดท MongoDB MongoDB Limit

การอ้างอิงหลาม

ภาพรวมของ Python ฟังก์ชันในตัวของ Python Python String Methods Python List Methods วิธีพจนานุกรม Python วิธี Python Tuple Python Set Methods วิธีไฟล์ Python คีย์เวิร์ด Python ข้อยกเว้นของ Python คำศัพท์หลาม

การอ้างอิงโมดูล

โมดูลสุ่ม โมดูลคำขอ โมดูลสถิติ โมดูลคณิตศาสตร์ โมดูล cMath

Python ฮาวทู

ลบรายการที่ซ้ำกัน ย้อนกลับสตริง เพิ่มสองตัวเลข

ตัวอย่าง Python

ตัวอย่าง Python Python Compiler แบบฝึกหัดหลาม แบบทดสอบ Python ใบรับรอง Python

การเรียนรู้ของเครื่อง - การถดถอยพหุคูณ


การถดถอยพหุคูณ

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

ดูชุดข้อมูลด้านล่างซึ่งมีข้อมูลเกี่ยวกับรถยนต์บางส่วน

รถ แบบอย่าง ปริมาณ น้ำหนัก CO2
โตโยต้า Aygo 1000 790 99
มิตซูบิชิ สเปซสตาร์ 1200 1160 95
Skoda Citigo 1000 929 95
เฟียต 500 900 865 90
มินิ คูเปอร์ 1500 1140 105
VW ขึ้น! 1000 929 105
Skoda ฟาเบีย 1400 1109 90
Mercedes ห้องเรียน 1500 1365 92
ฟอร์ด เฟียสต้า 1500 1112 98
Audi A1 1600 1150 99
ฮุนได I20 1100 980 99
ซูซูกิ Swift 1300 990 101
ฟอร์ด เฟียสต้า 1000 1112 99
ฮอนด้า พลเมือง 1600 1252 94
ฮุนได I30 1600 1326 97
Opel Astra 1600 1330 97
BMW 1 1600 1365 99
มาสด้า 3 2200 1280 104
Skoda รวดเร็ว 1600 1119 104
ฟอร์ด จุดสนใจ 2000 1328 105
ฟอร์ด มอนดีโอ 1600 1584 94
Opel เครื่องราชอิสริยาภรณ์ 2000 1428 99
Mercedes C-Class 2100 1365 99
Skoda Octavia 1600 1415 99
วอลโว่ S60 2000 1415 99
Mercedes CLA 1500 1465 102
Audi A4 2000 1490 104
Audi A6 2000 1725 114
วอลโว่ V70 1600 1523 109
BMW 5 2000 1705 114
Mercedes E-Class 2100 1605 115
วอลโว่ XC70 2000 1746 117
ฟอร์ด บี-แม็กซ์ 1600 1235 104
BMW 2 1600 1390 108
Opel ซาฟิรา 1600 1405 109
Mercedes SLK 2500 1395 120

เราสามารถคาดการณ์การปล่อย CO2 ของรถยนต์ตามขนาดของเครื่องยนต์ แต่ด้วยการถดถอยหลายครั้ง เราสามารถใส่ตัวแปรเพิ่มเติม เช่น น้ำหนักของรถ เพื่อให้การคาดการณ์แม่นยำยิ่งขึ้น


มันทำงานอย่างไร?

ใน Python เรามีโมดูลที่จะทำงานให้เรา เริ่มต้นด้วยการนำเข้าโมดูล Pandas

import pandas

เรียนรู้เกี่ยวกับโมดูล Pandas ในการสอน Pandasของ เรา

โมดูล Pandas ช่วยให้เราอ่านไฟล์ csv และส่งคืนวัตถุ DataFrame

ไฟล์นี้มีขึ้นเพื่อการทดสอบเท่านั้น คุณสามารถดาวน์โหลดได้ที่นี่: cars.csv

df = pandas.read_csv("cars.csv")

จากนั้นทำรายการค่าอิสระและเรียกตัวแปรXนี้

ใส่ค่าที่ขึ้นต่อกันในตัวแปรที่เรียกว่าy.

X = df[['Weight', 'Volume']]
y = df['CO2']

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

เราจะใช้วิธีการบางอย่างจากโมดูล sklearn ดังนั้น เราจะต้องนำเข้าโมดูลนั้นด้วย:

from sklearn import linear_model

จากโมดูล sklearn เราจะใช้LinearRegression()เมธอดเพื่อสร้างออบเจกต์การถดถอยเชิงเส้น

ออบเจ็กต์นี้มีเมธอดที่เรียกfit()ซึ่งรับค่าอิสระและค่าที่ขึ้นต่อกันเป็นพารามิเตอร์ และเติมออบเจกต์การถดถอยด้วยข้อมูลที่อธิบายความสัมพันธ์:

regr = linear_model.LinearRegression()
regr.fit(X, y)

ตอนนี้ เรามีวัตถุถดถอยที่พร้อมจะทำนายค่า CO2 ตามน้ำหนักและปริมาตรของรถ:

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
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)

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
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

ค่าเหล่านี้บอกเราว่าหากน้ำหนักเพิ่มขึ้น 1 กิโลกรัม การปล่อย CO2 จะเพิ่มขึ้น 0.00755095 กรัม

และถ้าขนาดเครื่องยนต์ (Volume) เพิ่มขึ้น 1 ซม. 3การปล่อย CO2 จะเพิ่มขึ้น 0.00780526 กรัม

ฉันคิดว่านั่นเป็นการเดาที่ยุติธรรม แต่มาทดสอบกัน!

เราได้คาดการณ์ไว้แล้วว่าหากรถยนต์ที่มีเครื่องยนต์ขนาด 1300 ซม. 3มีน้ำหนัก 2300 กก. การปล่อย CO2 จะอยู่ที่ประมาณ 107 กรัม

จะเกิดอะไรขึ้นถ้าเราเพิ่มน้ำหนักเป็น 1,000 กิโลกรัม?

ตัวอย่าง

คัดลอกตัวอย่างจากเมื่อก่อน แต่เปลี่ยนน้ำหนักจาก 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 ลิตร และน้ำหนัก 3300 กิโลกรัม จะปล่อยคาร์บอนไดออกไซด์ออกมาประมาณ 115 กรัมต่อทุกๆ กิโลเมตรที่ขับ

ซึ่งแสดงว่าสัมประสิทธิ์ 0.00755095 ถูกต้อง:

107.2087328 + (1000 * 0.00755095) = 114.75968