-
-
Notifications
You must be signed in to change notification settings - Fork 24
ENH enable multiview-oblique splitting & unlock multiclass restrictions #355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add BDD's changes to review
Update from Main
in _multiview.py Add non-axis-alighed weighted (fixing)
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks correct, but I have not validated it, and also it's usually a bit hard to validate Cython code.
I would recommend writing a small test Cython test class that you can invoke in Python, which then calls the sample_proj_mat for an input array. You can then visualize and verify that it will do what you want it to do for a set of features. You can then manually show that the MultiViewObliqueSplitter samples what you would expect to be the right projection matrix for multiple sets of features.
For example, see the MultiViewSplitterTester I wrote for test the MultiViewSplitter, and plot_multiview_axis_aligned_splitter.py.
|
|
||
| # here, axis-aligned splits are entirely weights of 1 | ||
| weight = 1 # if (rand_int(0, 2, random_state) == 1) else -1 | ||
| weight = 1 if (rand_int(0, 2, random_state) == 1) else -1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will change the axis-aligned multi view-splitter I think(?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, yes, I will change it back, it should be just 1, instead of 1 or -1
Will do! |
PSSF23
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume the changes in forest.py is to remove the multi-class restrictions? Then we can just remove the assertion line instead of commenting it out.
Add test for using same number of max_feature for each view
|
@adam2392 Can you help me recheck with Multiview Oblique splitter when uniform sampling condition is true. I modified it to be more reasonable to achieve uniform sampling. |
Did a loose check, and it looks in the right direction. Will do an in-depth review after we can visually verify the projection matrix makes sense. |
Add example plot_multiview_oblique.py Add different test for how to use max_feature
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
|
I'm unsure why the docs are broken, but it would be nice to be able to check the output visually here: https://output.circle-artifacts.com/output/job/96dcd4fa-4fbc-4b29-b358-314687b9af0b/artifacts/0/dev/use.html via the circleCI job: https://circleci.com/gh/neurodata/treeple/561. It makes reviewing easier/trivial even. This is what I got though when I ran |




Reference Issues/PRs
What does this implement/fix? Explain your changes.
Any other comments?