วิทยาลัยนานาชาตินวัตกรรมดิจิทัล มหาวิทยาลัยเชียงใหม่
2 ธันวาคม 2568
โหลดคำสั่ง
ข้อมูลเชิงโครงสร้าง (Structured Data) คือข้อมูลที่มีรูปแบบแน่นอน เช่น ตารางในฐานข้อมูล (rows & columns) ซึ่งแต่ละคอลัมน์ระบุประเภทข้อมูลอย่างชัดเจน เช่น Customer_ID, Age, Gender, Purchase_Amount เป็นต้น
การแปลงข้อมูลให้เป็นเชิงโครงสร้าง (Data Transformation) มักประกอบด้วยขั้นตอนสำคัญ เช่น
🧹 Data Cleaning (การทำความสะอาดข้อมูล)
🔄 Data Integration (การรวมข้อมูล)
🧩 Data Reshaping (การปรับโครงสร้างข้อมูล)
🔢 Feature Extraction (การสกัดคุณลักษณะ)
💾 Data Loading (การบันทึกลงระบบ)
Note
ข้อมูลดิบมักจะยุ่งเหยิง (messy): อาจมีรูปแบบไม่สอดคล้องกัน มีค่าสูญหาย หรือมีโครงสร้างซ้อนกัน
ข้อมูลที่ไม่มีโครงสร้างวิเคราะห์ได้ยาก: เครื่องมืออย่าง Excel, R, Python หรือ SQL ทำงานได้ดีที่สุดกับตารางที่เป็นโครงสร้าง
เครื่องมือทำภาพข้อมูลต้องการข้อมูลที่สะอาด: แผนภูมิและแดชบอร์ดต้องอาศัย data frame ที่จัดระเบียบดี
ยิ่งแม่นยำ ยิ่งได้อินไซต์ที่ดีกว่า: ข้อมูลที่สะอาดและมีโครงสร้างช่วยลดความผิดพลาดและยกระดับคุณภาพการวิเคราะห์
ข้อมูลโลกจริงแทบไม่พร้อมใช้งานทันที: โดยมากงานของนักวิเคราะห์ข้อมูล 70–80% ใช้ไปกับการทำความสะอาดและแปลงข้อมูล!
“ลูกค้า John Doe อายุ 32 ปี ซื้อสินค้าเป็นมูลค่า $120 ติดต่อได้ที่: john.d@example.com”
“Jane Smith อายุ 28 ปี ทำการซื้อสินค้าเป็นมูลค่า $250 อีเมลของเธอคือ jane.s@example.com”
“Bob Lee อายุ 45 ปี ใช้จ่าย $90 สามารถติดต่อเขาได้ที่ bob.lee@example.com”
🟠 ปัญหาของข้อมูลข้อความดิบ:
ยากต่อการดึงค่าที่ต้องการเฉพาะ (เช่น อายุ ยอดซื้อ)
ไม่สามารถวิเคราะห์หรือสรุปผลได้หากไม่ผ่านการแปลงข้อมูล (data transformation)
ยังไม่พร้อมใช้งานใน Excel, R หรือฐานข้อมูลใด ๆ
คุณต้องการข้อมูลอะไรบ้าง?
ระบุฟิลด์ที่จำเป็น (เช่น ชื่อ (Name), อายุ (Age), อีเมล (Email), มูลค่าการซื้อ (Purchase Amount))
บางส่วนของข้อความอาจไม่จำเป็นและสามารถละเว้นได้ในขั้นตอนการแปลง
รูปแบบสอดคล้องกันหรือไม่?
ตรวจสอบว่าทุกรายการมีรูปแบบใกล้เคียงกันหรือไม่
หากรูปแบบไม่สอดคล้อง (เช่น โครงสร้างประโยคต่างกัน) อาจต้องใช้ตรรกะการดึงข้อมูลเฉพาะ เช่น regular expressions (regex)
มีค่าที่หายไปหรือคลุมเครือหรือไม่?
บางรายการอาจขาดบางฟิลด์ (เช่น ไม่มีอีเมลหรืออายุ)
วางแผนวิธีจัดการ ข้อมูลสูญหาย (missing data) หรือระเบียนที่ไม่สมบูรณ์
จำเป็นต้องทำความสะอาดหรือปรับรูปแบบข้อมูลหรือไม่?
ตัวอย่าง: ลบสัญลักษณ์สกุลเงินอย่าง “$”, ทำให้รูปแบบชื่อมาตรฐาน (เช่น “Mr. John Doe” → “John Doe”)
แปลงข้อมูลให้อยู่ในรูปแบบพร้อมใช้งาน (เช่น ตัวเลขสำหรับยอดซื้อ, จำนวนเต็มสำหรับอายุ)
ข้อความดิบ (Raw text):
“ลูกค้า John Doe อายุ 32 ปี ซื้อสินค้าเป็นมูลค่า $120 ติดต่อได้ที่ john.d@example.com”
ควรแปลงให้อยู่ในรูปแบบตารางดังนี้:
| Name | Age | Purchase | |
|---|---|---|---|
| John Doe | 32 | 120 | john.d@example.com |
“ลูกค้า John Doe อายุ 32 ปี ซื้อสินค้าเป็นมูลค่า $120 ติดต่อได้ที่ john.d@example.com”
“Jane Smith อายุ 28 ปี ทำการซื้อสินค้าเป็นมูลค่า $250 อีเมลของเธอคือ jane.s@example.com”
“Bob Lee อายุ 45 ปี ใช้จ่าย $90 สามารถติดต่อเขาได้ที่ bob.lee@example.com”
พิจารณาภาพด้านบน แล้วสร้างตารางข้อมูลเชิงโครงสร้าง (structured table) โดยจัดกลุ่มตัวละครตามคุณลักษณะที่สามารถระบุได้อย่างชัดเจน เราจะเลือกใช้ฟิลด์ (คอลัมน์) อะไรบ้าง? และจะดึงข้อมูลที่สอดคล้องกันของแต่ละตัวละครได้อย่างไร?
| Character Name | Movie/Series | Character Type | Gender | Species | Costume Color | Is Human (Yes/No) |
|---|
“ประเภทตัวละคร (Character Type)” อาจเป็น พระเอก (Hero), ตัวร้าย (Villain), ตัวประกอบ (Sidekick) เป็นต้น
“สายพันธุ์ (Species)” อาจประกอบด้วย มนุษย์ รถยนต์ สัตว์ หรือสัตว์ประหลาด เป็นต้น
“ภาพยนตร์/ซีรีส์ (Movie/Series)” ใช้เพื่อเชื่อมโยงตัวละครกับบริบท เช่น Toy Story, Cars, The Incredibles
คุณพบความท้าทายอะไรบ้างในการกำหนดค่าหรือระบุข้อมูลในแต่ละคอลัมน์?
มีตัวละครใดบ้างที่ไม่สามารถระบุได้ชัดเจนหรือมีความคลุมเครือหรือไม่?
หากต้องเตรียมข้อมูลนี้เพื่อใช้ในการทำ การจัดกลุ่ม (clustering) หรือ การจำแนกประเภท (classification) คุณจะปรับหรือเตรียมข้อมูลอย่างไร?
| Character Name | Movie/Series | Character Type | Gender | Species | Costume Color | Is Human |
|---|---|---|---|---|---|---|
| Lightning McQueen | Cars | Hero | Male | Car | Red | No |
| Mater | Cars | Sidekick | Male | Car | Brown | No |
| Buzz Lightyear | Toy Story | Hero | Male | Toy | White/Green | No |
| Woody | Toy Story | Hero | Male | Toy | Yellow/Brown | No |
| Mr. Incredible | The Incredibles | Hero | Male | Human | Red/Black | Yes |
| Elastigirl | The Incredibles | Hero | Female | Human | Red/Black | Yes |
| Mike Wazowski | Monsters, Inc. | Sidekick | Male | Monster | Green | No |
| Sulley | Monsters, Inc. | Hero | Male | Monster | Blue/Purple | No |
| Jessie | Toy Story | Hero | Female | Toy | Red/White | No |
| Jack Sparrow | Pirates of the Caribbean | Hero | Male | Human | Brown/Black | Yes |
สำหรับแต่ละ ภาพใน MNIST dataset (หรือภาพระดับเทา 28×28 พิกเซลใด ๆ) จำนวนตัวแปรหรือคุณลักษณะ (features) ที่ได้จะขึ้นอยู่กับวิธีการแทนค่าของภาพนั้น:
| Male character | Female character |
|---|---|
| 220 | 167 |
| 198 | 156 |
| 180 | 153 |
| 179 | 151 |
| 177 | |
| 176 | |
| 165 | |
| 164.5 | |
| 164 | |
| 162 | |
| 160 |
| gender | value |
|---|---|
| male | 220 |
| male | 198 |
| male | 180 |
| male | 179 |
| male | 177 |
| male | 176 |
| male | 165 |
| male | 164.5 |
| male | 164 |
| male | 162 |
| male | 160 |
| female | 167 |
| female | 156 |
| female | 153 |
| female | 151 |
เรียนการเขียนโปรแกรมเพื่อการวิเคราะห์ข้อมูลทางการเงิน (Learn Programming for Financial Data Analysis)
คุณสามารถดาวน์โหลดข้อมูลทางการเงินจาก Yahoo Finance ได้โดยใช้แพ็กเกจ quantmod ในภาษา R
หรือใช้ไลบรารี yfinance ในภาษา Python
ทั้งสองเครื่องมือนี้มีความสามารถสูงและใช้งานง่าย เหมาะสำหรับการวิเคราะห์อนุกรมเวลา (time-series analysis)
และการสร้างแบบจำลองทางการเงิน (financial modeling)
ตย. Google Chrome (Mac).
ขั้นตอนที่ 1: ไปที่เว็บไซต์ https://finance.yahoo.com/
ขั้นตอนที่ 2: พิมพ์ชื่อสินทรัพย์ที่ต้องการค้นหา (เช่น หุ้น ทองคำ หรือสกุลเงินดิจิทัล)
ขั้นตอนที่ 3: กดปุ่ม Enter หรือคลิกปุ่มค้นหาเพื่อดูข้อมูลของสินทรัพย์นั้น
ขั้นตอนที่ 4: เลือกเมนู Historical Data (ข้อมูลย้อนหลัง)
ขั้นตอนที่ 5: คลิกที่สัญลักษณ์ \(\vee\) เพื่อเปิดตัวเลือกเพิ่มเติม
ขั้นตอนที่ 6: เลือกช่วงเวลา (time range) ที่ต้องการดูข้อมูลย้อนหลัง
ขั้นตอนที่ 7: เปิดเมนู View → Developer → Inspect Elements
เพื่อเปิดเครื่องมือสำหรับนักพัฒนา (Developer Tools) และตรวจสอบโครงสร้างของหน้าเว็บ
ขั้นตอนที่ 8: คลิกที่คอลัมน์ Date (วันที่)
ขั้นตอนที่ 9: ที่แถบด้านขวาของหน้าจอ ให้ค้นหาโค้ด <table class="table">
ซึ่งเป็นส่วนที่เก็บข้อมูลตารางราคาทางการเงิน
ขั้นตอนที่ 7: คลิกขวา (Right-click) ที่บริเวณข้อมูลในหน้าเว็บ แล้วเลือก Inspect
ขั้นตอนที่ 8: กด ⌘+F (Command+F) แล้วพิมพ์คำค้นหา <table จากนั้นกด Enter เพื่อค้นหา
> (หากใช้ Windows ให้กด Ctrl+F)
ขั้นตอนที่ 9: คลิกขวา → เลือก Copy → Copy element
ขั้นตอนที่ 10: คลิกซ้ายที่บริเวณโค้ด แล้วเลือก Copy → Copy element
เพื่อคัดลอกส่วนของตาราง <table> ทั้งหมดที่แสดงข้อมูลทางการเงิน
ขั้นตอนที่ 11: เปิดโปรแกรม Excel แล้วกด ⌘+V (Command+V) เพื่อวางข้อมูลที่คัดลอกมา
(หากใช้ Windows ให้กด Ctrl+V)
กรุณารอประกาศรายละเอียดเพิ่มเติม
ข้อมูลธุรกรรม vs ข้อมูลเชิงโครงสร้าง (Transaction Data vs Structural Data)
| ประเภท | คำอธิบาย | รูปแบบตัวอย่าง |
|---|---|---|
| ข้อมูลธุรกรรม (Transaction Data) | ข้อมูลดิบที่บันทึกเหตุการณ์หรือรายการแต่ละครั้ง | แต่ละแถว = 1 ธุรกรรม |
| ข้อมูลเชิงโครงสร้าง (Structural Data) | ข้อมูลที่ถูกแปลงให้อยู่ในรูปแบบโครงสร้างเพื่อการวิเคราะห์ | แถว = หน่วยข้อมูล, คอลัมน์ = ตัวแปร |
สมมติว่ามีข้อมูลธุรกรรมดิบจากร้านขายของชำดังนี้:
| CustomerID | Product | Quantity | Date |
|---|---|---|---|
| C001 | Apple | 2 | 2025-06-01 |
| C001 | Banana | 1 | 2025-06-01 |
| C002 | Apple | 3 | 2025-06-02 |
| C002 | Orange | 2 | 2025-06-02 |
| CustomerID | Apple | Banana | Orange |
|---|---|---|---|
| C001 | 2 | 1 | 0 |
| C002 | 3 | 0 | 2 |
แต่ละแถวแทน ลูกค้าแต่ละราย (customer)
แต่ละคอลัมน์แทน สินค้าแต่ละชนิด (product)
ค่าในตารางคือ ปริมาณรวมของสินค้าที่ซื้อ (total quantity purchased)
ข้อมูลลักษณะนี้มักเรียกว่า pivot table, cross-tab,
หรือ wide format
เครื่องมือที่สามารถใช้ได้ (Tools You Can Use)
ใน Excel: ใช้ PivotTable
ใน R: ใช้ฟังก์ชัน pivot_wider() จากแพ็กเกจ tidyr
ใน Python (pandas): ใช้ .pivot_table() หรือ .groupby() + .unstack()
ข้อมูลธุรกรรมสามารถคัดลอกไปยังโปรแกรม Excel และสรุปผลได้โดยใช้ PivotTable
เพื่อจัดรูปแบบให้อยู่ในลักษณะข้อมูลเชิงโครงสร้างพร้อมสำหรับการวิเคราะห์ต่อไป
ข้อมูลเครือข่าย (Network Data) หรือ ข้อมูลแบบกราฟ (Graph Data)
เป็นข้อมูลที่แสดงถึงความสัมพันธ์ (edges) ระหว่างหน่วยหรือสิ่งต่าง ๆ (nodes)
ตัวอย่างการใช้งาน:
เครือข่ายสังคมออนไลน์ (ใครติดตามใคร)
การเชื่อมโยงระหว่างเว็บไซต์ (Web links)
การค้าระหว่างประเทศ (Trade flows)
เครือข่ายการอ้างอิงทางวิชาการ (Citation networks)
🧾 Example of Network (Edge List) Data
Structural Data (Adjacency Matrix)