เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor ในบท Machine Learning - Scale
เนื้อหาในบทนี้เราจะเรียนรู้เกี่ยวกับ Scale เมื่อข้อมูลของนักเรียนมีค่าแตกต่างกันและแม้แต่หน่วยการวัดที่แตกต่างกันมันอาจเป็นการยากที่จะเปรียบเทียบ กิโลกรัมเปรียบเทียบกับเมตรคืออะไร หรือระดับความสูงเมื่อเทียบกับเวลา?
คำตอบของปัญหานี้คือการปรับสเกล เราสามารถปรับขนาดข้อมูลเป็นค่าใหม่ที่ง่ายต่อการเปรียบเทียบ ลองดูตารางด้านล่างมันเป็นชุดข้อมูลเดียวกับที่เราใช้ในบทการถดถอยหลายครั้ง แต่คราวนี้คอลัมน์ปริมาณมีค่าเป็นลิตรแทนที่จะเป็น ccm (1.0 แทน 1,000)
Toyota |
Aygo |
1.0 |
790 |
99 |
Mitsubishi |
Space Star |
1.2 |
1160 |
95 |
Skoda |
Citigo |
1.0 |
929 |
95 |
Fiat |
500 |
0.9 |
865 |
90 |
Mini |
Cooper |
1.5 |
1140 |
105 |
VW |
Up! |
1.0 |
929 |
105 |
Skoda |
Fabia |
1.4 |
1109 |
90 |
Mercedes |
A-Class |
1.5 |
1365 |
92 |
Ford |
Fiesta |
1.5 |
1112 |
98 |
Audi |
A1 |
1.6 |
1150 |
99 |
Hyundai |
I20 |
1.1 |
980 |
99 |
Suzuki |
Swift |
1.3 |
990 |
101 |
Ford |
Fiesta |
1.0 |
1112 |
99 |
Honda |
Civic |
1.6 |
1252 |
94 |
Hundai |
I30 |
1.6 |
1326 |
97 |
Opel |
Astra |
1.6 |
1330 |
97 |
BMW |
1 |
1.6 |
1365 |
99 |
Mazda |
3 |
2.2 |
1280 |
104 |
Skoda |
Rapid |
1.6 |
1119 |
104 |
Ford |
Focus |
2.0 |
1328 |
105 |
Ford |
Mondeo |
1.6 |
1584 |
94 |
Opel |
Insignia |
2.0 |
1428 |
99 |
Mercedes |
C-Class |
2.1 |
1365 |
99 |
Skoda |
Octavia |
1.6 |
1415 |
99 |
Volvo |
S60 |
2.0 |
1415 |
99 |
Mercedes |
CLA |
1.5 |
1465 |
102 |
Audi |
A4 |
2.0 |
1490 |
104 |
Audi |
A6 |
2.0 |
1725 |
114 |
Volvo |
V70 |
1.6 |
1523 |
109 |
BMW |
5 |
2.0 |
1705 |
114 |
Mercedes |
E-Class |
2.1 |
1605 |
115 |
Volvo |
XC70 |
2.0 |
1746 |
117 |
Ford |
B-Max |
1.6 |
1235 |
104 |
BMW |
2 |
1.6 |
1390 |
108 |
Opel |
Zafira |
1.6 |
1405 |
109 |
Mercedes |
SLK |
2.5 |
1395 |
120 |
เป็นเรื่องยากที่จะเปรียบเทียบปริมาตร 1.0 กับน้ำหนัก 790 แต่ถ้าเราปรับขนาดทั้งสองเป็นค่าที่เทียบเคียงได้เราจะเห็นได้ว่าค่าหนึ่งมีค่าเท่ากันเมื่อเปรียบเทียบกับค่าอื่น ๆ มีวิธีการต่าง ๆ สำหรับการปรับขนาดข้อมูลในบทช่วยสอนนี้เราจะใช้วิธีการที่เรียกว่า วิธีการมาตรฐานใช้สูตรนี้
z = (x - u) / s |
โดยที่ z คือค่าใหม่ x คือค่าดั้งเดิม u คือค่าเฉลี่ยและ s คือค่าเบี่ยงเบนมาตรฐานหากนักเรียนใช้คอลัมน์น้ำหนักจากชุดข้อมูลด้านบนค่าแรกคือ 790 และค่าที่ปรับจะเป็น(790 - 1292.23) / 238.74 = -2.1
หากนักเรียนนำคอลัมน์ปริมาณจากชุดข้อมูลด้านบนค่าแรกคือ 1.0 และค่าที่ปรับจะเป็น (1.0 - 1.61) / 0.38 = -1.59
ตอนนี้นักเรียนสามารถเปรียบเทียบ -2.1 กับ -1.59 แทนที่จะเปรียบเทียบ 790 กับ 1.0 นักเรียนไม่ต้องทำสิ่งนี้ด้วยตนเองโมดูล Python sklearn มีวิธีที่เรียกว่า StandardScaler() ซึ่งจะส่งคืนวัตถุ Scaler ด้วยวิธีการเปลี่ยนชุดข้อมูล
ตัวอย่าง
ปรับขนาดค่าทั้งหมดในคอลัมน์น้ำหนักและปริมาณ
import pandas |
ผลลัพธ์
[[-2.10389253 -1.59336644] |
ทำนายค่า CO2
ภารกิจในบทถดถอยหลายครั้งคือการทำนายการปล่อย CO2 จากรถยนต์เมื่อนักเรียนรู้น้ำหนักและปริมาตรของมัน เมื่อปรับขนาดชุดข้อมูลนักเรียนจะต้องใช้มาตราส่วนเมื่อนักเรียนทำนายค่า
ตัวอย่าง
ทำนายการปล่อย CO2 จากรถยนต์ขนาด 1.3 ลิตรที่มีน้ำหนัก 2,300 กิโลกรัม
import pandas |
ผลลัพธ์
[107.2087328] |
Tag ที่น่าสนใจ: machine_learning scale programming_tutor data_scaling comparison data_transformation statistics machine_learning_concepts programming_basics data_analysis quantitative_analysis
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM