Professional Documents
Culture Documents
k-NN Algorithm
1. กําหนดให้ขอ้ มูลฝึ กสอน 𝓣 = {([𝟏 𝟐], 𝟑), ([𝟐 𝟒], 𝟔), ([𝟑 𝟔], 𝟗), ([𝟒 𝟖], 𝟏𝟐) }
ให้คาํ นวณค่า 𝒚3(𝐱★) เมื;อ 𝐱★ = [2.8 6] โดยใช้ k−NN Regressor ที; k = 1 และ k = 2
𝓣 = {𝒙𝒊, 𝒚𝒊}𝒎 𝒊"𝟏 = {([𝟏 𝟐], 𝟑), ([𝟐 𝟒], 𝟔), ([𝟑 𝟔], 𝟗), ([𝟒 𝟖], 𝟏𝟐) }
เช่น ตัวอย่างข้อมูลชุดที; 1 (𝐱𝟏 , 𝑦𝟏 ) = ([𝟏 𝟐], 𝟑)
ประกอบด้วย input 𝐱𝟏 = [𝟏 𝟐], และ output 𝑦𝟏 = 𝟑
• ตัวอย่างแต่ละชุดมีตวั แปร (variables) หรื อ features ทัGงหมด 2 ตัว (n = 2)
• ข้อมูลทดสอบ (Test input) = 𝐱★ = [2.8 6]
• โจทย์คาํ นวณค่า 𝒚3(𝐱★) เมื;อ 𝐱★ = [2.8 6] โดยใช้ k−NN Regressor ที; k = 1 และ k = 2
• ใช้ Regressor ในการคํานวณหา 𝒚3(𝐱★) ดังนัGน จึงเป็ นปั ญหา k-NN แบบ regression
วิธีทาํ
a. คํานวณหา Euclidean Distance ‖𝐱i − 𝐱 ★‖% ระหว่างข้อมูลทดสอบ (𝐱 ★) และ examples ทุกตัวใน
ข้อมูลฝึ กสอน (i = 1, …, 4)
หากทําตาม Algorithm ต้องหา set 𝓝 จากตาราง “order by distance” เมื;อ k = 1 โดยให้เลือก i (เลข
ลําดับของ example ที;มี distance น้อยที;สุด) มา 1 ตัว (k = 1) จะได้
𝓝 = {𝟑}
หากทําตาม Algorithm ต้องหา set 𝓝 จากตาราง “order by distance” เมื;อ k = 2 โดยให้เลือก i (เลข
ลําดับของ example ที;มี distance น้อยที;สุด) มา 2 ตัว (k = 2) จะได้
𝓝 = {𝟑, 𝟐}
𝒚 "𝒚 𝟗"𝟔
ดังนัGน 𝒚
"(𝐱★) = 𝒚
"([𝟐. 𝟖 𝟔]) = 𝟑 𝟐 =
𝟐 𝟐
= 𝟕. 𝟓
2. กําหนดให้ขอ้ มูลฝึ กสอน
𝓣 = {([0 100], Red), ([0.4 300],0), ([0.6 400],1), ([1.4 800],1), ([2.0 1100], 1) }
เนื$องจาก output 𝑦𝟏 ของตัวอย่ างที$ 1 ใน Training data เป็ นข้ อมูลทีไ$ ม่ ถูกต้ อง ดังนั<นการบ้ านในข้ อนีจ< งึ มี
แนวทางในการทํา 2 รู ปแบบดังนี<
1. คงค่ า output 𝑦𝟏 ไว้ โดยไม่ ต้องทําการแก้ ไขใดๆ
2. ทําการ cleansing ข้ อมูลโดยแก้ ไข output 𝑦𝟏 ให้ ถูกต้ อง
,-.
𝑥ij − minℓ(𝑥ℓj)
𝑥*+ = , for all j = 1, … n, and i = 1, … m
m𝑎𝑥ℓ(𝑥ℓj) − minℓ(𝑥ℓj)
,-.
𝑥)% =
)001)00
=0 ,-.
300 − 100 ,-.
𝑥2% =
3001)00
= 0.3
)000 𝑥%% = = 0.2 )000
1000
,-.
𝑥3% =
4001)00
= 0.7 ,-.
1100 − 100
)000 𝑥5% = = 1.0
1000
i 𝑥! 𝑥" 𝑥"#$% y
,-.
1 0 100 𝑥)% = 0.0 Red
,-.
2 0.4 300 𝑥%% = 0.2 0
,-.
3 0.6 400 𝑥2% = 0.3 1
,-.
4 1.4 800 𝑥3% = 0.7 1
,-.
5 2.0 1100 𝑥5% = 1.0 1
ดังนัGนจะได้ 𝑥 ,-.
★
=[0.35 0.25]
𝓝 = {𝟐}
ดังนัGน 𝒚
"(𝐱★) = 𝒚
"([𝟎. 𝟑𝟓 𝟑𝟓𝟎])
= Majourity vote {𝒚𝟐 , 𝒚𝟑 , 𝒚𝟏 }
= Majourity vote {0, 1, Red}
(𝐱𝟐 , 𝑦𝟐 )
(𝐱𝟏 , 𝑦𝟏 = red = 0)
,-.
𝑥ij − minℓ(𝑥ℓj)
𝑥*+ = , for all j = 1, … n, and i = 1, … m
m𝑎𝑥ℓ(𝑥ℓj) − minℓ(𝑥ℓj)
,-.
𝑥)% =
)001)00
=0 ,-.
300 − 100 ,-.
𝑥2% =
3001)00
= 0.3
)000 𝑥%% = = 0.2 )000
1000
,-.
𝑥3% =
4001)00
= 0.7 ,-.
1100 − 100
)000 𝑥5% = = 1.0
1000
i 𝑥! 𝑥" 𝑥"#$% y
,-.
1 0 100 𝑥)% = 0.0 0
,-.
2 0.4 300 𝑥%% = 0.2 0
,-.
3 0.6 400 𝑥2% = 0.3 1
,-.
4 1.4 800 𝑥3% = 0.7 1
,-.
5 2.0 1100 𝑥5% = 1.0 1
a. คํานวณหา Euclidean Distance ‖𝐱i − 𝐱 ★‖% ระหว่างข้อมูลทดสอบ (X) และ examples ทุกตัวใน
ข้อมูลฝึ กสอน (i = 1, …, 5) โดยที; 𝐱 ★ = [0.35 350]
ทัGงนีG ต้องทําการ normalize ข้อมูล testing input 𝐱 ★ ด้วย คํานวณเฉพาะ feature ที; 2 => 𝑥 ,-. =
★2
250 1)00
)000
= 0.25
ดังนัGนจะได้ 𝑥 ,-.
★
=[0.35 0.25]
𝓝 = {𝟐}
ดังนัGน 𝒚
"(𝐱★) = 𝒚
"([𝟎. 𝟑𝟓 𝟑𝟓𝟎])
= Majourity vote {𝒚𝟐 , 𝒚𝟑 , 𝒚𝟏 }
= Majourity vote {0, 1, 0}
เนื$องจาก คําตอบ 0 มีจาํ นวน 2 ตัว และคําตอบ 1 มีแค่ 1 ตัว ดังนั0น เมื$อใช้ Majority vote
จะได้คาํ ตอบ
ดังนัGน 𝒚
"(𝐱★) = 𝒚
"([𝟎. 𝟑𝟓 𝟑𝟓𝟎]) = 𝟎