Skip to content

Conversation

PasoStudio73
Copy link
Member

We had discussed a lot on this, and we ended that using a default behaviour that mimic DecisionTree behaviour on "bestguess" guesses was the way to do, with the opportunity to specify when the behaviour should stay as original SoleModels version, or to supply custom "bestguess" function.
Now @Perro2110 is pointing out the fact that, without knowing this new feature, all the experiments and tests done before this change, give different results in the end.
And this is confusing and dangerous.
So we both decided that the way to go is to defaulting "bestguess" behaviour as it's always been, and passing an opportune karg, during the creation of the solemodel, if you want a tree that strictly behave as DecisionTree's forest.

@PasoStudio73 PasoStudio73 self-assigned this Sep 15, 2025
@PasoStudio73 PasoStudio73 added the bug Something isn't working label Sep 15, 2025
Copy link

codecov bot commented Sep 15, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.74%. Comparing base (665947e) to head (fbf2153).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #62      +/-   ##
==========================================
- Coverage   55.81%   55.74%   -0.07%     
==========================================
  Files          21       21              
  Lines        1281     1279       -2     
==========================================
- Hits          715      713       -2     
  Misses        566      566              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment on lines +1 to +6
# using SoleModels
# using MLJ
# using DataFrames, Random
# using DecisionTree
# const DT = DecisionTree

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These seem useful actually?

Comment on lines +1 to +6
# using SoleModels
# using MLJ
# using DataFrames, Random
# using DecisionTree
# const DT = DecisionTree

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

Comment on lines -173 to +175
dtmodel0 = @test_nowarn DecisionTree("1")
dtmodel = @test_nowarn DecisionTree(branch_r)
@test_nowarn DecisionTree(branch_r_mixed)
dtmodel0 = @test_nowarn SoleModels.DecisionTree("1")
dtmodel = @test_nowarn SoleModels.DecisionTree(branch_r)
@test_nowarn SoleModels.DecisionTree(branch_r_mixed)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh why is this needed? Is there a clash on "DecisionTree"? Maybe with MLJ?

classlabels = nothing,
featurenames = nothing,
keep_condensed = false,
dt_bestguess = false,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay good to have a kwarg for this. Can we name it differently? Like I guess we could remove the "dt_" part, because we may want to have the same argument in other SoleModels.solemodel methods in other package extension unrelated with "decision trees".

Maybe "alphanumeric_tiebreaker", or "argmax_tiebreaker", or "tiebreaker::Symbol" that can either be :argmax or :alphanumeric

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

2 participants