In general how do you set K in K-NN? As the title suggests, how should you set K in K-Nearest Neighbours?
Is it just a case of lower values of K are more susceptible to over-fitting and larger values of K are likely to give a more accurate reflection (less susceptible to noise).
Also the optimal value of K largely depends on the training set, but I was wondering whether there was a general 'technique' that is used?
 A: There are some interesting results relating the performance of $k-NN$ approaches to the optimal (Bayesian) decision process, discussion can be found in e.g. in Pattern Recognition and Neural Networks B.D. Ripley (1996), but they they are more of the form: if I know the $k-NN$ error rate, I can bound the optimal error rate.
In the end, I suspect that you'll end up doing cross-validation, for various $K$, on your training set, and pick the $K$ that minimizes the training error.
A: You can use the silhouette method to check the quality of your clusters.  Here is a link to another question where I laid out the basics of how the silhouette function in R works:
Assessing quality of clusters
After running a knn or any clustering algorithm (so long as there is an object in R that is the cluster the algo put the points into) you can then run a silhouette and check the quality of your clusters for many different numbers of clusters and pick the one with the best overall silhouette graphs.  
Here is another function in R which does cross validation of the knn algorithm.
http://stat.ethz.ch/R-manual/R-patched/library/class/html/knn.html
