Mathcenter Forum  

Go Back   Mathcenter Forum > คณิตศาสตร์ทั่วไป > ปัญหาคณิตศาสตร์ทั่วไป
สมัครสมาชิก คู่มือการใช้ รายชื่อสมาชิก ปฏิทิน ข้อความวันนี้

ตั้งหัวข้อใหม่ Reply
 
เครื่องมือของหัวข้อ ค้นหาในหัวข้อนี้
  #1  
Old 01 สิงหาคม 2001, 03:02
<nut>
 
ข้อความ: n/a
Post การหาตัวแทนกลุ่มข้อมูล

ผมมีข้อมูลอยู่ 2 ชุด (แกนx ,แกน y) ผมต้องการหาตัวแทนของกลุ่มข้อมูลนี้โดยมีค่าผิดพลาดน้อยที่สุด (ปกติจะหาmean) เนื่องจากว่าข้อมูลในแกน y มีค่าที่แตกต่างกันมากๆ เช่น 1 กับ 100 เราพอมีวิธีแก้ไขได้หรือเปล่าครับ
ตอบพร้อมอ้างอิงข้อความนี้
  #2  
Old 01 สิงหาคม 2001, 09:01
TOP's Avatar
TOP TOP ไม่อยู่ในระบบ
ผู้พิทักษ์กฎขั้นสูง
 
วันที่สมัครสมาชิก: 27 มีนาคม 2001
ข้อความ: 1,003
TOP is on a distinguished road
Unhappy

ลองใช้ Least Square Error หรือยังละ
สมมติว่า (m,n) คือตัวแทนของข้อมูลที่เราต้องการ จะได้ว่า
Error(m,n) = sum[[d( (x,y) - (m,n) )]^2]
โดยที่ d( (x,y) - (m,n) ) เป็นการวัดระยะของข้อมูล (x,y) ใดๆ กับ (m,n) ซึ่งเป็นตัวแทนของข้อมูลที่เราต้องการ
ในกรณีที่ใช้เป็น Euclidean Distance จะได้ว่า d( (x,y) - (m,n) ) = sqrt((x - m)^2 + (y - n)^2) แต่ถ้าความสำคัญของข้อมูลใน แกน x และ y ไม่เท่ากัน อาจใช้วิธีการถ่วงน้ำหนักของแต่ละแกนไม่เท่ากัน เป็น sqrt(a*(x - m)^2 + b* (y - n)^2)
ดังนั้นค่า (m,n) ที่เราต้องการจึงทำให้ได้ค่า Error(m,n) ที่น้อยที่สุด หรือ d(Error(m,n))/d(m,n) = 0 นั่นเอง

เอาคอนเซ็ปต์คร่าวๆไปก่อนแล้วกัน สำหรับตัวอย่างการนำไปใช้งาน ที่พอจะเป็นแนวทางในการหาตัวแทนของข้อมูลได้ลองดูจาก 2 บทความนี้
ซูโดอินเวอร์ส
สมการของนิวตัน เอาไว้ใช้หา Local Minimum
__________________
The difference between school and life?
In school, you're taught a lesson and then given a test.
In life, you're given a test that teaches you a lesson.
ตอบพร้อมอ้างอิงข้อความนี้
  #3  
Old 13 สิงหาคม 2001, 23:37
<nong>
 
ข้อความ: n/a
Post

ผมขอตัวอย่าง ที่ใกล้เพิ่มเติมด้วยนะครับ เอาแบบชัดๆ เลยนะครับ ขอบคุณครับ
ตอบพร้อมอ้างอิงข้อความนี้
  #4  
Old 16 สิงหาคม 2001, 12:42
TOP's Avatar
TOP TOP ไม่อยู่ในระบบ
ผู้พิทักษ์กฎขั้นสูง
 
วันที่สมัครสมาชิก: 27 มีนาคม 2001
ข้อความ: 1,003
TOP is on a distinguished road
Post

คงจะไม่ยกตัวอย่าง ในกรณี 2 มิติให้หรอกนะ มันยาวเกินไป และจะได้เอาไปคิดกันเองต่ออีกทีด้วย

สมมติในกรณี 1 มิติละกัน เช่นสมมติว่า มีข้อมูลคือ {0 ,101 , 103} และเราต้องการหาตัวแทนของ กลุ่มข้อมูลนี้ ทีนี้เราก็ต้องตีความว่า ค่าผิดพลาดน้อยที่สุด วัดกันยังไง เช่น ถ้าเราสมมติว่า ตัวแทนของกลุ่มข้อมูลคือ m ค่าผิดพลาดของตัวแทน m นี้มีค่าเท่าไร ?
  • ถ้าเรากำหนด การวัดความผิดพลาดโดยอาศัย d(m,x) = |m - x| ก็จะได้ค่าผิดพลาดของตัวแทน m เป็น Error(m) = S3n=1d(m,xn) = (m - 0) + (101 - m) + (103 - m) = 204 - m (ในกรณีนี้สมมติว่า 0 m 101)

    d(Error(m))/dm = - 1 แสดงว่าไม่มีค่าต่ำสุดสัมพัทธ์ แต่มีค่าต่ำสุดสัมบูรณ์ โดยจะได้ค่า Error(m)min = 103 เมื่อ m = 101 ในทำนองเดียวกันเมื่อตรวจสอบในช่วง 101 m 103 ก็จะได้ค่า Error(m)min = 103 เมื่อ m = 101 เช่นกัน \ เราจะได้ตัวแทนของ กลุ่มข้อมูลนี้คือ 101
  • ถ้าเรากำหนด การวัดความผิดพลาดโดยอาศัย d(m,x) = (m - x)2 ก็จะได้ค่าผิดพลาดของตัวแทน m เป็น Error(m) = S3n=1d(m,xn) = m2 + (m - 101)2 + (m - 103)2 จะได้ d(Error(m))/dm = 2m + 2(m - 101) + 2(m - 103) = 6m - 204 \ที่ค่า m = 204 / 6 = 34 จะได้ Error(m)min = 10406 เราจึงได้ตัวแทนของ กลุ่มข้อมูลนี้คือ 34

ในกรณีที่ d(m,x) มีความซับซ้อนหรือไม่อยากนั่ง derive สมการเอง ก็อาจใช้วิธี สุ่มค่า m ขึ้นมา 1 ค่า จากนั้นก็หาค่า (d(m+dm,x) - d(m,x) )/dm ว่าเป็นบวกหรือลบ
  • ถ้าได้ค่าเป็นบวกแสดงว่า บริเวณนั้นเป็นฟังก์ชันเพิ่ม ดังนั้นเราจึงแก้ไขค่า m ใหม่ให้มีค่าน้อยลง
  • ถ้าได้ค่าเป็นลบแสดงว่า บริเวณนั้นเป็นฟังก์ชันลด ดังนั้นเราจึงแก้ไขค่า m ใหม่ให้มีค่าเพิ่มขึ้น
ทำการวนซ้ำเช่นนี้ไปเรื่อยๆ จนค่า (d(m+dm,x) - d(m,x) )/dm อยู่ในระดับที่เราพอใจ(เช่นเป็น 10-10) ก็จะได้ local minimum ค่าหนึ่งของฟังก์ชัน Error(m) ออกมา แต่เนื่องจากเราไม่แน่ใจว่า Error(m) มี local minimum มากกว่า 1 ตำแหน่งมั้ย ก็ทดลองสุ่มค่า m ในตอนเริ่มต้นหลายๆค่า กระจายกันไป แล้วดูว่า ทั้งหมดได้ค่า m สุดท้ายเป็นค่าเดียวกันรึเปล่า ถ้าใช่ก็ใช้ค่านั้น แต่ถ้าไม่ใช่ ก็เลือกค่า m ที่ทำให้ได้ Error(m)min
__________________
The difference between school and life?
In school, you're taught a lesson and then given a test.
In life, you're given a test that teaches you a lesson.

16 สิงหาคม 2001 12:46 : ข้อความนี้ถูกแก้ไขแล้ว 1 ครั้ง, ครั้งล่าสุดโดยคุณ TOP
ตอบพร้อมอ้างอิงข้อความนี้
ตั้งหัวข้อใหม่ Reply



กฎการส่งข้อความ
คุณ ไม่สามารถ ตั้งหัวข้อใหม่ได้
คุณ ไม่สามารถ ตอบหัวข้อได้
คุณ ไม่สามารถ แนบไฟล์และเอกสารได้
คุณ ไม่สามารถ แก้ไขข้อความของคุณเองได้

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
ทางลัดสู่ห้อง


เวลาที่แสดงทั้งหมด เป็นเวลาที่ประเทศไทย (GMT +7) ขณะนี้เป็นเวลา 02:40


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Modified by Jetsada Karnpracha