AutoML BinaryClassificationExperiment ignores ColumnInformation.ExampleWeightColumnName — trainers are fitted unweighted
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 70/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- csharp
- Domínio
- machine-learning
Direção de pesquisa
Start at BinaryClassificationExperiment.Execute and trace how ColumnInformation.ExampleWeightColumnName is passed to the trainers and validation metrics; the issue names no source files or tests. Compare the AutoML result with the direct LbfgsLogisticRegression example using the supplied weighted fixture. Done when the experiment either applies weights to fitting and validation or clearly warns or refuses a weighted request.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
System information
- Microsoft.ML 5.0.0, Microsoft.ML.AutoML 0.23.0
- .NET 10 (net10.0), macOS arm64
Describe the bug
ColumnInformation.ExampleWeightColumnName is accepted by BinaryClassificationExperiment.Execute, but the weight column does not reach the trainers the experiment builds, nor its validation metrics. No warning is emitted, so the caller gets an unweighted model while believing it is weighted.
To reproduce
Fixture: 1,000 X values in [0,1] (plus a noise column Y), each row written twice — once Label=true, once Label=false — with weight W = 10 / 1 for true / false when X > 0.5, and 1 / 10 otherwise. Unweighted, the label is independent of X (P = 0.5 everywhere); weighted, P(true | X=0.9) ≈ 0.9.
-
AutoML (15 s budget):
ml.Auto().CreateBinaryClassificationExperiment(15).Execute(train, new ColumnInformation { LabelColumnName = "Label", ExampleWeightColumnName = "W", NumericColumnNames = { "X", "Y" }, });Best run
LbfgsLogisticRegressionBinary: P(true | X=0.9) = 0.49, P(true | X=0.1) = 0.49 — identical to the same experiment withWplaced inIgnoredColumnNames. The per-trainer best validation AUCs were also identical in both runs (FastTree 0.41, FastForest 0.40, SdcaLogisticRegression 0.50, LbfgsLogisticRegression 0.53). -
The same trainer fitted directly:
ml.Transforms.Concatenate("Features", "X", "Y") .Append(ml.BinaryClassification.Trainers.LbfgsLogisticRegression(exampleWeightColumnName: "W"));gives 0.96 / 0.04.
Expected behavior
Either the trainers AutoML constructs receive exampleWeightColumnName (the binary, multiclass and regression trainers it sweeps all accept it), with validation metrics weighted the same way — or Execute refuses / warns when ExampleWeightColumnName is set, so a weighted request cannot silently produce an unweighted fit.
Why it matters
Labels collected by importance sampling, or from sources of differing reliability, are trained with per-row weights. A silently unweighted fit learns the sampling bias, and nothing in the result tells the caller.
Related: #6708 (documentation of ExampleWeightColumnName).
- Linguagem predominante
- C#
- Estrelas
- 9.4k
- Forks
- 2k
- Merge médio
- 2d 18h
- PRs com merge (30d)
- 64
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de dotnet/machinelearning
-
area-Native untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
dotnet/machinelearning#7837 ·
Mantenedores costumam responder em até 1 dia
-
area-TensorFlow untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
dotnet/machinelearning#7836 ·
Mantenedores costumam responder em até 1 dia
-
ToArrowRecordBatches accumulates arrays from previous batches, producing invalid record batchesAbertaarea-DataFrame bug untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
dotnet/machinelearning#7799 ·
Mantenedores costumam responder em até 1 dia
-
LlamaTokenizer encodes some runs of repeated characters differently from SentencePieceTalvez já em andamento @Laurianti assumiu há 42 dias. Abertaarea-Tokenizers untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
dotnet/machinelearning#7751 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
BertTokenizer merges words separated only by `\n`, `\t` or `\r`Talvez já em andamento @Laurianti assumiu há 23 dias. Abertaarea-Tokenizers green
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
dotnet/machinelearning#7724 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de dotnet/machinelearning
Issues semelhantes
-
bug emitter:client:csharp
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
microsoft/typespec#12572 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
needs-area-label
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
AWS Lambda: KeyNotFoundException drops HTTP-triggered transactions when allowAllHeaders is disabledAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
newrelic/newrelic-dotnet-agent#3949 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
area-networking
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
dotnet/aspnetcore#70545 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 87/100
Mantenedores costumam responder em até 1 dia