stanbkt.fits.FitBase#

class stanbkt.fits.FitBase(verbose=VerbosityLevel.INFO, fits=None, fit_metadata=None, cache_summary=True, summary_percentiles=(2.5, 97.5), _summary_cache=None)#

Bases: VerboseMixin, ABC

Base class for StanBKT fits.

This class provides shared fit state management and delegates all persistence to stanbkt.fits.persistence.

Variables:
  • fits (dict[str, CmdStanFit]) – Mapping of knowledge component IDs to CmdStan fit objects.

  • num_fitted_kcs (int) – Number of knowledge components that have been fitted.

  • _fit_metadata (FitMetadata) – Metadata used to resolve persisted fit folders.

  • _summary_cache (dict[str, pd.DataFrame]) – Cached summary DataFrames for each knowledge component.

  • _summary_percentiles (tuple[float, float], default (2.5, 97.5)) – Percentiles used for generating summary statistics. Values should be in range [1, 99].

Parameters:
add_fit(kc, fit, overwrite_kcs=False, group2index=None, groups=None)#

Add a fit for a knowledge component to the model’s fit state.

Parameters:
  • kc (str) – Knowledge component identifier.

  • fit (Union[CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder]) – CmdStan fit object to add for the KC.

  • overwrite_kcs (bool) – Whether to overwrite existing fits for KCs that are being added again.

  • group2index (dict[str, int] | None) – Optional mapping from group ID to 1-based index used for this KC’s fit.

  • groups (set[str] | None) – Optional set of group IDs used for this KC’s fit.

Raises:

ValueError – If the fit’s method is incompatible with the model’s fit method, or if a fit for the KC already exists and overwrite_kcs=False.

Return type:

None

get_fit(kc)#

Get the fit for a knowledge component.

Parameters:

kc (str) – Knowledge component identifier.

Returns:

CmdStan fit object for the specified KC.

Return type:

Union[CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder]

Raises:

KeyError – If no fit exists for the specified KC.

get_fit_save_entry(kc)#

Return persisted fit metadata entry for a KC, if available.

Return type:

FitSaveEntry | None

Parameters:

kc (str)

get_fitted_kcs()#

Return all known fitted KCs.

Return type:

set[str]

has_kc(kc)#

Check if a fit exists for a knowledge component.

Parameters:

kc (str) – Knowledge component identifier.

Returns:

True if a fit exists for the specified KC, False otherwise.

Return type:

bool

log(msg, level=VerbosityLevel.INFO)#

Log a message if verbosity level permits.

Parameters:
  • msg (str) – Message to log.

  • level (VerbosityLevel) – Verbosity level of this message. Message is printed if self.verbose >= level. Lower enum values = higher verbosity.

set_verbosity(level)#

Set the verbosity level for logging.

Parameters:

level (VerbosityLevel) – New verbosity level.

Raises:

ValueError – If level is not a valid VerbosityLevel.

summary(kcs=None, kc_col_name='kc_id', percentiles=(2.5, 97.5))#

Public wrapper that delegates to the subclass _summary() implementation.

Return type:

DataFrame

Parameters: