Classe “RandomForestRegressor”
A classe RandomForestRegressor
do módulo sklearn.ensemble
da biblioteca scikit-learn é uma implementação da técnica de regressão com Random Forest, que utiliza um conjunto de árvores de decisão para resolver problemas de regressão. Durante o treinamento, é combinado as previsões de cada árvore da “floresta” para produzir uma previsão final mais robusta e precisa.
Sintaxe
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=10, criterion="squared_error", random_state=0)
Principais parâmetros
n_estimators
: O número de árvores na floresta (um hiperparâmetro crucial).criterion
: A função para medir a qualidade de uma divisãorandom_state
: Semente aleatória para garantir a reprodutibilidade dos resultados.
Principais atributos
estimators_
: Uma lista das árvores de decisão individuais na floresta.feature_importances_
: Uma matriz que indica a importância relativa de cada característica no modelo treinado.
Principais métodos
fit(X, y)
: Treina o modelo com os dados de treinamento, ondeX
são as características ey
são os rótulos de saída.predict(X)
: Realiza previsões com base nas características de entradaX
.score(X, y)
: Calcula o coeficiente de determinaçãodas previsões em relação aos rótulos verdadeiros.
Exemplo
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# Carregar o conjunto de dados de exemplo (Boston Housing)
data = load_boston()
X = data.data
y = data.target
# Dividir os dados em conjunto de treinamento e conjunto de teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Criar uma instância do modelo RandomForestRegressor
model = RandomForestRegressor(n_estimators=100, random_state=42)
# Treinar o modelo
model.fit(X_train, y_train)
# Realizar previsões
y_pred = model.predict(X_test)
# Avaliar o desempenho do modelo
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error (MSE): {mse}")
print(f"R-squared (R^2): {r2}")
Conclusão
O RandomForestRegressor
é uma ferramenta poderosa para resolver problemas de regressão em que as relações entre as características de entrada e a variável de saída podem ser complexas e não lineares. Ao criar um conjunto de árvores de decisão, ele lida bem com sobreajuste e fornece medidas de importância de recursos, permitindo que os usuários entendam quais características são mais influentes em suas previsões. Portanto, é uma escolha popular em muitas aplicações de aprendizado de máquina e ciência de dados.