Skip to content

BaseModel

Abstract base class for all models.

pitch_sequencing.models.base

Abstract base model for all pitch prediction models.

BaseModel

Bases: ABC

Unified interface for all pitch prediction models.

Source code in src/pitch_sequencing/models/base.py
class BaseModel(ABC):
    """Unified interface for all pitch prediction models."""

    @property
    @abstractmethod
    def name(self) -> str:
        """Human-readable model name for display."""

    @property
    @abstractmethod
    def model_type(self) -> str:
        """'tabular' or 'sequence' — determines data format expected."""

    @abstractmethod
    def fit(self, X_train, y_train, X_val=None, y_val=None, **kwargs):
        """Train the model."""

    @abstractmethod
    def predict(self, X) -> np.ndarray:
        """Return predicted class labels."""

    @abstractmethod
    def predict_proba(self, X) -> np.ndarray:
        """Return class probabilities (n_samples x n_classes)."""

    def get_params(self) -> dict:
        """Return hyperparameters for logging."""
        return {}

model_type abstractmethod property

'tabular' or 'sequence' — determines data format expected.

name abstractmethod property

Human-readable model name for display.

fit(X_train, y_train, X_val=None, y_val=None, **kwargs) abstractmethod

Train the model.

Source code in src/pitch_sequencing/models/base.py
@abstractmethod
def fit(self, X_train, y_train, X_val=None, y_val=None, **kwargs):
    """Train the model."""

get_params()

Return hyperparameters for logging.

Source code in src/pitch_sequencing/models/base.py
def get_params(self) -> dict:
    """Return hyperparameters for logging."""
    return {}

predict(X) abstractmethod

Return predicted class labels.

Source code in src/pitch_sequencing/models/base.py
@abstractmethod
def predict(self, X) -> np.ndarray:
    """Return predicted class labels."""

predict_proba(X) abstractmethod

Return class probabilities (n_samples x n_classes).

Source code in src/pitch_sequencing/models/base.py
@abstractmethod
def predict_proba(self, X) -> np.ndarray:
    """Return class probabilities (n_samples x n_classes)."""