Skip to content
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

Integrate DTree into BinarySpaceTree #227

Closed
rcurtin opened this issue Dec 29, 2014 · 4 comments
Closed

Integrate DTree into BinarySpaceTree #227

rcurtin opened this issue Dec 29, 2014 · 4 comments

Comments

@rcurtin
Copy link
Member

rcurtin commented Dec 29, 2014

Reported by rcurtin on 28 Jun 42549469 20:57 UTC
A density estimation tree (see methods/det) is a form of binary space tree, except that it splits differently and each node needs to hold some information about its own density.

In fact, I would say it is similar enough that a density estimation tree could actually just be a specific instantiation of a BinarySpaceTree with a different splitting mechanism and a specially constructed statistic object to hold the necessary information.

Migrated-From: http://trac.research.cc.gatech.edu/fastlab/ticket/234

@rcurtin rcurtin self-assigned this Dec 29, 2014
@rcurtin rcurtin added this to the mlpack 1.1.0 milestone Dec 29, 2014
@rcurtin rcurtin removed their assignment Dec 30, 2014
@rcurtin rcurtin modified the milestones: mlpack 2.1.0, mlpack 2.0.0 Dec 15, 2015
@palashahuja
Copy link
Contributor

@rcurtin, I'd like to work on this, but I would need some help.

@thejonan
Copy link
Contributor

thejonan commented Oct 6, 2016

I want to have sparse matrix enabled DET, but making this integration looks like a better step, so I'm ready to provide this help. @palashahuja, do you have any progress so far?

@thejonan
Copy link
Contributor

After about two days of investigation of BinarySpaceTree I've given up doing that merge, because of these, few reasons:

  • BinarySpaceTree is both quite universal, but in the same time - pretty much bound to tasks like kNN, etc. For example, the split criteria is solely bound to the Bound type, i.e. the space boundaries, which is not exactly the case in DET, where the split is based on a broader term of error.
  • Also, there is a good amount of methods, related to this approach, and having nothing to do with DET's task (*Distance, *Descendants, etc.). In the same time methods a-la ComputeValue are missing as a concept.
  • Some of the template arguments of BinarySpaceTree class are really making it pretty weird to provide necessary classes, being templated themselves - I know this is because of ease of providing these arguments.

So, at the end of the day, I've realized it is more like a "hack", rather than different instantiation - the value that BinarySpaceTree would bring would be comparably small to the custom implementation that DTree requires.

However, I've made the the whole DET algorithm implementation sparse-matrix enabled (Pull Request #802), so it shouldn't be difficult for this merge to happen, should someone wants to do it.

@rcurtin rcurtin modified the milestones: mlpack 2.1.1, mlpack 2.1.0 Nov 1, 2016
@rcurtin rcurtin modified the milestones: mlpack 2.2.1, mlpack 2.1.1 Mar 17, 2017
@rcurtin rcurtin modified the milestones: mlpack 2.2.2, mlpack 2.2.1 Apr 13, 2017
@rcurtin rcurtin modified the milestones: mlpack 2.2.3, mlpack 2.2.2 May 5, 2017
@rcurtin rcurtin modified the milestones: mlpack 2.2.4, mlpack 2.2.3 May 24, 2017
@rcurtin rcurtin modified the milestones: mlpack 2.2.6, mlpack 2.2.4 Aug 26, 2017
@rcurtin
Copy link
Member Author

rcurtin commented May 1, 2018

I have to agree with the last comment here, and there is no pressing need to integrate the two, so I will go ahead and close this issue.

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

No branches or pull requests

3 participants