Questão nº 25

Questão de Tecnologia da Informação · FCC TRT20 2024 (nº 25)

FCC2024Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

Considere o código em Python abaixo que será executado em condições ideais.

```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

iris = load_iris()
X = iris.data
y = iris.target

I

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Acurácia do modelo: {accuracy * 100:.2f}%")
```

Para que o programa divida o conjunto de dados em treino e teste na proporção de 80% treino e 20% teste, a lacuna I deve ser corretamente preenchida por:

Resposta comentada

Gabarito Alternativa A

A função `train_test_split` do Scikit-learn é uma ferramenta fundamental para dividir seus dados em um conjunto de treino (usado para o modelo aprender) e um conjunto de teste (usado para avaliar o quão bem o modelo generaliza para dados novos e não vistos).

(A) Correta: Esta alternativa utiliza a função `train_test_split` corretamente, passando as features `X` e os rótulos `y`. O parâmetro `test_size=0.2` indica que 20% dos dados serão usados para teste (consequentemente, 80% para treino), atendendo à proporção desejada. O `random_state=42` garante que a divisão seja a mesma toda vez que o código for executado, o que é crucial para a reprodutibilidade dos resultados. As variáveis de retorno (`X_train`, `X_test`, `y_train`, `y_test`) estão na ordem correta esperada pela função.
(B) Incorreta: A principal armadilha aqui é o nome da função: `test_train_split` está incorreto. O nome correto da função é `train_test_split`. Embora `train_size=0.8` seja uma forma válida de especificar a proporção, o erro no nome da função impede a execução.
(C) Incorreta: Esta alternativa contém duas falhas. Primeiro, o uso de `random_state(42)` está incorreto; `random_state` deve receber um valor inteiro diretamente (ex: `random_state=42`), não uma chamada de função. Segundo, as variáveis `x` (minúscula) não correspondem à variável `X` (maiúscula) definida no código original, o que causaria um erro de "variável não definida" em Python, que é case-sensitive.
(D) Incorreta: A ordem das variáveis de retorno está incorreta. A função `train_test_split` sempre retorna na ordem `X_train, X_test, y_train, y_test`. Aqui, `Y_train, Y_test` vêm antes de `x_train, x_test`, o que atribuiria os dados de features aos rótulos e vice-versa. Além disso, as variáveis de entrada `Y` e `x` não correspondem às definidas (`X` e `y`).
(E) Incorreta: Esta alternativa combina múltiplos erros já vistos. O nome da função `test_train_split` está incorreto, o uso de `random_state(0)` está incorreto (deve ser `random_state=0`), e as variáveis `x` e `y` (minúsculas) não correspondem às definidas (`X` e `y`).

Fonte: FCC TRT20 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 003). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho