Classe “RandomForestClassifier”

O RandomForestClassifier é uma classe do módulo sklearn.ensemble da biblioteca scikit-learn em Python, que implementa o algoritmo de classificação de Random Forest. Essa classe permite a criação de um modelo de classificação baseado na técnica de ensemble learning, que combina várias árvores de decisão para melhorar a precisão e robustez das previsões.

Principais Parâmetros:

  • n_estimators: O número de árvores de decisão no Random Forest. Quanto maior o número de árvores, mais preciso e robusto o modelo, mas também aumenta o tempo de treinamento. É um parâmetro crítico para ajustar o equilíbrio entre desempenho e eficiência.

  • criterion: O critério usado para medir a qualidade da divisão dos atributos em cada árvore. As opções comuns são “gini” para impureza de Gini e “entropy” para entropia. O padrão é “gini”, mas a escolha depende do conjunto de dados específico e das preferências do usuário.

  • max_depth: A profundidade máxima de cada árvore na floresta. Limitar a profundidade pode ajudar a evitar overfitting, mas também pode reduzir a capacidade do modelo de capturar relações complexas nos dados.

  • min_samples_split: O número mínimo de amostras necessárias para dividir um nó interno da árvore. Esse parâmetro controla a formação de folhas e pode ajudar a evitar particionamentos que levem a grupos muito pequenos de dados.

  • min_samples_leaf: O número mínimo de amostras necessárias para formar uma folha na árvore. Essa restrição controla o tamanho mínimo do grupo de dados em uma folha e também ajuda a evitar overfitting.

  • max_features: O número máximo de atributos a serem considerados ao procurar a melhor divisão. Pode ser um valor inteiro ou uma string que representa a proporção de atributos (por exemplo, “sqrt” para a raiz quadrada do número total de atributos).

Métodos Importantes:

  • fit(X, y): Método para treinar o modelo com os dados de treinamento X e os rótulos de classe y.

  • predict(X): Método para fazer previsões em novos dados de entrada X, retornando os rótulos de classe previstos.

  • feature_importances_: Atributo que mostra a importância relativa de cada atributo para o modelo treinado.

Exemplo de Uso:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
 
# Carregar o conjunto de dados Iris
data = load_iris()
X, y = data.data, data.target
 
# Dividir os dados em conjunto de treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Criar o modelo RandomForestClassifier
model = RandomForestClassifier(n_estimators=100, random_state=42)
 
# Treinar o modelo com os dados de treinamento
model.fit(X_train, y_train)
 
# Fazer previsões no conjunto de teste
y_pred = model.predict(X_test)
 
# Calcular a acurácia das previsões
accuracy = accuracy_score(y_test, y_pred)
print("Acurácia do Random Forest:", accuracy)

Neste exemplo, utilizamos o RandomForestClassifier para criar um modelo de classificação com 100 árvores de decisão. O modelo é treinado com os dados de treinamento e, em seguida, fazemos previsões no conjunto de teste para calcular a acurácia das previsões. O resultado é uma medida da precisão do modelo na classificação das amostras de teste.