A biblioteca Scikit-Learn emprega o algoritmo Classification...
Considerando-se que n corresponde ao número de features e m ao número de instâncias, qual é a complexidade computacional assintótica de predição para árvores de decisão treinadas com o algoritmo CART?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - O(log2 (m))
Vamos analisar a questão e entender o porquê dessa alternativa ser a correta.
Em primeiro lugar, é importante entender o que é uma Árvore de Decisão e como o algoritmo CART (Classification And Regression Tree) funciona. Esse algoritmo é amplamente utilizado nas tarefas de classificação e regressão. A construção da árvore envolve a divisão recursiva do conjunto de dados em subconjuntos menores, até que uma condição de parada seja atingida (como uma profundidade máxima ou o número mínimo de instâncias em um nó).
Vamos agora justificar a alternativa correta:
Alternativa E - O(log2 (m))
Uma vez que a árvore de decisão está treinada, fazer uma predição envolve apenas percorrer a árvore desde a raiz até uma folha. Esse percurso segue uma sequência de decisões binárias (sim/não) ao longo da profundidade da árvore. Na pior das hipóteses, o número de decisões a serem tomadas é proporcional à profundidade da árvore. Para uma árvore balanceada, a profundidade é aproximadamente logarítmica em relação ao número de instâncias m, logo, a complexidade de predição é O(log2 (m)).
Agora, vamos analisar as alternativas incorretas:
Alternativa A - O(m)
Esta alternativa sugere que a complexidade da predição é linear em relação ao número de instâncias. Entretanto, isso estaria correto se precisássemos examinar cada instância para fazer uma predição, o que não é o caso em árvores de decisão. A predição envolve apenas seguir um caminho ao longo da profundidade da árvore, e não percorrer todas as instâncias.
Alternativa B - O(m2)
Esta alternativa indica uma complexidade quadrática, o que não se aplica à predição em árvores de decisão. Esse tipo de complexidade seria muito alto e não é condizente com a natureza do algoritmo CART.
Alternativa C - O(n × m log(m))
Esta alternativa mistura a complexidade de treinamento de uma árvore de decisão com a complexidade de predição. Durante o treinamento, pode haver uma fase em que o algoritmo realiza comparações que envolvem n (número de features) e m (número de instâncias), mas isso não se aplica à predição.
Alternativa D - O(n2 × m log(m))
Semelhante à alternativa C, esta alternativa também parece confundir a complexidade de treinamento com a de predição. Essa complexidade é exagerada para a tarefa de fazer uma predição, que é apenas seguir o caminho na árvore de decisão.
Conclusão: Para resolver este tipo de questão, é essencial entender primeiramente o funcionamento do algoritmo CART em árvores de decisão e, especificamente, a distinção entre o processo de treinamento e o de predição. A complexidade de predição em uma árvore de decisão treinada é O(log2 (m)), pois envolve percorrer a profundidade da árvore, que é logarítmica em relação ao número de instâncias.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
já que os professor não comentam, o chat gpt responde! arrependimento assinatura! segue aí: A complexidade computacional de predição para árvores de decisão é geralmente O(log2(m)), onde m é o número de instâncias de dados. Isso ocorre porque, durante a predição, a árvore é percorrida da raiz até uma folha, e o número de passos necessários para alcançar uma folha é proporcional à altura da árvore. Para uma árvore bem balanceada, a altura é log2(m), onde m é o número de instâncias. Assim, a complexidade da predição é O(log2(m)).
Nas referências que achei, o Big O do algoritmo CART é O(pN log2(N)), sendo N o número de instâncias e pN o número de features. As perguntas que ficam: porque o log é na base 2? E porque a banca cortou as features da notação assintótica?
Nas referências que achei, o Big O do algoritmo CART é O(pN log2(N)), sendo N o número de instâncias e pN o número de features. As perguntas que ficam: porque o log é na base 2? E porque a banca cortou as features da notação assintótica?
Caberia recurso. Essa complexidade é aplicada somente considerando que a árvore gerada é balanceada. Mas muitas vezes não é o caso.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo