Aprendizado de máquina com dados categóricos e contínuos

9

Esta questão poderia ir aqui ou no SO, talvez ...

Suponha que seu conjunto de dados de treinamento contenha dados categóricos e contínuos, como esta configuração:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

E a variável dependente a ser prevista é o custo anual do veterinário. Estou um pouco confuso quanto às técnicas específicas disponíveis para lidar com esse conjunto de dados. Quais são os métodos comumente usados ​​para lidar com conjuntos de dados que são uma mistura de dados contínuos e categóricos?

reptilicus
fonte

Respostas:

8

Para cada classe (raça, gênero ...) de atributos categóricos, você pode adicionar um número de componentes ao seu vetor de característica igual ao número de valores possíveis nessa classe. Em seguida, se um ponto de dados tiver o i-ésimo valor, defina o i-ésimo desses componentes como 1 e o restante desse atributo como 0.

No seu exemplo, por sexo, você adicionaria dois novos componentes ao seu vetor de recurso. Se o animal for do sexo masculino, você definiria o primeiro como 1 e o segundo como 0 e vice-versa se o animal for do sexo feminino. Para animais, se suas possibilidades fossem gato, cachorro e peixe, você faria o mesmo com três componentes.

Eles coexistiriam lado a lado com os atributos contínuos. Você pode ajustar a magnitude do "valor do indicador" (o valor que você usa quando um atributo está "ligado") para que seja comparável às magnitudes dos valores contínuos que você está usando.

Se você escolher essa maneira de resolver seu problema, o próximo passo seria escolher um algoritmo como uma máquina de vetores de suporte e alimentá-lo como seu vetor de recursos. Obviamente, algumas abordagens como as Árvores de Decisão não precisariam da etapa mencionada acima para começar.

DJLamar
fonte
11
Legal, ótimas dicas! E a possível situação nos dados de teste em que a raça nunca apareceu nos dados de treinamento? Por exemplo, se havia um poodle nos dados de teste, mas não nos dados de treinamento? O melhor caminho a seguir teria zeros para todos os componentes do vetor de raça?
Reptilicus
2
De fato, a abordagem oposta (conhecida como discretização de dados) geralmente é a melhor escolha para métodos hierárquicos (como algoritmos de árvore de decisão). A discretização de dados também é uma técnica de pré-processamento de dados (conforme mencionado na outra resposta).
rvcoutinho 16/01
2

Você deve dar uma olhada no pré-processamento de dados . É anterior a qualquer técnica de aprendizado de máquina. Aqui está uma boa introdução (encontrada no Google).

Em relação às técnicas, existem muitas abordagens diferentes . Provavelmente você pode usar a maioria deles após pré-processar seus dados. Você deve experimentá-los e escolher o que melhor se adapta às suas necessidades.

rvcoutinho
fonte