(defn knn-classifier [one kn D distance] (if (= (nrow D) 1) (last D) (let [k-nearest (map second (take kn (sort-by first (map #(vector (distance one %) %) D)))) klass (if (= kn 1) [(last (first k-nearest)) (last (first k-nearest))] (last (Transpose k-nearest))) classification (k-majority klass)] classification)))