aiboxlab / nlp

Uma biblioteca de Processamento de Linguagem Natural para o Português Brasileiro.
https://pypi.org/project/aibox-nlp/
MIT License
5 stars 0 forks source link

Interace Estimador #10

Closed moesio-f closed 1 year ago

moesio-f commented 1 year ago

A interface de um estimador é simples e direta, só precisamos ter métodos que permitem:

A serialização de estimadores (e.g., salvamento e carregamento) pode ser implementada por um módulo separado (dentro do pacote de estimadores), de forma que os códigos presentes dentro de um estimador possuam como único objetivo representar o algoritmo.

Vide o exposto, em pseudocódigo temos algo assim:

from __future__ import annotations

from pathlib import Path
from abc import ABC, abstractmethod

import numpy as np

class Estimator(ABC):
    """Essa é a interface básica para um
    estimador.
    """

    @abstractmethod
    def predict(self, X) -> np.ndarray:
        """Realiza a predição utilizando os parâmetros
        atuais do modelo.

        Args:
            X: array-like com formato (n_samples, n_features).

        Returns:
            NumPy array com as predições para cada amostra.
        """

    @abstractmethod
    def fit(self, X, y) -> None:
        """Realiza o treinamento do estimador
        utilizando as features X com os targets
        y.

        Args:
            X: array-like com formato (n_samples, n_features).
            y: array-like com formato (n_samples,).
        """

    @property
    @abstractmethod
    def hyperparameters(self) -> dict:
        """Retorna um dicionário descrevendo
        os hiper-parâmetros do estimador.

        Returns:
            Hiper-parâmetros do estimador.
        """

    @property
    @abstractmethod
    def params(self) -> 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).

        Returns:
            Parâmetros do estimador.
        """
moesio-f commented 1 year ago

Vou fechando essa Issue por enquanto, qualquer coisa reabrimos.