dotnet / dotnet/machinelearning

ML.Ranking LightGBM - Getting error "Value cannot be null. Parameter name: items"

Open
#5,022 16 comments 0 reactions 0 assignees View on GitHub
area-Trees documentation Priority:3 usability
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

### System information

- Windows:
- .net Core 3.0:

### Issue

- I am trying to generate a simple ranking of candidates based on a few features for a recruitment application.
- But when running the trainer, I get the following message which is not clear - "Value cannot be null. Parameter name: items"

### Source code / logs

![Capture](https://user-images.githubusercontent.com/12490592/79155380-f07ee280-7dc8-11ea-859e-fee03d4d7e24.PNG)

```C#
//Training Pipeline
IEstimator dataPipeline = mlContext.Transforms.Categorical.OneHotEncoding("HIGHESTEDUCATION", "HIGHESTEDUCATION")
.Append(mlContext.Transforms.Categorical.OneHotEncoding("SOURCE", "SOURCE"))
.Append(mlContext.Transforms.Text.FeaturizeText("SKILLSET", "SKILLSET"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("TOWNCITY", "TOWNCITY"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("YEARSOFEXPERIENCE", "YEARSOFEXPERIENCE"))
.Append(mlContext.Transforms.Concatenate("Features", "HIGHESTEDUCATION", "SKILLSET", "SOURCE", "TOWNCITY", "YEARSOFEXPERIENCE"))
.Append(mlContext.Transforms.Conversion.MapValueToKey("Label","Label"))
.Append(mlContext.Transforms.Conversion.Hash("GroupId", nameof(Candidate.VACANCYID), numberOfBits: 20));

// Set the LightGBM LambdaRank trainer.
IEstimator trainer = mlContext.Ranking.Trainers.LightGbm(labelColumnName: "Label", featureColumnName: "Features", rowGroupColumnName: "GroupId");
IEstimator trainerPipeline = dataPipeline.Append(trainer);
```
```C#
// Domain Model
public class Candidate
{
[LoadColumn(0)]
public string HIGHESTEDUCATION { get; set; }

[ColumnName("Label"),LoadColumn(1)]
public Single RELEVANCESCORE { get; set; }

[LoadColumn(2)]
public string SKILLSET { get; set; }

[LoadColumn(3)]
public string SOURCE { get; set; }

[LoadColumn(4)]
public string TOWNCITY { get; set; }

[ ColumnName("GroupId"), LoadColumn(5)]
public string VACANCYID { get; set; }

[LoadColumn(6)]
public string YEARSOFEXPERIENCE { get; set; }

}
```
Please paste or attach the code or logs or traces that would be helpful to diagnose the issue you are reporting.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.