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,ABCBase 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:
verbose (VerbosityLevel)
fit_metadata (FitMetadata | None)
cache_summary (bool)
- 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:
- 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.
- has_kc(kc)#
Check if a fit exists for a knowledge component.
- 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.