Extends the simple k-nearest neighbors algorithm by incorporating numerous kernel functions and a variety of distance metrics. The package takes advantage of 'RcppArmadillo' to speed up the calculation of distances between observations.
The KernelKnn package extends the simple k-nearest neighbors algorithm by incorporating numerous kernel functions and a variety of distance metrics. The package takes advantage of 'RcppArmadillo' to speed up the calculation of distances between observations. More details on the functionality of KernelKnn can be found in the package Vignettes.
To install the package from CRAN use,
and to download the latest version from Github use the install_github function of the devtools package,
Use the following link to report bugs/issues,
I added the DARMA_64BIT_WORD flag in the Makevars file to allow the package processing big datasets
I modified the input_dist_mat function of the distance_metrics.cpp file due to a bug. I modified the distMat.KernelKnn function so that it does not return an error if the rows of the DIST_mat distance matrix is not equal to the length of y (added comments in the function documentation).
In this version the following functions/parameters were added:
I also modified the OpenMP clauses of the .cpp file to address the ASAN errors.
I removed OpenImageR and irlba as package dependencies. I also added an init.c file in the src folder due to a change in CRAN submissions for compiled code [ references : http://stackoverflow.com/questions/42313373/r-cmd-check-note-found-no-calls-to-r-registerroutines-r-usedynamicsymbols, https://github.com/RcppCore/Rcpp/issues/636 ]
I added a try-catch Rcpp function to make possible the calculation of singular covariance matrices as sugggested in https://github.com/mlampros/KernelKnn/issues/1
Reimplementation of the Rcpp function due to ASAN-memory-errors
I updated the Description file with a URL and a BugReports web-address.
Currently, Software platforms like OSX do not support openMP, thus I've made openMP optional for all cpp functions.