aibox.nlp.estimators.generic.mlp

Estimador baseado na arquitetura MLP.

Classes

MLPEstimator(hidden_layers, kind, ], ...[, ...])

Estimador MLP genérico.

class aibox.nlp.estimators.generic.mlp.MLPEstimator(hidden_layers: list[int], kind: ~typing.Literal['classifier', 'regressor'], random_state: int | None = None, activation_fn: ~torch.nn.modules.module.Module = <class 'torch.nn.modules.activation.ReLU'>, dropout_prob: float | list[float | None] | None = 0.05, epochs: int = 100, learning_rate: float = 0.001, optim_params: dict | None = None, optim: ~typing.Literal['adam', 'adamw', 'rmsprop', 'adagrad', 'sgd'] = 'adamw', regression_ensure_bounds: bool = False, train_batch_size: int = 256, device: str | None = None, dtype=torch.float32)[código-fonte]

Base: Estimator

Estimador MLP genérico.

Parâmetros:
  • hidden_layers (list[int]) – número de features para cada camada escondida da rede.

  • kind (Literal['classifier', 'regressor']) – se é uma rede de classificação ou regressão.

  • random_state (int | None) – seed.

  • activation_fn (Module) – função de ativação para as camadas escondidas. Defaults to torch.nn.ReLU.

  • output_activation – função de ativação para a camada de saída. Defaults to torch.nn.Linear.

  • epochs (int) – quantidade de épocas a ser utilizadas no momento do treinamento.

  • dropout_prob (float | list[float | None] | None) – probabilidade de dropout. Se não for None, introduz uma camada de dropout com a aquela probabilidade após as camadas escondidas. É possível controlar quais camadas devem possuir dropout passando uma lista.

  • learning_rate (float) – taxa de aprendizado do otimizador.

  • optim_params (dict | None) – parâmetros extras a serem passados para o otimizador além da taxa de aprendizado.

  • optim (Literal['adam', 'adamw', 'rmsprop', 'adagrad', 'sgd']) – otimizador a ser utilizado.

  • regression_ensure_bounds (bool) – se os limites devem ser respeitados em redes de regressão.

  • train_batch_size (int) – tamanho do batch para treinamento.

  • device (str) – dispositivo que o modelo deve ser armazenado.

  • dtype – dtype esperado pela rede. Conversões são realizadas automaticamente.

O modelo é construído na primeira chamada ao método fit(). A arquitetura consiste em:

1. len(hidden_layers) camadas escondidas com ativação activation_fn e | camada de dropout se dropout_prob is not None; 2. Uma camada totalmente conectada com ativação linear;

A saída do modelo depende se a rede é de classificação (logits) ou regressão (valor numérico).

fit(X: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, y: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, **kwargs) None[código-fonte]

Realiza o treinamento do estimador.

Parâmetros:
Tipo de retorno:

None

predict(X: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, **kwargs) None[código-fonte]

Realiza a predição utilizando os parâmetros atuais do modelo.

Parâmetros:
  • X (list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor) – dados de entrada com shape (n_samples, n_features).

  • **kwargs – parâmetros extras que podem ser passados para alguns estimadores.

Retorna:

predições com shape (n_samples,).

Tipo de retorno:

None

property hyperparameters: dict

Hiper-parâmetros do modelo. Inclui a seed randômica. Estrutura do dicionário varia entre diferentes estimadores.

Retorna:

dicionário de hiper-parâmetros.

property params: dict

Retorna um dicionário com os parâmetros para esse estimador.

Os parâmetros retornados descrevem totalmente o estado do modelo (e,g. pesos de uma rede, superfícies de decisão, estrutura da árvore de decisão, etc).

Retorna:

parâmetros do estimador.

property random_state: int

Seed randômica utilizada pelo estimador.

Retorna:

seed.