Muitos algoritmos de aprendizado aprendem um único peso por recurso ou usam distâncias entre amostras. O primeiro é o caso de modelos lineares, como a regressão logística, que são fáceis de explicar.
Suponha que você tenha um conjunto de dados com apenas um único recurso categórico "nacionalidade", com os valores "Reino Unido", "Francês" e "EUA". Suponha, sem perda de generalidade, que eles sejam codificados como 0, 1 e 2. Você terá um peso w para esse recurso em um classificador linear, que tomará algum tipo de decisão com base na restrição w × x + b> 0 , ou equivalentemente w × x <b.
O problema agora é que o peso w não pode codificar uma opção de três vias. Os três valores possíveis de w × x são 0, w e 2 × w. Todos esses três levam à mesma decisão (são todos <b ou ≥b) ou "UK" e "French" levam à mesma decisão, ou "French" e "US" tomam a mesma decisão. Não há possibilidade do modelo aprender que "UK" e "US" devem receber o mesmo rótulo, com "French" o ímpar.
Com a codificação one-hot, você efetivamente aumenta o espaço de recursos para três recursos, cada um com seu próprio peso, de modo que a função de decisão agora é w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, onde todos os x são booleanos. Nesse espaço, essa função linear pode expressar qualquer soma / disjunção das possibilidades (por exemplo, "Reino Unido ou EUA", que pode ser um preditor para alguém que fala inglês).
Da mesma forma, qualquer aluno com base em métricas de distância padrão (como k-vizinhos mais próximos) entre amostras ficará confuso sem a codificação one-hot. Com a codificação ingênua e a distância euclidiana, a distância entre francês e EUA é 1. A distância entre EUA e Reino Unido é 2. Mas com a codificação one-hot, as distâncias em pares entre [1, 0, 0], [0, 1 , 0] e [0, 0, 1] são todos iguais a √2.
Isso não é verdade para todos os algoritmos de aprendizado; as árvores de decisão e os modelos derivados, como florestas aleatórias, se forem profundos o suficiente, podem lidar com variáveis categóricas sem a codificação one-hot.
Em relação ao aumento dos recursos ao fazer a codificação one-hot, pode-se usar hash de recursos. Ao fazer o hash, você pode especificar que o número de buckets seja muito menor que o número dos recursos recém-introduzidos.
fonte
Quando você deseja prever categorias, deseja prever itens de um conjunto. Não usar a codificação one-hot é semelhante a permitir que as categorias tenham categorias vizinhas (por exemplo: se você fez uma regressão com os números inteiros das categorias) organizadas de uma certa maneira e em uma determinada ordem.
Agora, o que acontece se você atribuir a categoria 0 a 0, categoria 1 a 1 e categoria 2 a 2 sem a codificação one-hot, e que a previsão do seu algoritmo não tem certeza se deve escolher 0 ou 2: ele deve prever 1, apesar de ele acha que é 0 ou 2?
Você vê para onde vai. O mesmo vale para as entradas de dados: se elas não deveriam ser vizinhas, não as mostre ao seu algoritmo como vizinhas.
fonte