snippetMinor
k-nearest neighbors (Euclidean distance): How to process multiple attributes?
Viewed 0 times
processnearestdistanceeuclideanattributesmultiplehowneighbors
Problem
Given this sample:
$$\begin{array}{|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \text{Class} \\ \hline
8 & 4 & A \\ \hline
4 & 5 & B \\ \hline
4 & 6 & B \\ \hline
7 & 7 & A \\ \hline
5 & 6 & B \\ \hline
6 & 5 & A \\ \hline
\end{array}$$
we then calculate each of Euclidean distance values to the row:
with
$$\begin{array}{|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \text{Square distance to query point P} \\ \hline
8 & 4 & (8 - 7)^2 + (4 - 4)^2 = 1 \\ \hline
4 & 5 & (4 - 7)^2 + (5 - 4)^2 = 10 \\ \hline
4 & 6 & (4 - 7)^2 + (6 - 4)^2 = 13 \\ \hline
7 & 7 & (7 - 7)^2 + (7 - 4)^2 = 9 \\ \hline
5 & 6 & (5 - 7)^2 + (6 - 4)^2 = 8 \\ \hline
6 & 5 & (6 - 7)^2 + (5 - 4)^2 = 2 \\ \hline
\end{array}$$
But what if each class has more than one attribute , for example:
$$\begin{array}{|c|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \color{red}{X3} & \text{Square distance to query point P} \\ \hline
8 & 4 & \color{red}{2} & (8 - 7)^2 + (4 - 4)^2 = 1 \\ \hline
4 & 5 & \color{red}{5} & (4 - 7)^2 + (5 - 4)^2 = 10 \\ \hline
4 & 6 & \color{red}{1} & (4 - 7)^2 + (6 - 4)^2 = 13 \\ \hline
7 & 7 & \color{red}{4} & (7 - 7)^2 + (7 - 4)^2 = 9 \\ \hline
5 & 6 & \color{red}{6} & (5 - 7)^2 + (6 - 4)^2 = 8 \\ \hline
6 & 5 & \color{red}{2} & (6 - 7)^2 + (5 - 4)^2 = 2 \\ \hline
\end{array}$$
How to calculate the Euclidean distance in this case?
$$\begin{array}{|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \text{Class} \\ \hline
8 & 4 & A \\ \hline
4 & 5 & B \\ \hline
4 & 6 & B \\ \hline
7 & 7 & A \\ \hline
5 & 6 & B \\ \hline
6 & 5 & A \\ \hline
\end{array}$$
we then calculate each of Euclidean distance values to the row:
with
P = (7, 4)$$\begin{array}{|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \text{Square distance to query point P} \\ \hline
8 & 4 & (8 - 7)^2 + (4 - 4)^2 = 1 \\ \hline
4 & 5 & (4 - 7)^2 + (5 - 4)^2 = 10 \\ \hline
4 & 6 & (4 - 7)^2 + (6 - 4)^2 = 13 \\ \hline
7 & 7 & (7 - 7)^2 + (7 - 4)^2 = 9 \\ \hline
5 & 6 & (5 - 7)^2 + (6 - 4)^2 = 8 \\ \hline
6 & 5 & (6 - 7)^2 + (5 - 4)^2 = 2 \\ \hline
\end{array}$$
But what if each class has more than one attribute , for example:
$$\begin{array}{|c|c|c|c|} \hline
X1 & X2 (Kg/m^2) & \color{red}{X3} & \text{Square distance to query point P} \\ \hline
8 & 4 & \color{red}{2} & (8 - 7)^2 + (4 - 4)^2 = 1 \\ \hline
4 & 5 & \color{red}{5} & (4 - 7)^2 + (5 - 4)^2 = 10 \\ \hline
4 & 6 & \color{red}{1} & (4 - 7)^2 + (6 - 4)^2 = 13 \\ \hline
7 & 7 & \color{red}{4} & (7 - 7)^2 + (7 - 4)^2 = 9 \\ \hline
5 & 6 & \color{red}{6} & (5 - 7)^2 + (6 - 4)^2 = 8 \\ \hline
6 & 5 & \color{red}{2} & (6 - 7)^2 + (5 - 4)^2 = 2 \\ \hline
\end{array}$$
How to calculate the Euclidean distance in this case?
Solution
Straight from definition:
$\sqrt{(q_1-p_1)^2 + (q_2-p_2)^2 + \cdots + (q_n-p_n)^2}$
In your particular case $n = 3$, so the query should also be 3D (e.g. {7, 4, 3}.
$\sqrt{(q_1-p_1)^2 + (q_2-p_2)^2 + (q_3-p_3)^2}$
So plugging in the third dimension:
$$\begin{array}{|c|c|c|l|} \hline
X1 & X2 (Kg/m^2) & X3 & \text{Square distance to query point {7, 4, 3}} \\ \hline
8 & 4 & 2 & (8 - 7)^2 + (4 - 4)^2 + (2 - 3)^2= 2 \\ \hline
4 & 5 & 5 & (4 - 7)^2 + (5 - 4)^2 + (5 - 3)^2= 14 \\ \hline
4 & 6 & 1 & (4 - 7)^2 + (6 - 4)^2 + (1 - 3)^2= 17 \\ \hline
7 & 7 & 4 & (7 - 7)^2 + (7 - 4)^2 + (4 - 3)^2= 10 \\ \hline
5 & 6 & 6 & (5 - 7)^2 + (6 - 4)^2 + (6 - 3)^2= 17 \\ \hline
6 & 5 & 2 & (6 - 7)^2 + (5 - 4)^2 + (2 - 3)^2= 3 \\ \hline
\end{array}$$
$\sqrt{(q_1-p_1)^2 + (q_2-p_2)^2 + \cdots + (q_n-p_n)^2}$
In your particular case $n = 3$, so the query should also be 3D (e.g. {7, 4, 3}.
$\sqrt{(q_1-p_1)^2 + (q_2-p_2)^2 + (q_3-p_3)^2}$
So plugging in the third dimension:
$$\begin{array}{|c|c|c|l|} \hline
X1 & X2 (Kg/m^2) & X3 & \text{Square distance to query point {7, 4, 3}} \\ \hline
8 & 4 & 2 & (8 - 7)^2 + (4 - 4)^2 + (2 - 3)^2= 2 \\ \hline
4 & 5 & 5 & (4 - 7)^2 + (5 - 4)^2 + (5 - 3)^2= 14 \\ \hline
4 & 6 & 1 & (4 - 7)^2 + (6 - 4)^2 + (1 - 3)^2= 17 \\ \hline
7 & 7 & 4 & (7 - 7)^2 + (7 - 4)^2 + (4 - 3)^2= 10 \\ \hline
5 & 6 & 6 & (5 - 7)^2 + (6 - 4)^2 + (6 - 3)^2= 17 \\ \hline
6 & 5 & 2 & (6 - 7)^2 + (5 - 4)^2 + (2 - 3)^2= 3 \\ \hline
\end{array}$$
Context
StackExchange Computer Science Q#64188, answer score: 3
Revisions (0)
No revisions yet.