aibox.nlp.factory.experiment

Construção e obtenção de experimentos.

Classes

SimpleExperimentBuilder()

Builder para SimpleExperiment.

class aibox.nlp.factory.experiment.SimpleExperimentBuilder[código-fonte]

Base: object

Builder para SimpleExperiment.

Essa classe implementa o padrão builder para construção de um experimento de forma programaticamente, abstraindo consideravelmente o processo manual. Exemplo de uso:

from aibox.nlp.factory.experiment import SimpleExperimentBuilder

# Inicializando o builder
builder = SimpleExperimentBuilder()

# Definindo a seed
builder.seed(42)

# Selecionando o dataset e tipo do problema
builder.dataset("essayBR", extended=False, target_competence="C1").classification()

# Adicionando métricas
builder.add_metric("precision", average="weighted")
builder.add_metric("recall", average="weighted")
builder.add_metric("f1", average="weighted")
builder.add_metric("kappa")
builder.add_metric("neighborKappa")

# Definindo a métrica para melhor critério
builder.best_criteria("precision", average="weighted")

# Pipeline de features
builder.add_feature_pipeline(
    features=["descriptiveBR"],
    estimators=["svm", "xgbClf"],
    names=["svm+features", "xgb+features"],
)

# Pipeline com outras estratégias de vetorização
builder.add_vectorizer_pipeline(
    "tfidfVectorizer",
    estimators=["etreesClf", "lgbmClf"],
    names=["etrees+tfidf", "lgbm+tfidf"],
    estimators_configs=[dict(n_estimators=20), dict(n_estimators=20)],
)

builder.add_vectorizer_pipeline(
    "bertVectorizer",
    estimators=["svm", "etreesClf", "lgbmClf", "xgbClf"],
    names=["svm+bert", "etrees+bert", "lgbm+bert", "xgb+bert"])

# Construindo experimento:
experiment = builder.build()
add_feature_pipeline(features: str | list[str], estimators: str | list[str], names: str | list[str], postprocessing: Callable[[ndarray], ndarray] | list[Callable[[ndarray], ndarray]] | None = None, features_configs: dict | list[dict] | None = None, estimators_configs: dict | list[dict] | None = None) SimpleExperimentBuilder[código-fonte]

Adiciona uma ou mais pipelines baseada em características. Se forem passados mais que um estimador, serão construídas pipelines com o mesmo conjunto de features mas com cada estimador.

Parâmetros:
Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

add_vectorizer_pipeline(vectorizer: str, estimators: str | list[str], names: str | list[str], postprocessing: Callable[[ndarray], ndarray] | list[Callable[[ndarray], ndarray]] | None = None, vectorizer_config: dict = {}, estimators_configs: dict | list[dict] | None = None) SimpleExperimentBuilder[código-fonte]

Adiciona uma ou mais pipelines baseadas no vetorizador. Se forem passados mais que um estimador, serão construídas pipelines com o mesmo vetorizador mas com cada estimador.

Parâmetros:
  • vectorizer (str) – vetorizador ou lista de vetorizadores.

  • estimators (str | list[str]) – estimador ou lista de estimadores.

  • names (str | list[str]) – nome(s) do estimador(es).

  • postprocessing (Callable[[ndarray], ndarray] | list[Callable[[ndarray], ndarray]] | None) – pós-processamentos.

  • vectorizer_config (dict) – configuração do vetorizador.

  • estimators_configs (dict | list[dict] | None) – configuração(ões) do estimador(es).

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

add_implicit_vectorizer_pipeline(estimators: str | list[str], names: str | list[str], postprocessing: Callable[[ndarray], ndarray] | list[Callable[[ndarray], ndarray]] | None = None, estimators_configs: dict | list[dict] | None = None) SimpleExperimentBuilder[código-fonte]

Adiciona uma ou mais pipelines baseada em Deep Learning que aprendem vetorização de forma implícita (e.g., Transformers).

Parâmetros:
Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

add_metric(metric: str, **metric_config) SimpleExperimentBuilder[código-fonte]

Adiciona uma métrica para o experimento caso ela não tenha sido adicionada anteriormente.

Parâmetros:
  • metric (str) – métrica.

  • **metric_config – configurações da métrica.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

best_criteria(metric: str, maximize: bool = True, **metric_config) SimpleExperimentBuilder[código-fonte]

Define a métrica para selecionar a melhor pipeline.

Parâmetros:
  • metric (str) – métrica.

  • maximize (bool) – se essa métrica deve ser maximizada.

  • **metric_config – configurações da métrica.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

dataset(ds: str, **ds_config) SimpleExperimentBuilder[código-fonte]

Define o dataset para os experimentos.

Parâmetros:
  • ds (str) – dataset.

  • **ds_config – configurações do dataset.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

seed(seed: int) SimpleExperimentBuilder[código-fonte]

Define a seed para o experimento.

Parâmetros:

seed (int) – seed.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

classification() SimpleExperimentBuilder[código-fonte]

Define que esse é um experimento de classificação.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

regression() SimpleExperimentBuilder[código-fonte]

Define que esse é um experimento de regressão.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

custom_dataset(ds: Dataset) SimpleExperimentBuilder[código-fonte]

Adiciona uma instância de um dataset.

Parâmetros:

ds (Dataset) – dataset.

Retorna:

self.

Tipo de retorno:

SimpleExperimentBuilder

build(**kwargs) Experiment[código-fonte]

Constrói o experimento com as informações coletadas e limpa as informações coletadas.

Parâmetros:

**kwargs – configurações extras passadas ao construtor de SimpleExperiment.

Retorna:

experimento.

Tipo de retorno:

Experiment

classmethod features_experiment(seed: int, problem: Literal['classification', 'regression'], include_reg_as_clf: bool = True) SimpleExperimentBuilder[código-fonte]

Retorna uma instância pré-inicializada do builder com todas as pipelines utilizando todas características disponíveis.

Parâmetros:
  • seed (int) – seed randômica.

  • problem (Literal['classification', 'regression']) – tipo do problema.

  • include_reg_as_clf (bool) – Se estimadores voltados à regressão devem ser adicionados para classificação utilizando np.round().

Retorna:

builder.

Tipo de retorno:

SimpleExperimentBuilder