FC ConcursosFC Concursos

Questão FC331249

Natasha, uma cientista de dados, está trabalhando com um conjunto de dados sobre carros para fazer um modelo preditivo para uma companhia de seguros. A primeira versão do modelo ut

Linguagens de Programação

FGV · 2022

Natasha, uma cientista de dados, está trabalhando com um conjunto de dados sobre carros para fazer um modelo preditivo para uma companhia de seguros. A primeira versão do modelo utiliza apenas informações básicas sobre os carros: a marca e a cor.

 

Como esses dados são categóricos, Natasha faz um pré-processamento usando a biblioteca scikit-learn. Em um ambiente interativo, ela executa os comandos a seguir.

 

>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder()
>>> X = [['Toyota', 'vermelho'], ['Toyota',
'verde'], ['BMW', 'vermelho']]

 

>>> enc.fit(X)
>>> enc.get_feature_names()
array(['x0_BMW', 'x0_Toyota', 'x1_verde', 'x1_vermelho'], dtype=object)

 

>>> X_prime = enc.transform(X).toarray()
>>> X_prime
array([[0., 1., 0., 1.], [0., 1., 1., 0.], [1., 0., 0., 1.]])


Para contar o número de carros da marca Toyota no conjunto de dados, obtendo corretamente o resultado 2, Natasha pode usar a seguinte linha de código:

  1. len([i for i in X if i == 'Toyota'])
  2. len([i for i in X_prime if i[0] == 1])
  3. sum([i for i in X if 'Toyota' in i])
  4. sum(X_prime)[1]
  5. sum(X_prime[:,0])
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O método OneHotEncoder transformou as categorias em colunas binárias. Pelo resultado de enc.get_feature_names() as colunas são: 'x0_BMW', 'x0_Toyota', 'x1_verde', 'x1_vermelho', ou seja, a coluna de índice 1 corresponde a Toyota.

Após X_prime = enc.transform(X).toarray() temos uma matriz one-hot com uma linha por carro e uma coluna por categoria. Somando as linhas obtém-se o total de ocorrências por coluna.

Ao aplicar sum(X_prime) (soma das linhas, produzindo a soma por coluna) resulta em algo como \( \text{sum}(X\_prime) = [1.,\,2.,\,1.,\,2.] \). Então sum(X_prime)[1] retorna o segundo elemento dessa soma, que é \(2\), o número de carros da marca Toyota.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo