Imagem de fundo

Considere os dois trechos de código a seguir, ambos escritos na Linguagem R. O primeiro...

Considere os dois trechos de código a seguir, ambos escritos na Linguagem R. O primeiro utiliza o pacote tidyverse, enquanto o segundo utiliza caret para o mesmo propósito.


Código 1(tidyverse):


library(tidyverse)


set.seed(123)

dados <- tibble(

X1 = rnorm(100),

X2 = rnorm(100),

Y = sample(c("A", "B"), 100, replace = TRUE)

)


dados_treino <- dados %>% sample_frac(0.7)

dados_teste <- anti_join(dados, dados_treino)


Código2(caret):

library(caret)


set.seed(123)

dados <- data.frame(

X1 = rnorm(100),

X2 = rnorm(100),

Y = sample(c("A", "B"), 100, replace = TRUE)

)


indices <- createDataPartition(dados$Y, p = 0.7,

list = FALSE)

dados_treino <- dados[indices, ]

dados_teste <- dados[-indices, ]


Em relação aos códigos apresentados, assinale a alternativa correta.


A

Ambos os códigos garantem que a proporção da variável de saída seja mantida na divisão entre treino e teste, evitando possíveis desbalanceamentos.


B

O primeiro código seleciona uma parte dos dados de maneira totalmente aleatória, sem se preocupar com a distribuição da variável de saída, enquanto o segundo código faz a divisão garantindo que as proporções da variável de saída sejam mantidas nos dois conjuntos.


C

Os dois códigos realizam a divisão dos dados utilizando a mesma estratégia, sem diferenças na forma como as observações são separadas entre treino e teste.


D

O primeiro código apresenta uma inconsistência na forma como o conjunto de teste é gerado, podendo resultar na seleção de observações duplicadas ou na omissão de algumas delas.


E

O segundo código realiza uma divisão aleatória simples, sem nenhuma preocupação com a distribuição da variável de saída entre os conjuntos de treino e teste.