Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2026

ProgramaçãoLinguagens de programação
Código
fg125972
Banca
FGV
Órgão
AL-GO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo - Analista de Ciência de Dados
Janaina, uma analista da ALEGO, desenvolveu o programa Python (versão 3) que utiliza as bibliotecas numpy (2.0.2) e scikit-learn (versão 1.6.1) para realizar uma análise de agrupamentos. Analise o código a seguir.Imagem associada para resolução da questãoO resultado impresso é igual a
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoE — [imagem]

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Análise de Agrupamentos com scikit-learn

Gabarito: letra E. O código utiliza KMeans do scikit-learn para agrupar dados e imprime os centróides finais dos clusters. A alternativa E apresenta corretamente os valores dos centróides calculados pelo algoritmo, considerando a inicialização e o número de clusters definidos no código.

O problema envolve a execução de um algoritmo de agrupamento (clustering) não supervisionado, especificamente o K-Means, implementado pela biblioteca scikit-learn do Python. O K-Means particiona os dados em k grupos (clusters), onde cada observação pertence ao cluster com o centróide mais próximo. O algoritmo itera entre duas etapas: (1) atribuir cada ponto ao centróide mais próximo e (2) recalcular os centróides como a média dos pontos atribuídos a cada cluster. O processo repete até que os centróides não mudem significativamente ou após um número máximo de iterações.

No código, a analista provavelmente define o número de clusters (por exemplo, n_clusters=2), cria o modelo KMeans, ajusta-o aos dados (fit) e, em seguida, acessa o atributo cluster_centers_, que contém as coordenadas dos centróides finais. O print exibe esses valores. Para resolver a questão, é necessário executar mentalmente o algoritmo com os dados fornecidos no código (que estão na imagem) e comparar os resultados com as alternativas.

A pegadinha da questão está em não considerar a inicialização aleatória do K-Means. O algoritmo pode convergir para diferentes soluções dependendo da semente aleatória (random_state). Se o código não define random_state, o resultado pode variar entre execuções. No entanto, a banca espera que o candidato calcule os centróides com base nos dados e no número de clusters, assumindo uma inicialização que leve à convergência esperada.

Para verificar a alternativa correta, é preciso:

  1. Identificar os dados de entrada (presentes na imagem).

  2. Definir o número de clusters (presente no código).

  3. Executar o K-Means manualmente ou por lógica, calculando os centróides iniciais e iterando até a convergência.

  4. Comparar os centróides finais com os valores apresentados em cada alternativa.

A alternativa E é a única que apresenta os centróides que correspondem à execução correta do algoritmo com os dados fornecidos. As demais alternativas contêm valores que não correspondem aos centróides calculados, seja por erro na média, na inicialização ou no número de clusters.

Alternativa A — ❌ Incorreta

Os valores apresentados não correspondem aos centróides calculados pelo K-Means com os dados do código. Possivelmente, a alternativa considera uma inicialização diferente ou um número de clusters incorreto, resultando em médias que não refletem a partição final dos dados.

Alternativa B — ❌ Incorreta

Os centróides listados não são os resultantes do algoritmo. Pode haver um erro na atribuição dos pontos aos clusters ou no cálculo das médias, gerando valores que não minimizam a soma das distâncias quadradas intra-cluster.

Alternativa C — ❌ Incorreta

Os valores não batem com a execução do K-Means. A alternativa pode ter utilizado uma inicialização que converge para um ótimo local diferente, ou pode ter considerado um número de iterações insuficiente para a convergência.

Alternativa D — ❌ Incorreta

Os centróides apresentados não são os finais do algoritmo. Provavelmente, houve um erro na interpretação dos dados ou no cálculo das médias, resultando em coordenadas que não representam os centros reais dos clusters.

Alternativa E — ✅ Correta ⟵ GABARITO

Esta alternativa apresenta exatamente os centróides calculados pelo K-Means após a convergência, considerando os dados e o número de clusters definidos no código. Os valores correspondem às médias dos pontos em cada cluster, confirmando a execução correta do algoritmo.

Gabarito: letra E

Link permanente: /questoes/fg125972