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

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

การเรียนรู้ของเครื่อง - มาตราส่วน


คุณสมบัติมาตราส่วน

เมื่อข้อมูลของคุณมีค่าต่างกันและแม้แต่หน่วยการวัดที่ต่างกัน ก็อาจเปรียบเทียบได้ยาก กิโลกรัมเทียบกับเมตรคืออะไร? หรือความสูงเมื่อเทียบกับเวลา?

คำตอบสำหรับปัญหานี้คือการปรับขนาด เราสามารถปรับขนาดข้อมูลให้เป็นค่าใหม่ที่เปรียบเทียบได้ง่ายขึ้น

ดูตารางด้านล่าง เป็นชุดข้อมูลเดียวกับที่เราใช้ใน บทถดถอยพหุคูณแต่คราวนี้คอลัมน์ปริมาตร มีค่าเป็น ลิตรแทนที่จะเป็นcm 3 (1.0 แทน 1000)

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

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

การเปรียบเทียบปริมาตร 1.0 กับน้ำหนัก 790 อาจเป็นเรื่องยาก แต่ถ้าเราปรับขนาดทั้งสองให้เป็นค่าที่เปรียบเทียบกันได้ เราจะเห็นได้อย่างง่ายดายว่าค่าหนึ่งเทียบกับอีกค่าหนึ่งมีค่าเท่าใด

มีวิธีการต่างๆ สำหรับการปรับขนาดข้อมูล ในบทช่วยสอนนี้ เราจะใช้วิธีการที่เรียกว่าการทำให้เป็นมาตรฐาน

วิธีการมาตรฐานใช้สูตรนี้:

z = (x - u) / s

zค่าใหม่ อยู่ที่ไหน คือค่า xเดิม uคือค่ากลาง และsค่าเบี่ยงเบนมาตรฐาน

หากคุณนำ คอลัมน์ น้ำหนักจากชุดข้อมูลข้างต้น ค่าแรกคือ 790 และค่าที่ปรับขนาดจะเป็น:

(790 - ) / = -2.1

หากคุณนำ คอลัมน์ โวลุ่มจากชุดข้อมูลด้านบน ค่าแรกคือ 1.0 และค่าที่ปรับขนาดจะเป็น:

(1.0 - ) / = -1.59

ตอนนี้คุณสามารถเปรียบเทียบ -2.1 กับ -1.59 แทนการเปรียบเทียบ 790 กับ 1.0

คุณไม่จำเป็นต้องทำสิ่งนี้ด้วยตนเอง โมดูล Python sklearn มีเมธอดที่เรียกว่าStandardScaler() ซึ่งส่งคืนอ็อบเจกต์ Scaler ด้วยวิธีการแปลงชุดข้อมูล

ตัวอย่าง

ปรับขนาดค่าทั้งหมดในคอลัมน์น้ำหนักและปริมาตร:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

print(scaledX)

ผลลัพธ์:

โปรดทราบว่าค่าสองค่าแรกคือ -2.1 และ -1.59 ซึ่งสอดคล้องกับการคำนวณของเรา:

[[-2.10389253 -1.59336644]
 [-0.55407235 -1.07190106]
 [-1.52166278 -1.59336644]
 [-1.78973979 -1.85409913]
 [-0.63784641 -0.28970299]
 [-1.52166278 -1.59336644]
 [-0.76769621 -0.55043568]
 [ 0.3046118  -0.28970299]
 [-0.7551301  -0.28970299]
 [-0.59595938 -0.0289703 ]
 [-1.30803892 -1.33263375]
 [-1.26615189 -0.81116837]
 [-0.7551301  -1.59336644]
 [-0.16871166 -0.0289703 ]
 [ 0.14125238 -0.0289703 ]
 [ 0.15800719 -0.0289703 ]
 [ 0.3046118  -0.0289703 ]
 [-0.05142797  1.53542584]
 [-0.72580918 -0.0289703 ]
 [ 0.14962979  1.01396046]
 [ 1.2219378  -0.0289703 ]
 [ 0.5685001   1.01396046]
 [ 0.3046118   1.27469315]
 [ 0.51404696 -0.0289703 ]
 [ 0.51404696  1.01396046]
 [ 0.72348212 -0.28970299]
 [ 0.8281997   1.01396046]
 [ 1.81254495  1.01396046]
 [ 0.96642691 -0.0289703 ]
 [ 1.72877089  1.01396046]
 [ 1.30990057  1.27469315]
 [ 1.90050772  1.01396046]
 [-0.23991961 -0.0289703 ]
 [ 0.40932938 -0.0289703 ]
 [ 0.47215993 -0.0289703 ]
 [ 0.4302729   2.31762392]]


ทำนายค่า CO2

งานในบทการถดถอยพหุคูณคือการคาดการณ์การปล่อย CO2 จากรถยนต์เมื่อคุณรู้เพียงน้ำหนักและปริมาตรเท่านั้น

เมื่อมีการปรับขนาดชุดข้อมูล คุณจะต้องใช้มาตราส่วนเมื่อคุณคาดการณ์ค่า:

ตัวอย่าง

ทำนายการปล่อย CO2 จากรถยนต์ 1.3 ลิตรที่มีน้ำหนัก 2300 กิโลกรัม:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

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

scaled = scale.transform([[2300, 1.3]])

predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

ผลลัพธ์:

[107.2087328]