In: Computer Science
Now, before going in depth of these algorithms the answer surely depends on the data in general is I have to choose I'll go with perceptron over 1-NN and K-NN if we have a optimal value of K but K=1 in almost all scenario isn't the best option
Now coming to the part where we have to tell which type of data each is suitable for
K- NN basically, take aug_max(K- nearest neighbour) so have a dependence on 'K' which is too small is useless and 'K' too huge then is biased towards the category giving more data.
But with right value of K we can go for that too.
Data for K-NN The simplicity of Algorithm gives it a huge advantage, it's computationally not the best option but we'll ignore that, so for a low dimensional data set we'll go for this algorithm, secondly for the categorical data and Boolean dataset the K-NN doesn't have any use of those, so if there are a lot of categorical and Boolean data then surely go for the Perceptron.
Data for Perceptron - For a Perceptron we can take it as a combination of multiple linear regressions now a single Perceptron is also not a lot helpful expect when the categories have distinguishable value windows like 0-20 is 'A' ,20-40 is 'B' and so on in that case, we have even one Perceptron helpful else if we have N possible category to classify and N- Perceptrons together can do a perfect job with unique weights of each factor for each Perceptron,( so we get like multiple lines breaking the entire plane of points into multiple sections if you like to visualise it)