O objetivo da K-Means é reduzir a variação dentro do cluster e, como calcula os centróides como o ponto médio de um cluster, é necessário usar a distância euclidiana para convergir adequadamente. Portanto, se você quiser usar absolutamente o K-Means, precisará garantir que seus dados funcionem bem com eles.
Representação
O K-Means e o clustering em geral tentam particionar os dados em grupos significativos, garantindo que as instâncias nos mesmos clusters sejam semelhantes entre si. Portanto, você precisa de uma boa maneira de representar seus dados para poder calcular facilmente uma medida de similaridade significativa.
Usar a codificação one-hot em variáveis categóricas é uma boa idéia quando as categorias são equidistantes uma da outra. Por exemplo, se você tiver a cor azul claro, azul escuro e amarelo, o uso da codificação de um ponto quente poderá não fornecer os melhores resultados, pois o azul escuro e o azul claro provavelmente estarão "mais próximos" do que o amarelo.
Caso o valor categórico não seja "equidistante" e possa ser ordenado, você também poderá atribuir às categorias um valor numérico. Por exemplo, criança, adolescente, adulto, poderia ser representada como 0, 1 e 2. Isso faria sentido porque um adolescente está "mais próximo" de ser criança do que um adulto.
K-Medoids
Uma abordagem mais genérica para o K-Means é o K-Medoids. O K-Medoids funciona da mesma forma que o K-Means, mas a principal diferença é que o centróide de cada cluster é definido como o ponto que reduz a soma das distâncias dentro do cluster. A imposição disso permite que você use qualquer medida de distância desejada e, portanto, você pode criar sua própria medida personalizada que levará em conta quais categorias devem ser próximas ou não.