microsoft / microsoft/SynapseML

custom objective function for pyspark

Open
#1,171 9 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.