Assinale a opção que apresenta a classe da biblioteca scikit-learn, versão 1.2.2, utilizada em scripts python para a implementação de análises incrementais de componentes principais.
- A)sklearn.position.PCAIncrement.
Errada: o modulo sklearn.position nao existe no scikit-learn e a classe PCAIncrement tambem nao faz parte da API.
- B)sklearn.composition.PCAIncrement.
Errada: sklearn.composition nao e o modulo correto, e o nome PCAIncrement nao corresponde a nenhuma classe da biblioteca.
- C)sklearn.recomposition.PCAIncrement.
Errada: sklearn.recomposition nao existe no scikit-learn e a classe indicada tambem nao e valida.
- D)sklearn.decomposition.IncrementalPCA.
Certa: IncrementalPCA e a classe do modulo sklearn.decomposition usada para PCA incremental.
- E)sklearn.recomposition.IncrementingPCA.
Errada: sklearn.recomposition nao existe e IncrementingPCA nao e uma classe da biblioteca.
Gabarito: D
Quando voce precisa fazer analise de componentes principais em blocos, sem jogar o conjunto inteiro de dados na memoria de uma vez, o scikit-learn oferece a versao incremental da PCA. Em vez de recalcular tudo do zero com a base completa, voce vai alimentando o modelo com pequenos lotes de dados, o que e bem util em bases grandes ou em fluxos de dados. Na biblioteca scikit-learn 1.2.2, a classe usada para isso e a IncrementalPCA, que fica no modulo sklearn.decomposition. O nome ja entrega a ideia: decomposition e o pacote onde vivem as tecnicas de reducao de dimensionalidade, e IncrementalPCA e a variante pensada para processamento em etapas. Por isso o gabarito e a letra D. As demais alternativas erram tanto no nome do modulo quanto no nome da classe, inventando caminhos como composition, recomposition ou nomes que nao existem na API da biblioteca. Na pratica, a pegadinha costuma ser confundir PCA classica com a versao incremental. A PCA normal tambem fica em sklearn.decomposition, mas para analise incremental voce precisa da classe especifica, porque e ela que suporta o aprendizado por partes.