Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Padronização variáveis binárias

Na aula é apresentado:

scaler = StandardScaler()
generos_escalados = scaler.fit_transform(generos)

Porém, temos que as variáveis generos são binárias. Na documentação deixa claro que padronizar é subtrair da média e dividir pelo desvio padrão (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html)

No entanto, faz sentido padronizar uma variável binária? Qual literatura dá suporte a isso?

Pesquisei e não vi um consenso sobre, alguns dizem que não faz sentido e outros dizem que pode, mas não aconselham.

Além disso, o uso do K-Means para variáveis categóricas não está coerente, visto que a noção de distância fica deturpada. Correto?

3 respostas

Olá Judecir, tudo bem?

Vamos por partes. Algumas variaveis parecem categóricas mas podem ser interpretadas de outra forma - com informação latente que pode não ser visivel a olho nu.

Por exemplo, estados, cidades são categóricas, mas existe distância entre elas, a distancia natural (fisica, latitutde longitude), a distancia de tamanho de populacao, e outras distancias.

Então a questão é aplicar alguma transformação que faca sentido.

Por exemplo, se temos uma variável de cores (Vermelho, Azul e Verde), esta é uma variável categórica e existem distâncias naturais no espectro de luz, mas esta informação talvez possa não fazer sentido para o que se deseja mapear.

Já no caso de variáveis categóricas binárias, distância original de x1=0 e x2=1 é 1. Para alguns algoritmos, como o K-Means, escala influencia as decisões. Portanto nesses algoritmos você vai querer reescalar as variáveis para a mesma escala. Quando escalamos os dados, tentamos colocar os possíveis valores que aquela observação pode ter. Isto é, centralizamos e reescalamos os dados em volta desse valor central.

Oi, Yuri. Tudo bem contigo?

Quando você diz "... podem ser interpretadas de outra forma" então refere-se a outra variável totalmente diferente. Por exemplo, uma cidade transforma-se em variável binária, então apenas marca se aquela observação é ou não aquela cidade. Porém, não faz muito sentido dizer que existe uma distância entre uma observação ser Fortaleza e ser São Paulo. Quando se muda a perspectiva para distância, então muda-se a variável.

De qualquer modo, as bibliografias e comentários que vi, em maioria, não recomendam o K-Means para variáveis categóricas. Recomendam o hierárquico ou o K-Modes. Se tiver e puder me passar eu agradeço.

Abraços

solução

Opa Judecir, tudo certo

Quando olhamos algumas discussões, como essa no quora: https://www.quora.com/Why-does-K-means-clustering-perform-poorly-on-categorical-data-The-weakness-of-the-K-means-method-is-that-it-is-applicable-only-when-the-mean-is-defined-one-needs-to-specify-K-in-advance-and-it-is-unable-to-handle-noisy-data-and-outliers

Algumas pessoas sugerem o reescalar as variáveis numéricas, mas é como você falou, algumas dizem que sim, outras dizem que não.

Existem também alguns papers sobre o assunto caso queira dar uma olhada: http://www.cs.ust.hk/~qyang/Teaching/537/Papers/huang98extensions.pdf