Classe “MLPRegressor”
A classe MLPRegressor
no módulo sklearn.neural_network
é uma implementação de uma rede neural artificial (RNA) para tarefas de regressão. Esta classe é usada quando você deseja realizar tarefas de previsão ou regressão em que a variável de destino é contínua, ou seja, quando você está tentando prever um valor numérico com base em um conjunto de características de entrada.
A sigla “MLP” significa “Multi-Layer Perceptron”, que é um tipo de arquitetura de rede neural feedforward. Esta rede neural é chamada de “perceptron” porque é composta por unidades de processamento simples chamadas de “neurônios” ou “perceptrons”, organizadas em camadas interconectadas.
Sintaxe
from sklearn.neural_network import MLPRegressor
model = MLPRegressor(hidden_layer_sizes=(100, ), activation='relu', solver='adam', alpha=0.0001, max_iter=200)
Principais parâmetros
-
hidden_layer_sizes
: Uma tupla que especifica o número de neurônios em cada camada oculta da rede. Por exemplo,(100, 50)
cria uma rede com duas camadas ocultas, uma com 100 neurônios e outra com 50 neurônios. -
activation
: Define a função de ativação usada nos neurônios. Pode ser ‘identity’, ‘logistic’, ‘tanh’ ou ‘relu’, entre outros. -
solver
: Define o algoritmo de otimização usado para ajustar os pesos da rede. Pode ser ‘lbfgs’, ‘sgd’ (descida de gradiente estocástica) ou ‘adam’. -
alpha
: É um hiperparâmetro de regularização que controla a penalização dos pesos da rede para evitar o overfitting. -
max_iter
: Especifica o número máximo de iterações que o algoritmo de treinamento deve realizar. Se o algoritmo atingir o número máximo de iterações antes de convergir, o treinamento será interrompido.
Principais métodos
-
fit(X, y)
: Este método é usado para treinar o modelo MLPRegressor com os dados de treinamento, ondeX
são os recursos de entrada ey
são os valores de destino. -
predict(X)
: Uma vez que o modelo é treinado, você pode usar este método para fazer previsões para novos dados de entradaX
. -
score(X, y)
: Este método retorna o coeficiente de determinação R-squared da previsão. Quanto mais próximo de 1, melhor é o desempenho do modelo.
Exemplo
from sklearn.neural_network import MLPRegressor
import numpy as np
# Dados de exemplo
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([2, 4, 6, 8, 10])
# Criação do modelo MLPRegressor
mlp_regressor = MLPRegressor(hidden_layer_sizes=(100,), activation='relu', solver='adam', alpha=0.0001, , max_iter=200)
# Treinamento do modelo
mlp_regressor.fit(X, y)
# Previsão
predicted = mlp_regressor.predict([[6]])
print(predicted) # Saída: [11.966...]
Neste exemplo, criamos um modelo MLPRegressor com uma camada oculta de 100 neurônios e treinamos o modelo com dados de entrada X
e valores de destino y
. Usamos o modelo treinado para prever o valor correspondente a X = 6
.
Conclusão
Em resumo, a classe MLPRegressor
do módulo sklearn.neural_network
é uma ferramenta poderosa para problemas de regressão, permitindo a modelagem de relações complexas entre variáveis de entrada e saída. A escolha adequada dos hiperparâmetros, como o número de camadas ocultas e neurônios, é crucial para obter um bom desempenho em problemas do mundo real.