FFFF BAMT 2.0.0 - new features, refactoring, architecture refreshment · Issue #108 · aimclub/BAMT · GitHub
[go: up one dir, main page]

Skip to content

BAMT 2.0.0 - new features, refactoring, architecture refreshment #108

Description

@jrzkaminski

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"]])

Activity

  1. self-assigned this
    on Apr 22, 2024
  2. moved this from 📋 Backlog to 🏗 In progress in BAMT backlogon Apr 22, 2024
  3. added this to the BAMT 2.0.0 milestone on Apr 22, 2024
  4. jrzkaminski commented on Jul 5, 2024

    @jrzkaminski
    CollaboratorAuthor

    distribution module has been implemented

  5. konard commented on Nov 13, 2025

    @konard

    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.0 branch and found that most of the architecture skeleton is in place:

    ✅ Implemented (skeleton/abstract classes):

    • Core module (Graph, DAG, Nodes, Node Models)
    • DAG optimizers (constraint-based, score-based, hybrid)
    • Score functions (K2, Mutual Information - both are stubs)
    • Parameter estimators (MLE)
    • Models (all BN types)

    ❌ Missing from checklist:

    • BIC/AIC score functions (mentioned but not implemented)
    • Actual implementations for most skeleton classes

    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:

    1. BIC/AIC Score Functions - These are explicitly mentioned in the checklist as missing
    2. Complete implementation of existing stubs - Many classes like K2Score, MutualInformationScore are just empty implementations
    3. Other specific module - If there's a particular area that's a priority

    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

  6. jrzkaminski commented on Nov 13, 2025

    @jrzkaminski
    CollaboratorAuthor

    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.0 branch and found that most of the architecture skeleton is in place:

    ✅ Implemented (skeleton/abstract classes):

    • Core module (Graph, DAG, Nodes, Node Models)
    • DAG optimizers (constraint-based, score-based, hybrid)
    • Score functions (K2, Mutual Information - both are stubs)
    • Parameter estimators (MLE)
    • Models (all BN types)

    ❌ Missing from checklist:

    • BIC/AIC score functions (mentioned but not implemented)
    • Actual implementations for most skeleton classes

    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:

    1. BIC/AIC Score Functions - These are explicitly mentioned in the checklist as missing
    2. Complete implementation of existing stubs - Many classes like K2Score, MutualInformationScore are just empty implementations
    3. Other specific module - If there's a particular area that's a priority

    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

    @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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions

0