Essas são minhas notas de estudos, elas podem ser atualizadas com o tempo ou não, além de não necessariamente serem organizadas no formato de textos.
Tabela de Conteúdo
Random Forests
O algoritmo de Random Forest, nada mais é o que um método de ensemble no qual são usados diversas árvore de decisão. Este ensemble pode ser do tipo Bagging ou Pasting, mas a ideia permanece a mesma, treinamos diversas árvores de decisão cada um com um pedaço diferente do dataset de treino (Bagging). Para o caso da classificação, considerando a previsão de todas as árvores, a previsão do modelo é a classe que apareceu com mais frequência entre todos as árvores, isso é chamado de voto duro (hard voting). Também podemos optar por obter a probabilidade de a instância pertencer uma classe, dessa forma podemos utilizar o voto suave (soft voting) para obter a classificação.
Por ser um algoritmo que mistura diversas árvores de decisão e o método de ensemble Bagging, temos hiperparâmetros para controlar o crescimento da árvore e a forma como montamos o ensemble. Isso adiciona um grande caráter de aleatoriedade ao algoritmo de Random Forest, pois podemos restringir o número de features e a forma como montamos o ensemble, i.e., árvores diferentes usaram features diferentes e pedaços diferentes do dataset. Com uma diversidade tão grande de árvores de decisão, aumentamos o viés (bias) do algoritmo e diminuímos sua variância.
Extra-Trees
Quando utilizamos o Random Forest, só consideramos algumas features em cada divisão dos nós. O algoritmo de Extra-Trees adiciona um critério de aleatoriedade maior, a ramificação do nó é feita aleatoriamente. Em uma árvore de decisão, os nós são separados de forma reduzir sua impureza ou entropia. No algoritmo de Extra-Trees a separação é feita aleatoriamente usando todas as features considerados pela árvore, depois as melhores ramificações são escolhidas para compor a árvore. Extra-Trees também aumenta o viés (bias) e reduz a variância.
Importância das Features
Usando o fluxograma de uma única árvore de decisão podemos interpretar quais features são mais relevantes para o modelo. Porém, para o Random Forest não temos mais uma única árvore e fica complicado definir exatamente a importância das features. O critério utilizado pelo Scikit-Learn para medir a importância das features é olhar para o nó de cada árvore que usa aquela feature e calcular em médio o quanto ela reduz a impureza ou entropia. Novamente, essa medida não é muito confiável e existem outras formas de se fazer isso, uma discussão melhor é feita em Beware Default Random Forest Importances.
Referências
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Livro