Essa é uma boa prática de engenharia de recursos?


10

Tenho uma pergunta prática sobre engenharia de recursos ... digamos que quero prever os preços das casas usando regressão logística e usei vários recursos, incluindo CEP. Então, ao verificar a importância do recurso, percebo que o zip é um recurso muito bom, então decidi adicionar mais alguns recursos baseados no zip - por exemplo, vou ao departamento do censo e obtenho a renda média, população, número de escolas e número de hospitais de cada zip. Com esses quatro novos recursos, acho o desempenho do modelo melhor agora. Então, adiciono ainda mais recursos relacionados a zip ... E esse ciclo continua e continua. Eventualmente, o modelo será dominado por esses recursos relacionados a zip, certo?

Minhas perguntas:

  1. Faz sentido fazer isso em primeiro lugar?
  2. Se sim, como sei quando é um bom momento para parar este ciclo?
  3. Se não, por que não?

Respostas:


6

Se você pode continuar adicionando novos dados (com base em um conceito principal, como área, por exemplo, o CEP) e o desempenho do seu modelo melhorar, é claro que é permitido ... supondo que você se preocupe apenas com o resultado final.

Existem métricas que tentarão guiá-lo com isso, como o Critério de informação de Akaike (AIC) ou o Critério de informação bayesiano comparável (BIC). Eles ajudam a escolher um modelo com base em seu desempenho, sendo punidos por todos os parâmetros adicionais introduzidos e que devem ser estimados. A AIC fica assim:

AIC=2k2ln(L^)

onde é o número de parâmetros a serem estimados, ou seja, número de recursos que você aplica, porque cada um terá um coeficiente na sua regressão logística. é o valor máximo da Máxima Verossimilhança (equivalente à pontuação ideal). O BIC simplesmente usa um pouco diferente para punir os modelos.L kkL^k

Esses critérios podem ajudá-lo a dizer quando parar, pois você pode experimentar modelos com mais e mais parâmetros e simplesmente escolher o modelo que possui o melhor valor de AIC ou BIC.

Se você ainda tiver outros recursos no modelo, que não estão relacionados ao ZIP, eles poderão ficar sobrecarregados - isso depende do modelo usado. No entanto, eles também podem explicar coisas sobre o conjunto de dados que simplesmente não podem estar contidas nas informações do CEP, como a área útil de uma casa (assumindo que isso seja relativamente independente do CEP).

Nesse caso, você pode compará-las a algo como Análise de componentes principais, onde uma coleção de recursos explica uma dimensão da variação no conjunto de dados, enquanto outros recursos explicam outra dimensão. Portanto, não importa quantos recursos relacionados ao ZIP você tenha, você nunca poderá explicar a importância da área do piso.


7

1) Sim, faz sentido. Tentar criar recursos manualmente ajudará os alunos (ou seja, modelos) a obter mais informações a partir dos dados brutos, porque os dados brutos nem sempre estão em um formato adequado ao aprendizado, mas você sempre pode construir recursos a partir deles. O recurso que você está adicionando é baseado em um recurso. Isso é comum. No entanto, seu aluno, a regressão logística, é sensível à multicolinearidade. Você precisa ter cuidado com qual recurso e quantos recursos adicionar. Caso contrário, o seu modelo pode se ajustar demais.

2) Como você está usando uma regressão logística, sempre pode usar o AIC ou executar um teste de significância estatística, como teste do qui-quadrado (testando a qualidade do ajuste) antes de adicionar nova estrutura, para decidir se a distribuição da resposta é realmente diferente com e sem essa estrutura. Isso é particularmente útil quando seus dados são escassos. Outra maneira é adicionar termo de penalidade ao seu modelo. Por exemplo, regressão logística do laço.

3) Continue adicionando novos recursos nem sempre é uma boa ideia. Tenha cuidado com a maldição da alta dimensionalidade. Ao adicionar um novo recurso, você está realmente adicionando uma nova dimensão aos seus dados. Ingenuamente, pode-se pensar que reunir mais recursos nunca é demais, pois, na pior das hipóteses, eles não fornecem novas informações sobre a classe. Mas, de fato, seus benefícios podem ser superados pela maldição da dimensionalidade. Espero que informações úteis sobre a sessão de aprendizado de máquina6 possam ajudar.


@ User3768495 está avaliando o desempenho do modelo fora da amostra usando, por exemplo, validação cruzada? Nesse caso, a multicolinearidade não deve ser um problema e ele não deve se preocupar com o ajuste excessivo, pois ele receberá uma indicação de ajuste excessivo devido à diminuição do desempenho da validação.
rinspy

@rinspy overfitting tem muitas faces. Envolver um conjunto de validação pode ajudar a evitar o ajuste excessivo, mas não pode resolver o problema. Por exemplo, a distribuição inconsistente entre os dados de treinamento (que são divididos em conjunto de treinamento e conjunto de validação) e a população real. Mesmo o modelo tem bom desempenho nos dados de treinamento, pode não ser generalizado para a situação do mundo real. A referência da minha resposta também falou sobre o ajuste excessivo.
Fansly

É verdade, mas evitar a multicolinearidade não ajudará com o excesso de ajustes decorrentes de mudanças covariáveis. Estou apenas dizendo que a multicolinearidade provavelmente não é um problema se ele estiver interessado em construir um modelo preditivo (e não descritivo).
rinspy

Meu conceito sobre ajuste excessivo é quando um modelo falha em generalizar para um novo conjunto de dados, não dentro dos dados de treinamento. Por favor, veja isto
Fansly

4

Geralmente, quanto mais ricos os recursos, melhor.

Um aspecto a ter em mente, no entanto, as regressões, em geral, não funcionam bem com dados altamente correlacionados (multicolinearidade). Quando você expande seus recursos dessa maneira, é algo que você deve ter em mente.

Há muita informação sobre esse mesmo tópico (e possíveis maneiras de mitigar), apenas a regressão do Google e a multicolinearidade.

Em resumo,

  1. Sim. Definitivamente.
  2. @ n1k31t4 tem algumas boas sugestões. Sinta-se à vontade para gerar quais recursos você acha que melhorarão seu modelo e, em seguida, você pode usar técnicas como PCA e outras técnicas de seleção de recursos para se limitar ao que é importante.
  3. A outra coisa a considerar é como é prático como esforço versus resultado.

0

Recursos são as informações do seu modelo. Quanto mais informações, melhor será capaz de executar e prever. Quanto menor, mais difícil de prever valores. Portanto, o curto naser é sim. Sempre vale a pena ter tantos recursos quanto possível. Há sempre um limite para isso, uma vez que uma sobrecarga de informações também pode queimar seu processador, portanto, tenha cuidado com quantos recursos estão sendo projetados. Além disso, recursos desnecessários são adicionados apenas ao burnout, portanto, é sempre uma boa prática limpar determinados recursos. Toda a fase de pré-processamento de dados é sobre isso.

A primeira resposta tem alguns bons detalhes sobre isso. No que diz respeito à interrupção de um ciclo, existem várias medidas e fatores que você precisa conhecer para verificar onde seu modelo parou de ter um desempenho melhor e são medidas como o RMSE. Um exemplo simples será usar xgboostregressão em seus dados e especificar o número de ciclos. Execute o modelo e você obterá o RMSE para cada ciclo. Ele diminuirá para um limite após o qual você poderá deduzir que o modelo atingiu o platô após um certo ciclo. É assim que o ajuste e a otimização do modelo funcionam.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.