microsoft / microsoft/SynapseML
custom objective function for pyspark
- Dominant language
- Scala
- Stars
- 5.2k
- Forks
- 868
- Avg merge
- 22h 9m
- Merged PRs (30d)
- 45
Description
Hi, I can see that the custom objective function for the Scala API was recently added in this [PR](https://github.com/microsoft/SynapseML/pull/1054), which is really exciting! Is there any idea when this functionally will be added in pyspark (perhaps it has and I haven't found the PR yet)?
I'm very interested in implementing a custom objective function for the LightGBMRanker model using mean average precision (trying to follow the approach in this [paper](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2008-179.pdf)) which is suited for binary relevance, as the current 'lambdarank' function uses NDCG which is best suited for graded relevance measure. It would be nice to have this feature as the xgboost python package has the option to use the `rank:map` objective in addition to the default `rank:ndcg`.
Thanks so much! We've been using your model at our company for the past year, but our training data is binary not graded, and I'd love to use something better suited to our data!
Contributor guide
Research direction
Start by reviewing the Scala custom objective implementation in PR 1054 and the PySpark LightGBMRanker API. Trace how objectives are exposed across the Scala and Python layers, then define the PySpark-facing behavior for a custom ranking objective such as mean average precision. Done means the feature is available through PySpark with coverage for the supported objective path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, scala
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100