ผลต่างระหว่างรุ่นของ "01204435/haskell2"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 42: แถว 42:
  
 
== ทำนาย ==
 
== ทำนาย ==
 +
 +
1. เขียนฟังก์ชัน
 +
 +
predict :: Vector -> Vector -> Int
 +
 +
ที่รับเวกเตอร์ w และ x จากนั้นคืนผลการทำนาย (เป็น 1 หรือ -1)
 +
 +
ตัวอย่าง
 +
 +
*Main> predict (1,-1) (1,0)
 +
1
 +
*Main> predict (1,-1) (1,-1)
 +
1
 +
*Main> predict (1,-1) (0,1)
 +
-1
 +
*Main> predict (1,-1) (-1,1)
 +
-1
 +
 +
2. เขียนฟังก์ชัน
 +
 +
predictAll :: Vector -> [Vector] -> [Int]
 +
 +
ที่รับ w และ list xs จากนั้นทำนายข้อมูลทุกตัวใน xs  ให้ลองเขียนด้วยฟังก์ชัน map
 +
 +
ตัวอย่าง
 +
 +
*Main> predictAll (1,-1) [(1,0), (1,-1), (0,1), (-1,1)]
 +
[1,1,-1,-1]
  
 
== ฝึกสอนด้วย perceptron algorithm ==
 
== ฝึกสอนด้วย perceptron algorithm ==
  
 
== I/O ==
 
== I/O ==

รุ่นแก้ไขเมื่อ 08:49, 4 กรกฎาคม 2556

เราจะอิมพลีเมนท์ Perceptron algorithm แบบง่าย (ข้อมูลมี 2 มิติ) บน Haskell

เราจะนิยามชนิดข้อมูล Vector เพื่อความสะดวกต่อไป

type Vector = (Double, Double)

ฟังก์ชันเกี่ยวกับเวกเตอร์

จริง ๆ แล้ว Haskell มีไลบรารีเกี่ยวกับเวกเตอร์ (ดู [1]) แต่เราจะเขียนเองเพื่อความง่ายและสะดวก

ด้านล่างเป็น type ของฟังก์ชัน dot (คำนวณ dot product), addVector และ negVector และตัวอย่าง

dot :: Vector -> Vector -> Double

ตัวอย่างฟังก์ชัน dot

*Main> dot (1,0) (1,0)
1.0
*Main> dot (1,0) (0,1)
0.0
*Main> dot (1,0.5) (0,1)
0.5
*Main> dot (1,0.5) (-1,2)
0.0
addVector :: Vector -> Vector

ตัวอย่างฟังก์ชัน addVector

*Main> addVector (1,2) (3,-4)
(4,-2)
negVector :: Vector -> Vector -> Vector

ตัวอย่างฟังก์ชัน negVector

*Main> negVector (10,-5)
(-10,5)

ทำนาย

1. เขียนฟังก์ชัน

predict :: Vector -> Vector -> Int

ที่รับเวกเตอร์ w และ x จากนั้นคืนผลการทำนาย (เป็น 1 หรือ -1)

ตัวอย่าง

*Main> predict (1,-1) (1,0)
1
*Main> predict (1,-1) (1,-1)
1
*Main> predict (1,-1) (0,1)
-1
*Main> predict (1,-1) (-1,1)
-1

2. เขียนฟังก์ชัน

predictAll :: Vector -> [Vector] -> [Int]

ที่รับ w และ list xs จากนั้นทำนายข้อมูลทุกตัวใน xs ให้ลองเขียนด้วยฟังก์ชัน map

ตัวอย่าง

*Main> predictAll (1,-1) [(1,0), (1,-1), (0,1), (-1,1)]
[1,1,-1,-1]

ฝึกสอนด้วย perceptron algorithm

I/O