Eles servem a propósitos diferentes.
O KNN não é supervisionado, a Decision Tree (DT) é supervisionada. (O KNN é um aprendizado supervisionado, enquanto o K-means não é supervisionado, acho que essa resposta causa alguma confusão. ) O KNN é usado para agrupamento, o DT para classificação ( ambos são usados para classificação ) .
O KNN determina bairros, portanto, deve haver uma métrica de distância. Isso implica que todos os recursos devem ser numéricos. As métricas de distância podem ser efetuadas por escalas variadas entre atributos e também pelo espaço de alta dimensão.
A DT, por outro lado, prevê uma classe para um determinado vetor de entrada. Os atributos podem ser numéricos ou nominais.
Portanto, se você quiser encontrar exemplos semelhantes, use o KNN. Se você quiser classificar exemplos, poderá usar o DT.