Lab 1: การนำเข้าและประมวลผลข้อมูล CSV สำหรับ Machine Learning

วัตถุประสงค์

  1. เพื่อเรียนรู้การนำเข้าข้อมูลจากไฟล์ CSV โดยใช้ Pandas
  2. เพื่อฝึกทักษะการตรวจสอบและทำความสะอาดข้อมูล (Data Cleaning)
  3. เพื่อเรียนรู้การแปลงข้อมูลแบบ Categorical เป็นตัวเลข (Encoding)
  4. เพื่อเตรียมข้อมูลให้พร้อมสำหรับการใช้งานกับ Machine Learning

ตัวอย่างข้อมูล CSV (customer_data.csv)

CustomerID,Age,Gender,Education,City,Income,Purchased
1,25,Male,Bachelor,Bangkok,45000,Yes
2,34, Female ,Master,Chiang Mai,65000,No
3,28,male,High School,Phuket,35000,Yes
4,45,Female,PhD,Bangkok,95000,Yes
5,23,,Bachelor,Pattaya,38000,No
6,56,Male,Master,Bangkok,125000,Yes
7,31,female,Bachelor,,52000,Yes
8,29,Male,High School,Chiang Mai,41000,No
9,42,Female,Master,Phuket,78000,Yes
10,25,Male,Bachelor,Bangkok,45000,Yes
11,38,male,PhD,Hat Yai,88000,Yes
12,27,Female,,Chiang Rai,47000,No
13,33,Male,Bachelor,Bangkok,55000,Yes
14,,Female,Master,Phuket,67000,No
15,29,male,High School,Pattaya,39000,Yes
16,51,Male,PhD,Bangkok,115000,Yes
17,26,Female,Bachelor,Chiang Mai,43000,No
18,35, Male,Master,,72000,Yes
19,28,female,Bachelor,Phuket,49000,Yes
20,44,Male,PhD,Bangkok,92000,Yes
21,30,Female,Bachelor,Hat Yai,51000,No
22,27,male,High School,Chiang Mai,37000,Yes
23,39,Female,Master,Bangkok,76000,Yes
24,32,Male,Bachelor,Pattaya,58000,No
25,29,,Master,Phuket,63000,Yes
26,46,Female,PhD,Bangkok,98000,Yes
27,24,male,High School,,36000,No
28,37,Male,Bachelor,Chiang Mai,54000,Yes
29,31,Female,Master,Phuket,69000,Yes
30,28,male,Bachelor,Bangkok,48000,No
31,52,Female,PhD,Hat Yai,108000,Yes
32,26,Male,High School,Pattaya,40000,Yes
33,34,female,Bachelor,,56000,No
34,29,Male,Master,Chiang Mai,66000,Yes
35,41,Female,PhD,Bangkok,89000,Yes
36,27,male,Bachelor,Phuket,46000,No
37,36,Female,Master,Bangkok,73000,Yes
38,30,Male,,Chiang Rai,52000,No
39,28,female,Bachelor,Pattaya,50000,Yes
40,47,Male,PhD,Bangkok,102000,Yes
41,25,Female,High School,Hat Yai,38000,No
42,33,male,Bachelor,Chiang Mai,57000,Yes
43,29,Female,Master,,68000,Yes
44,38,Male,PhD,Phuket,91000,Yes
45,26,female,Bachelor,Bangkok,44000,No
46,31,Male,Master,Chiang Mai,70000,Yes
47,28,Female,High School,Pattaya,39000,No
48,,male,Bachelor,Bangkok,53000,Yes
49,35,Female,PhD,Hat Yai,87000,Yes
50,27,Male,Bachelor,,45000,No
51,40,female,Master,Phuket,75000,Yes
52,29,Male,PhD,Bangkok,93000,Yes
53,32,Female,Bachelor,Chiang Mai,59000,No
54,28,male,High School,Pattaya,41000,Yes

ปัญหาที่พบในข้อมูล:


ตัวอย่างผลลัพธ์หลังประมวลผล

ข้อมูลก่อนทำความสะอาด:
- จำนวนแถว: 54
- ค่าที่หายไป: Age(2), Gender(2), Education(2), City(4)
- แถวซ้ำ: 1

ข้อมูลหลังทำความสะอาด:
- จำนวนแถว: 53
- ค่าที่หายไป: 0
- แถวซ้ำ: 0

ตัวอย่างข้อมูลที่ประมวลผลแล้ว:
CustomerID Age (Normalized) Gender_Encoded Education_Encoded Income (Normalized) City_Bangkok City_Chiang Mai City_Phuket Purchased
1 -1.234 1 1 -0.456 1 0 0 1
2 0.123 0 2 0.234 0 1 0 0
3 -0.891 1 0 -0.789 0 0 1 1
4 0.987 0 3 1.234 1 0 0 1
5 -1.456 1 1 -0.678 0 0 0 0

คำอธิบาย:


คำถามท้ายการทดลอง

  1. เหตุใดจึงต้องทำความสะอาดข้อมูลก่อนนำไปใช้กับ Machine Learning?
  2. ความแตกต่างระหว่าง Label Encoding และ One-Hot Encoding คืออะไร?
  3. เมื่อไรควรใช้ Standardization หรือ Normalization?
  4. หากมี Outliers ในข้อมูล ควรจัดการอย่างไร?