A seleção de recursos de Boruta (em R) leva em consideração a correlação entre variáveis?

8

Sou um pouco novato em R e seleção de recursos e tentei o pacote Boruta para selecionar (diminuir) meu número de variáveis ​​(n = 40). Eu pensei que esse método também levasse em conta a possível correlação entre variáveis, no entanto, duas (das 20 variáveis ​​selecionadas) são altamente correlacionadas e outras duas são completamente correlacionadas. Isso é normal? O método Boruta não deveria ter classificado um dos dois como sem importância?

Charlotte
fonte

Respostas:

10

..., duas (das 20 variáveis ​​selecionadas) estão altamente correlacionadas e outras duas estão completamente correlacionadas. Isso é normal? O método Boruta não deveria ter classificado um dos dois como sem importância?

Sim é normal. Boruta tende a encontrar todos os recursos relevantes para a variável de resposta . Rigorosamente falando, uma variável preditora é relevante para se e não forem condicionalmente independentes, dadas algumas outras variáveis ​​preditivas (ou nada, o que significaria simplesmente que e não são independentes).yxEuyxEuyxEuy

Considere este exemplo simples:

set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n) 

Você vê que , então é relevante para , porque e não são independentes. Você também vê que e não é independente de . A única variável não relevante para é , porque:y=x2+ruídox2yyx2x2=x1+ruídoyx2yx3

  • y e são independentesx3
  • y e são dadas condicionalmente independentex3x1
  • y e são independentemente independentes de condiçãox3(x1,x2)

Então Boruta encontra o resultado esperado:

> library(Boruta)
> Boruta(data.frame(x1,x2,x3), y)
Boruta performed 30 iterations in 2.395286 secs.
 2 attributes confirmed important: x1, x2.
 1 attributes confirmed unimportant: x3.

Existe uma alta correlação entre e , mas Boruta não se importa com isso:x1x2

> cor(x1,x2)
[1] 0.896883
Stéphane Laurent
fonte
7

Está na natureza do algoritmo. Vamos supor que temos dois recursos significativos e X 2 fortemente correlacionados.X1X2

No artigo http://arxiv.org/abs/1106.5112 (A seleção de todos os recursos relevantes usando a floresta aleatória, Miron B. Kursa, Witold R. Rudnicki), podemos fazer uma breve descrição do algoritmo boruta:

"Para lidar com esse problema, desenvolvemos um algoritmo que fornece critérios para a seleção de atributos importantes. O algoritmo surge do espírito da floresta aleatória - lidamos com problemas adicionando mais aleatoriedade ao sistema. A idéia essencial é muito simples: nós faça uma cópia aleatória do sistema, mescle a cópia com o original e construa o classificador para esse sistema estendido.Para avaliar a importância da variável no sistema original, a comparamos com a das variáveis ​​aleatórias.Apenas variáveis ​​cuja importância é maior do que o das variáveis ​​aleatórias são consideradas importantes ".

X1X2X1X2

X1X2X1X2X^1X^2X1X^2X1X2X2X^2X2

MaxBenChrist
fonte
Como você cria recursos aleatórios a partir de um determinado recurso
Milan Amrut Joshi 15/05
Se você estiver familiarizado com o Python / pandas.DataFrames, poderá encontrar uma solução aqui: stackoverflow.com/questions/15772009/…
MaxBenChrist
3

Sim é normal. O algoritmo Boruta lança atributos que não têm valor para o classificador, deixando o conjunto de atributos 'todo relevantes', que pode muito bem incluir os correlatos. Compare isso com o conjunto 'mínimo-ótimo' (que não deve conter correlatos).

Então, por que, então, alguém deve usar esse método para a seleção de recursos? Você pode achar útil esta citação do artigo original :

Encontrar todos os atributos relevantes, em vez de apenas os não redundantes, pode ser muito útil por si só. Em particular, isso é necessário quando se está interessado em entender mecanismos relacionados ao assunto de interesse, em vez de apenas construir um modelo preditivo de caixa preta.

Por exemplo, ao lidar com resultados de medições de expressão gênica no contexto de câncer, a identificação de todos os genes relacionados ao câncer é necessária para a compreensão completa do processo, enquanto um conjunto mínimo-ótimo de genes pode ser mais útil como marcadores genéticos.

Portanto, se seu objetivo principal é entender os elos causais entre os preditores e os resultados, considerando que apenas o conjunto ideal de variáveis ​​pode desviá-lo e você precisa estudar o conjunto totalmente relevante.

No entanto, se o que você procura é um modelo eficiente, é melhor usar o conjunto mínimo-ideal.

Óskar Halldórsson Holm
fonte