aibox.nlp.experiments.simple_experiment
Experimentos sequenciais simples.
Classes
|
Classe para experimentos simples e sequenciais. |
|
Dados extras desse tipo de experimento. |
- class aibox.nlp.experiments.simple_experiment.SimpleExperimentExtras(df_features: DataFrame, embeddings: dict[str, DataFrame], run_duration: float)[código-fonte]
Base:
object
Dados extras desse tipo de experimento.
- Parâmetros:
df_features (DataFrame) – conjunto de características extraídas para cada um dos textos do dataset. Possui uma coluna text com o texto e possui o valor de características nas demais colunas.
embeddings (dict[str, DataFrame]) – conjunto de embeddings (textos vetorizados) que não são características. Cada entrada no dicionário é um DataFrame com uma coluna text com o texto e demais colunas representam dimensões do embedding (chave é um identificador para o vetorizador).
run_duration (float) – duração total da execução do experimento em segundos.
- class aibox.nlp.experiments.simple_experiment.SimpleExperiment(pipelines: list[Pipeline], dataset: Dataset, metrics: list[Metric], criteria_best: Metric, criteria_maximize: bool = True, seed: int = 8990, frac_train: float = 0.8, keep_all_pipelines: bool = False, cache_limit: int | None = 0, problem: str | None = None, stratified_ds: bool = True, n_workers: int = 1, features_df: DataFrame | None = None, embeddings_dict: dict[str, DataFrame] | None = None, force_disable_cache: bool = False)[código-fonte]
Base:
Experiment
Classe para experimentos simples e sequenciais.
- Parâmetros:
pipelines (list[Pipeline]) – pipelines que devem ser testadas.
dataset (Dataset) – que deve ser utilizado.
criteria_best (Metric) – métrica que é utilizada para escolher a melhor pipeline.
criteria_maximize (bool) – se a métrica critério deve ser maximizada (true) ou minimizada (false).
seed (int) – seed randômica utilizada.
frac_train (float) – fração do conjunto a ser utilizado para treinamento.
keep_all_pipelines (bool) – se todas pipelines devem ser guardadas.
cache_limit (int | None) – limite de cacheamento da vetorização entre as diferentes pipelines. Se <= 0, todos os textos são cacheados.
problem (str | None) – ‘classification’, ‘regression’ ou None. Caso None, inferir do dataset (default=None).
stratified_ds (bool) – se devemos utilizar splits de train e test estratificados.
n_workers (int) – quantidade de workers que devem ser utilizados para vetorização em batch de vetorizadores que utilizam multiprocessing.
features_df (DataFrame | None) – DataFrame com características pré-extraídas. O DataFrame precisa ter uma coluna ‘text’ e todas as demais colunas são relativas à uma característica existente na biblioteca.
embeddings_dict (dict[str, DataFrame] | None) – dicionário com embeddings pré-extraídos. Cada chave deve ser um identificador de vetorizador (i.e., nome da classe). Cada valor deve ser um DataFrame onde a primeira coluna corresponde ao texto (“text”) e demais colunas correspondem a representação vetorial desse texto de forma ordenada (i.e., 1ª dimensão do embedding, 2ª dimensão, etc).
force_disable_cache (bool) – desativar completamento o cacheamento de extratores/vetorizadores. Se desativado, pode aumentar consideravelmente o custo computacional.
Essa classe permite a execução de múltiplas pipelines de forma a buscar a que possui o melhor valor da métrica critério. Por padrão, o experimento busca maximizar a métrica critério (
criteria_maximize=True
).O método de avaliação é o holdout. Ou seja, um conjunto de treino e testes é definido de antemão e é utilizado por todas as pipelines.
Para tornar a execução mais eficiente, durante o processo de treinamento das pipelines um cache é automaticamente configurado. Dessa forma, se duas pipelines utilizam o mesmo conjunto de características, o processo de vetorização só ocorre uma vez e é reaproveitado.
De forma similar, pipelines com outras estratégias de vetorização também utilizam um cache. Se duas pipelines possuem o mesmo vetorizador (i.e., mesma classe), os embeddings são extraídos apenas uma vez e reaproveitados.
É importante ressaltar que o cache não leva em conta configurações específicas dos extratores/vetorizadores. Isso quer dizer que se duas pipelines utilizam o mesmo extrator/vetorizador mas com configurações distintas, o comportamento do cache é não definido (i.e., o cache mantém apenas a versão vetorizada primeiro). Em tais casos, o recomendado é desabilitar o cache de características por completo com o parâmetro
force_disable_cache=True
.Dessa forma, é necessário cautela ao se utilizar os parâmetros
features_df
eembeddings_dict
.- run() ExperimentResult [código-fonte]
Executa o experimento com todas as pipelines.
- Retorna:
resultado do experimento, retorna um objeto
SimpleExperimentExtras
na chave extras deExperimentResult
.- Tipo de retorno:
- config() ExperimentConfiguration [código-fonte]
Retorna as configurações desse experimento.
- Retorna:
configuração do experimento.
- Tipo de retorno: