You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

27 lines
538 B

package main
func euclideanDist(img1, img2 [][]float64) float64 {
var dist float64
for i := 0; i < len(img1); i++ {
for j := 0; j < len(img1[i]); j++ {
dist += (img1[i][j] - img2[i][j]) * (img1[i][j] - img2[i][j])
}
}
return dist
}
func knn(dataset Dataset, input [][]float64) string {
d := euclideanDist(dataset["leopard"][0], input)
label := "lamp"
for k, v := range dataset {
for i := 0; i < len(v); i++ {
dNew := euclideanDist(v[i], input)
if dNew < d {
d = dNew
label = k
}
}
}
return label
}