การทำเหมืองข้อมูล (Data Mining) 322475 การทำเหมืองข้อมูล (Data Mining) บทที่ 5: การเรียนรู้เชิงอินแสตนท์ (Instance-Based Learning) สอนโดย ผศ.ดร.วรารัตน์ สงฆ์แป้น(รุ่งวรวุฒิ) ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์มหาวิทยาลัยขอนแก่น
Lazy & Eager Learning Lazy learning (e.g., Instance-based learning): เป็นการ เรียนรู้อย่างง่ายโดยใช้การสำรวจชุดข้อมูลสอนคร่าวๆ และรอจนกระทั่งถึง เวลาทดสอบจึงจำแนกประเภทข้อมูล Eager learning (e.g. Decision trees): ใช้เวลาในการเรียนรู้จาก ชุดข้อมูลสอนก่อนเป็นเวลานาน แต่หลังจากที่ทำการเรียนรู้เรียบร้อยแล้ว สามารถนำชุดทดสอบจำแนกประเภทได้เวลาอันรวดเร็ว Eager Survey before Lazy Desktop Its very similar to a Desktop!!
Lazy Learner: Instance-Based Methods k-nearest neighbor การหาประเภทของข้อมูลโดยให้การวัดการระยะห่างที่เรียกว่า Euclidean Distance Locally weighted regression หาสมการเชิงเส้นตัดเพื่อวัดจุดใกล้เคียง
ขั้นตอนวิธีสำหรับ k-Nearest Neighbor (k-NN) Key idea: มีข้อมูลชุดการสอน (Training data) ให้เขียนอยู่ในรูป <xi, f(xi)> เช่น f(x) x1 x2 Humidity temperature Run 30 25 + 48 40 - 80 64 28 50 60 <x1, x2, f(x)> ตัวอย่างเช่น <30, 25, +>
ขั้นตอนวิธีสำหรับ k-Nearest Neighbor (k-NN) Discrete-valued หมายถึง ค่าป้ายบอกฉลากเป็นที่แบ่งประเภทชัดเจน เช่น วิ่ง หรือ ไม่วิ่ง ใช่ หรือ ไม่ใช่ เป็นต้น ดังนั้นหาชุด xq, ที่ใกล้เคียงที่สุดสำหรับชุดข้อมูลสอนมาเป็นตัวประมาณค่าสำหรับ xn Real-valued หมายถึง ค่าป้ายบอกฉลากเป็นตัวเลขทศนิยม เช่น การพยากรณ์ ปริมาณน้ำฝน อุณหภูมิ เป็นต้น
ตัวอย่าง ในการตัดสินผลไม้ที่ไม่เคยเห็นนั่นคือ แอปเปิ้ล นั่นคือเลือกพิจารณาภาพผลไม้จำนวน K ที่ใกล้เคียงมากที่สุด ดังนั้น การจำแนกประเภทผลไม้ที่ไม่ทราบจะใช้จำนวนผลโวตของผลไม้แต่ละประเภทว่าคือ แอปเปิ้ล
ตัวอย่าง ถ้า k=5, นั่นหมายถึงเลือกภาพผลไม้ 5 ภาพที่ใกล้เคียงมากที่สุด เพื่อบ่งบอกประเภทของต้นไม้ที่ต้องการแบ่งกลุ่ม ดังนั้นจากภาพจะเห็นได้ว่า ผลไม้ทั้ง 5 ภาพส่วนใหญ่เป็นภาพของ แอปเปิ้ล ดังนั้นจึงตอบผลไม้นี้ว่า เป็นแอบเปิ้ล
Nearest Neighbor Example: Run Outside (+) or Inside (-) Noisy data Not linearly separable 100 ? - - ? - Decision tree boundary (not very good...) Humidity ? - ? + - ? ? - + - - + + ? + + - 100 Temperature
Voronoi diagram . _ _ . _ _ + . . + . _ xq + . _ +
ตัวอย่าง: K-Nearest Neighbor กับ Voronoi (Discrete-valued) k=1 1-NN classifies xq as + k=5 5-NN classifies xq as − (real-valued target function)
เมื่อไหร่ถึงจะใช้ k-Nearest Neighbor มี Attribute น้อยว่า 20 ตัว มีข้อมูลชุดการสอน (Training data) เป็นจำนวนมาก ข้อดี สอน (training) เร็วมาก สามารถเรียนรู้กับฟังก์ชันที่ซับซ้อนได้ ไม่สูญเสียข้อมูลอื่น ข้อเสีย ช้าเวลาจำแนกประเภทข้อมูล จะโง่เมื่อมีการคิด attribute ที่ไม่เกี่ยวข้อง
การกำหนดตัวแปร K ไม่ควรเลือก K เล็กเกินไป เพราะจะทำให้เบี่ยงเบนสูง เพราะฉะนั้นการเลือกค่า K ขึ้นอยู่กับข้อมูล ต้องมีการปรับค่าการประเมิน เช่น Cross-validation ระยะทางที่ใช้วัด คือ ถ้า x ประกอบไปด้วย Attribute <a1(x), a2(x), …, an(x)> ดังนั้น ar(x) ดังกล่าว จึงแทนด้วยค่าในด้วย x ค่าระยะทางที่ใช้ เรียกว่า Euclidean Distance
x = <humidity, temperature> Euclidean Distance Discrete values Humidity temperature Run 30 25 + 48 40 - 80 64 28 50 60 x = <humidity, temperature> New instance xq = <40, 30, run=?? > We can run inside(+) or outside (-) 1-NN (x1) Answer run inside(+) 2-NN (x1,x4) 3-NN (x1,x2,x4) Answer run inside (+) 4-NN (x1,x2,x4,x5) 5-NN Answer run inside(-)
Euclidean Distance Real values Humidity temperature Rainfall 30 25 5.1 48 40 15.5 80 64 20.2 28 3.2 50 60 12.0 1-NN (x1) Rainfall = 5.1 2-NN (x1,x4) Rainfall = (5.1+3.2)/2 = 4.15 3-NN (x1,x2,x4) Rainfall = (5.1+15.5+3.2)/3 = 7.9 4-NN (x1,x2,x4,x5) Rainfall = (5.1+15.5+3.2+12.0)/4 = 8.95 5-NN (x1,x2,x3, x4,x5) Rainfall = (5.1+15.5+3.2+20.2+12.0)/5 = 11.2 x = <humidity, temperature> New instance xq = <40, 30, Rainfall =?? >
Distance-Weighted kNN (แบบละเอียด) ถ้าต้องการให้มีการประมาณค่าได้รายละเอียดมากขึ้น ดังนั้นจึงต้องคำนวณ ค่าน้ำหนักสำหรับการแบ่งประเภท ดังต่อไปนี้
x = <humidity, temperature> ตัวอย่าง: Humidity temperature Run 30 25 1 48 40 80 64 28 50 60 x = <humidity, temperature> New instance xq = <40, 30> We can run inside(+) or outside (-) , by k=3
Locally Weighted Regression แนวความคิด: มาจาก k-NN ที่ค้นหาการประมาณค่าโดยใช้พื้นที่ใกล้เคียงในการ ประมาณ ทำไมต้องอยู่ในรูปการใช้สมการเชิงเส้น เพราะ ลดค่า error ในการกำหนดค่า K ลดค่า error สำหรับการให้ค่าน้ำหนักสำหรับการหา distance
Locally Weighted Regression Local linear function: f^(x)=β0+ β1a1(x)+…+ βnan(x) Error criterions:
Locally Weighted Regression f1 (simple regression) Locally-weighted regression (f2) Locally-weighted regression (f4) ข้อมูลสอน (Training data) ใช้ทำนายโดยใช้สมการเชิงเส้นอย่างง่าย (Predicted value using simple regression) ใช้ทำนายโดยใช้สมการเชิงเส้นแบบแบ่งส่วน ( Predicted value using locally weighted (piece-wise) regression)