Repository navigation
Description
Current BAMT architecture has a number of disadvantages, some clunky code and other limitations. Thus, it was decided to make a full refactoring. This refreshment will not only include new refactored code and API but also new features (like vectorized sampling and other operations, new algorithms for structure learning, score-functions etc.)
For now, here is a checklist of modules that should be implemented in 2.0.0 architecture:
The development of BAMT 2.0.0 is held in 2.0.0 branch of the repository. If you, the reader of the issue, have decided to implement some module or submodule, please reply to this message, create a separate issue and add it to milestone and project.
The goal of these changes is also to make a sklearn-like interface, use modern python development practices like Pydantic, so the usual pipeline looks like that:
# read data
data = pd.read_csv("data.csv")
# define optimizers and score functions
dag_score_function = DAGScoreFunction(**parameters)
dag_optimizer = DAG_optimizer(**parameters)
# get a structure, maybe in networkx format?
G = dag_optimizer.optimize(data, ** parameters)
# define parameters estimator and BN
parameters_estimator = ParametersEstimator(**parameters)
bn = ContinuousBayesianNetwork(**parameters)
# fit the bn
bn.fit(data, ParametersEstimator, **parameters)
bn.sample(1000)
bn.predict(data.drop[["col1", "col2"]])Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields🏗 In progress
Activity
jrzkaminski commentedon Jul 5, 2024
distribution module has been implemented
Initial commit with task details for issue aimclub#108
konard commentedon Nov 13, 2025
Hello! I've analyzed the current state of the 2.0.0 refactoring and I'm ready to contribute.
Current Status Analysis
I've examined the
2.0.0branch and found that most of the architecture skeleton is in place:✅ Implemented (skeleton/abstract classes):
❌ Missing from checklist:
Question
Since this is a meta-issue for the overall 2.0.0 refactoring, could you please clarify which specific module(s) would be most valuable for me to implement? Some options:
I'm ready to create a separate sub-issue and add it to the milestone once we determine the focus area.
Looking forward to your guidance!
Related: PR #141
Revert "Initial commit with task details for issue aimclub#108"
jrzkaminski commentedon Nov 13, 2025
@konard You have to implement all the features present in the current main branch in the new architecture. There is no need for sub-issues, or anything like that. Just add a complete refactoring to your new pull request.
feat: Implement score functions (K2, MI, BIC, AIC) for new 2.0.0 arch…
feat: Implement Hill Climbing optimizer for structure learning
feat: Implement core 2.0.0 components - node models, conditional node…
feat: Add score functions, continuous/hybrid BN implementations, and …
feat: Add utilities and PC optimizer for BAMT 2.0.0 architecture
feat: Add MixtureGaussianDistribution and MathUtils for BAMT 2.0.0
feat: Add extended ML models repository and example for BAMT 2.0.0