question: public Instances pruneToK ( Instances neighbours , double [ ] distances , int k ) { if ( neighbours == null || distances == null || neighbours . numInstances ( ) == 0 ) { return null ; } if ( k < 1 ) { k = 1 ; } int currentK = 0 ; double currentDist ; for ( int i = 0 ; i < neighbours . numInstances ( ) ; i ++ ) { currentK ++ ; currentDist = distances [ i ] ; if ( currentK > k && currentDist != distances [ i - 1 ] ) { currentK -- ; neighbours = new Instances ( neighbours , 0 , currentK ) ; break ; } } return neighbours ; }
target:  Prunes the list to contain the k nearest neighbors. If there are multiple neighbors at the k'th distance, all will be kept.