Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void KnnAccuracy(const arma::mat& dataset,const arma::Row<size_t>& labels, size_t k)
- {
- arma::Row<size_t> uniqueLabels = arma::unique(labels);
- arma::Mat<size_t> neighbors;
- arma::mat distances;
- neighbor::KNN knn;
- knn.Train(dataset);
- knn.Search(k, neighbors, distances);
- //Keep count.
- double count = 0.0;
- for (size_t i = 0; i < dataset.n_cols; i++)
- {
- arma::Row<size_t> Map;
- Map.zeros(uniqueLabels.n_cols);
- for (size_t j=0; j < k; j++)
- Map(labels(neighbors(j,i)))++;
- arma::vec ind = arma::conv_to<arma::vec>::from(arma::find(Map == arma::max(Map)));
- if (ind(0) == labels(i))
- count++;
- }
- std::cout << "Accuracy : " << (count / dataset.n_cols) * 100 << std::endl;
- }
Add Comment
Please, Sign In to add comment