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 treinamentoX
e os rótulos de classey
. -
predict(X)
: Método para fazer previsões em novos dados de entradaX
, 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.