Git Product home page Git Product logo

Comments (7)

robert-howley-zocdoc avatar robert-howley-zocdoc commented on May 27, 2024 3

An alternative that would greatly increase the impact of this methodology is to add this to lightgbm itself. Fork lightgbm, add your implementation, and open a pr to merge it back into the source repo.

This seems to be a potentially powerful approach to LTR, I suspect the lightgbm maintainers would be appreciative of the contribution.

from unbiased_lambdamart.

paddy74 avatar paddy74 commented on May 27, 2024 1

The current repository would not be a fork. It would contain a submodule (link to another git repository) to the fork.

Before doing any of the following I recommend creating a release. That way your paper is correlated with a specific release (i.e. "This paper is based on v1.0").

Do you recall what LightGBM commit you started at? If so:

  • Create a fork of LightGBM
  • Rename the fork to Unbias_LightGBM (or whatever desired name)
  • Clone the fork to you local machine
  • Rollback to the desired commit with
git reset --hard <old-commit-id>
git push -f
  • Replace all the LightGBM files with your files currently in Unbias_LightGBM/
  • Commit and push
  • Remove the directory Unbiased_LambdaMart/Unbias_LightGBM
  • Add the fork as a submodule with `git submodule add

Then anytime you clone the current repository you would run git submodule init && git submodule update.

If desired you can then attempt to merge in and test with the latest LightGBM changes. As submodules are created at a commit, you may then update the submodule to the latest commit in the fork with git submodule update --remote --merge and commit and push that.

If you do not recall the exact commit
Try and get as close as possible (prefer a later commit) then test to make sure it doesn't affect your results.

from unbiased_lambdamart.

acbull avatar acbull commented on May 27, 2024

That's a reasonable suggestion. So how to modify the current repository to be a fork of LightGBM?

from unbiased_lambdamart.

upbit avatar upbit commented on May 27, 2024

I tried to merge Unbiased_LambdaMart into the original and it is now ready to compile:
upbit/Unbiased_LambdaMart@0071cf2

The submodule method is not easy to track the new version.

from unbiased_lambdamart.

paddy74 avatar paddy74 commented on May 27, 2024

What is it you mean by:

The submodule method is not easy to track the new version.

?

The main project would reference a specific commit of the submodule (preferably a 'release' commit).

from unbiased_lambdamart.

upbit avatar upbit commented on May 27, 2024

Sorry for my poor english. I mean

It is not easy to upgrade to the latest version of LightGBM (eg: v2.2.4).

If forked from microsoft/LightGBM, we can merge upstream changes at any time, just by initiating an merge request microsoft/LightGBM:master -> acbull:master

from unbiased_lambdamart.

paddy74 avatar paddy74 commented on May 27, 2024

Yes that would be the idea. acbull:Unbiased_LightGBM would be a fork of microsoft/LightGBM:release (where release is some release commit).

Then acbull:Unbiased_LightGBM:release would be added as a submodule to this project, acbull:Unbiased_LambdaMART.

Even if the decision is not to use the latest LightGBM, it still provides it as a possibility and links the fork acbull:Unbiased_LightGBM to a specific version of LightGBM. This also makes it significantly easier to distinguish what alterations were made to make it "unbiased".

from unbiased_lambdamart.

Related Issues (12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.