Skip to content

Project Structure #237

@tachyonicClock

Description

@tachyonicClock

Our project has gotten bigger and now supports different experimental settings, but the directory layout is inconsistently structured in places:

capymoa.datasets
capymoa.datasets.ocl
capymoa.evaluation.ocl
capymoa.ocl
capymoa.classifier
capymoa.regressor
capymoa.ssl.classifier
capymoa.drift.detectors
capymoa.drift.eval_detector

I propose a consistent layout capymoa.{ocl,ssl,drift,anomaly,classifier,regressor}.{__init__,datasets,base,evaluation}

  • capymoa.*.__init__.py would contain learner classes. For example:
from capymoa.classifier import AdaptiveRandomForestClassifier
  • capymoa.*.evaluation would contain evaluation functions and classes. For example:
from capymoa.classifier.evaluation import prequential_evaluation
  • capymoa.*.datasets would contain classification datasets. For example:
from capymoa.classifier.datasets import ElectricityTiny
  • capymoa.*.base would contain base classes of the experimental setting. For example:
from capymoa.classifier.base import Classifier
from capymoa.classifier import AdaptiveRandomForestClassifier
from capymoa.classifier.datasets import ElectricityTiny
from capymoa.classifier.evaluation import prequential_evaluation

stream = ElectricityTiny()
learner = AdaptiveRandomForestClassifier()
prequential_evaluation(stream, learner)

Common classes and functions would be moved to capymoa.core.{instance,stream} module.

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions