improve knn with validation