E aí, Juliano.
Tudo certo?
Um algoritmo não supervisionado está associado à não existência de uma variável objetivo específica dentro do conjunto de dados. Por exemplo, se nesse caso dos produtos, você quisesse saber como organizá-los nas prateleiras pra serem mais vendidos, ou pra quais clientes recomendar cada produto. Do meu ponto de vista, se você tem uma coluna de preço e quer obter informações sobre o preço dos produtos, estamos falando de aprendizado supervisionado e aqui a discussão pode se dividir em um número bem grande de possibilidades.
Como são, fora o nome do produto, só 4 colunas com variáveis binárias, temos apenas 8 grupos possíveis para classificar os produtos. Uma boa forma de saber se o produto está caro ou barato com relação aos outros produtos do grupo é ver se o valor dele está perto ou longe da mediana dos preços dos produtos do grupo ao qual ele pertence.
Se o problema começa a ter muito mais variáveis, esse tipo de abordagem começa a ficar mais complicado e nós podemos partir para um problema de regressão para que o modelo estime quanto um produto com determinadas características deveria custar com base nos outros produtos similares no dataframe e com essa informação de qual custo o modelo acha que o produto deveria ter, podemos ver se o preço que ele de fato tem está muito acima ou muito abaixo.
Com certeza tem um montão de outras alternativas, mas acho que essas duas sejam simples o suficiente pra começar.
Espero ter ajudado.
Abraço.