Comments (7)
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.
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.
That's a reasonable suggestion. So how to modify the current repository to be a fork of LightGBM?
from unbiased_lambdamart.
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.
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.
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.
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)
- Jupyter notebook example HOT 4
- AppleClang not supported -- Setup on Mac. HOT 3
- Want to use PythonAPI to train and predict. HOT 2
- Why is sigma = 2? HOT 2
- Question about `position_bins`
- Question about reading "XXX.train" file
- segmentation fault HOT 3
- Unbiased_lambdamart ndcg is low than original lambdamart HOT 3
- How to tune hyperparameter when use the lambdamart example HOT 2
- Add LICENSE.md to project root HOT 1
- Broken Link in README.md HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unbiased_lambdamart.