Por que a engenharia de recursos funciona?

20

Recentemente, aprendi que uma das maneiras de encontrar melhores soluções para problemas de ML é através da criação de recursos. Pode-se fazer isso, por exemplo, somando dois recursos.

Por exemplo, possuímos dois recursos "ataque" e "defesa" de algum tipo de herói. Em seguida, criamos um recurso adicional chamado "total", que é uma soma de "ataque" e "defesa". Agora, o que me parece estranho é que mesmo "ataques" e "defesas" difíceis estão quase perfeitamente correlacionados com "total", ainda obtemos informações úteis.

Qual é a matemática por trás disso? Ou eu estou raciocinando errado?

Além disso, isso não é um problema, para classificadores como kNN, que "total" será sempre maior que "ataque" ou "defesa"? Assim, mesmo após a padronização, teremos características que contêm valores de diferentes faixas?

MrKadek750
fonte
A prática de somar dois recursos certamente não representa "engenharia de recursos" em geral.
Xji

Respostas:

21

Você questiona o título e o conteúdo parece incompatível comigo. Se você estiver usando o modelo linear, adicione um recurso total, além de ataque e defesa que pioram as coisas.

Primeiro, eu responderia por que o trabalho de engenharia de recursos em geral.

Uma imagem vale mais que mil palavras. Esta figura pode fornecer algumas informações sobre a engenharia de recursos e por que ela funciona ( fonte da imagem ):

insira a descrição da imagem aqui

  • Os dados nas coordenadas cartesianas são mais complicados e é relativamente difícil escrever uma regra / construir um modelo para classificar dois tipos.

  • Os dados nas coordenadas polares são muito fáceis: podemos escrever uma regra simples em para classificar dois tipos.r

Isso nos diz que a representação dos dados importa muito. Em determinado espaço, é muito mais fácil executar determinadas tarefas do que outros espaços.

Aqui eu respondo a pergunta mencionada no seu exemplo (total em ataque e defesa)

De fato, a engenharia de recursos mencionada nesta soma de exemplo de ataque e defesa não funcionará bem para muitos modelos, como o modelo linear, e causará alguns problemas. Consulte Multicolinearidade . Por outro lado, essa engenharia de recursos pode funcionar em outros modelos, como árvore de decisão / floresta aleatória. Consulte a resposta de @ Imran para obter detalhes.

Portanto, a resposta é que, dependendo do modelo usado, alguma engenharia de recursos ajudará em alguns modelos, mas não em outros modelos.

Haitao Du
fonte
A soma não precisa ser colinear com os adendos. Veja, por exemplo, minha resposta.
Kodiologist
15

O tipo de modelo que estamos usando pode não ser muito eficiente para aprender certas combinações de recursos existentes.

ad0 0uma+d<0 01uma+d0 0

Como as árvores de decisão só podem se dividir ao longo de eixos de recursos individuais, nosso modelo acabará tentando construir uma escada para ajustar uma linha, que será mais ou menos assim:

insira a descrição da imagem aqui

Como você pode ver, isso não generaliza perfeitamente para novos dados. Podemos ter círculos acima da verdadeira linha de decisão que estão sob nosso limite de decisão e vice-versa para cruzamentos.

No entanto, se adicionarmos a+dcomo um recurso, o problema se tornará trivial para uma árvore de decisão. Ele pode ignorar o indivíduo ae os drecursos e resolver o problema com um único a+d<0tronco de decisão.

insira a descrição da imagem aqui

uma+d

Em resumo, certos recursos adicionais podem ajudar, dependendo do tipo de modelo que você está usando, e você deve ter cuidado ao considerar os dados e o modelo ao projetar os recursos.

Imran
fonte
1
Este é exatamente o ponto. A escolha dos recursos e a escolha do modelo devem ser consideradas em conjunto. É uma armadilha comum tentar raciocinar sobre a seleção de recursos sem considerar o tipo de modelo que está sendo usado.
Imran
1
Por exemplo, se você tentasse a mesma coisa com regressão linear ae dbastasse, a adição a+dcomo um recurso não faria diferença.
28417 Imran
Atualizei minha resposta para tornar isso mais explícito.
28417 Imran
1
Além disso, a divisão na linha diagonal requer uma divisão. A escada que você desenhou "consome" sete divisões.
Acumulação
3

totaltotalattackdefenseattackdefensetotalattacktotaldefense17

Além disso, isso não é um problema, para classificadores como kNN, que "total" será sempre maior que "ataque" ou "defesa"? Assim, mesmo após a padronização, teremos características que contêm valores de diferentes faixas?

Se você deseja padronizar seus preditores, deve fazê-lo depois que todos forem construídos.

Kodiologist
fonte
1
isso é mesmo verdade? Certamente, em um modelo linear simples, não é: a matriz [attack, defense, total]é, naturalmente, a classificação 2. Eu poderia imaginar que algo como um modelo linear penalizado poderia fazer a diferença, mas isso é baseado na intuição e não em trabalhar completamente com ela. Você pode explicar por que, se attacke defensenão está fortemente correlacionado total(o que acontece quando attacke defenseestá fortemente correlacionado negativamente), por que totalpode ser útil?
Cliff AB
1
@CliffAB Em retrospectiva, fiquei um pouco simplista aqui. Eu estava certo ao dizer que um recurso construído pode ser útil quando não está fortemente correlacionado com outros preditores, e que totalnão precisa estar fortemente correlacionado com attackou defense, mas você nunca usaria dois preditores e sua soma no mesmo modelo, devido ao linear dependência, implica uma forte correlação entre cerca de dois dos três.
Kodiologist
1

Para dar uma resposta geral, a engenharia de recursos, na maioria dos casos, consiste em extrair recursos significativos dos seus dados; portanto, se você fornecer mais informações ao seu modelo, obviamente ele deverá se comportar melhor. Digamos que seus dados consistam em endereços de email no formato '[email protected]'. Se você as usasse como estão em seu modelo, cada pessoa seria caracterizada por um e-mail exclusivo; portanto, isso não nos diria muito. Nos diria apenas que um e-mail possivelmente pertence a uma pessoa diferente e outro. Com a engenharia de recursos, a partir desses endereços, você pode extrair informações sobre possível sexo (nome), origem familiar e etnia (sobrenome), nacionalidade (domínio) e muito mais - fornece praticamente informações, não é?

Tim
fonte
1

O que você está tentando realizar com o total de "recursos" ? Se você está apenas comparando heróis, ataque e defesa podem ser mais úteis. Se você achar que o tipo de construção (como ofensivamente orientado versus defensivo) é útil, talvez ataque / defesa seja mais útil. Ou talvez o MyAttack - YourDefense seja mais útil.

Realmente depende do seu objetivo e tudo se resume a você injetando conhecimentos adicionais no problema, para que você possa obter melhores respostas. Você pode ter ouvido pessoas analisando log e ao quadrado e proporções e todos os tipos de maneiras de criar recursos, mas a conclusão é que "útil" depende da tarefa em questão e envolve transformar os dados que você possui em um domínio em que as decisões são tomadas. mais simples.

Wayne
fonte