A melhor maneira de fazer isso varia enormemente, dependendo da tarefa que você está realizando, por isso é impossível dizer o que será melhor de maneira independente da tarefa.
Há duas coisas fáceis de tentar se seus níveis são ordinais:
- Bin eles. Por exemplo, 0 = (0 250), 1 = (251 500) etc. Você pode selecionar os limites para que cada compartimento possua um número igual de itens.
- Você também pode realizar uma transformação de log dos níveis. Isso reduzirá o alcance.
Se os níveis não forem ordinais, você poderá agrupar os níveis com base em outros recursos / variáveis em seu conjunto de dados e substituir os IDs do cluster pelos níveis anteriores. Existem tantas maneiras de fazer isso quanto os algoritmos de cluster, portanto, o campo está aberto. Enquanto eu leio, é isso que combine.levels()
está fazendo. Você poderia fazer o mesmo usando kmeans()
ou prcomp()
. (Você pode / deve treinar posteriormente um classificador para prever os clusters para novos pontos de dados.)