-
Notifications
You must be signed in to change notification settings - Fork 0
Metrics hingeloss
The only metric here that reads a decision function — not a label, and not a probability, but the signed distance from a boundary that a support vector machine or a linear model produces.
A sample costs nothing once it is on the right side by a margin of 1, and its cost rises linearly
from there. That margin is the whole point: a prediction that is right but barely is still charged,
where ZeroOneLoss counts it as free. This is the loss an SVM actually minimises,
which is why it is the one to report when tuning one.
The label is compared against the decision's sign, so relabelling the two classes cannot move the
number — -1/1, 0/1 and 7/3 all give the same loss on the same decisions, and a test
asserts it. posLabel says which label is on the positive side; scikit-learn infers the two classes
instead.
On a truth carrying only one class the two disagree. scikit-learn maps every label to -1
through a LabelBinarizer that has nothing to contrast, and returns a number computed against the
wrong side — measured 1.65 where the margins say 0.35. Here posLabel is a parameter, so that
input is ordinary and answers 0.35. The divergence is the reference's degenerate case, not a
choice made here.
MultiClass takes one decision per class and charges on the true class's
decision less the best of the others — Crammer and Singer's multiclass hinge, which is what the
reference computes. A sample costs nothing once its own class wins by 1.
| Member | What it does |
|---|---|
HingeLoss.Score |
The binary case, from one decision per sample. |
HingeLoss.MultiClass |
The same over one decision per class. |
- 0001-target-framework
- 0002-unicode-comparison-unit
- 0003-provenance-and-licensing
- 0004-levenshtein-myers-backlog
- 0005-hamming-jellyfish-divergence
- 0006-ratcliff-autojunk
- 0007-metaphone-scope
- 0008-italian-enza-nltk-divergence
- 0009-sample-consumes-a-local-feed
- 0010-stop-word-list-provenance
- 0011-persistence-format
- 0012-per-package-versioning
- 0013-sentencepiece-parity-scope
- 0014-precompiled-normalizer
- 0015-sonar-rules-in-the-build
- 0016-metrics-package-placement
- 0017-bpe-parity-scope
- 0018-multiclass-roc-auc-parallelism-is-opt-in
- 0019-the-net-analysers-run-in-the-build-too
- 0020-normalize-is-a-projection-not-a-parameter
- 0021-multioutput-is-a-method-not-an-enum
- 0022-added-token-matching-flags
- 0023-byte-level-decode-substitutes
- 0024-weighted-median-averages-within-scikit-learns-epsilon
- 0025-quickselect-replaces-a-full-sort-for-the-median
- 0026-r2-and-explainedvariance-split-their-undefined-cases-differently
- 0027-r2-and-explainedvariance-vectorize-only-a-single-output
- 0028-log1p-is-kahans-identity-not-math-log-1-plus-x
- 0029-balanced-accuracy-adjusted-is-left-to-ieee-754-at-the-edge
- 0030-cohen-kappa-keeps-scikit-learns-expected-matrix-orientation
- 0031-nosamplecorrect-mirrors-numpys-float64-upcast
- 0032-fbeta-substitutes-tp-predicted-and-support-algebraically
- 0033-compensated-sum-is-neumaiers-variant
- 0034-dropout-is-refused-for-want-of-a-user
- 0035-a-null-pre-split-is-removed-with-invert-not-isolated
- 0036-a-member-may-ship-without-an-oracle-if-it-says-so
- 0037-the-guards-run-before-the-commit
- 0038-the-gate-confronts-an-exception-tag-with-the-page-that-documents-it
- 0039-mutual-information-returns-zero-on-an-empty-input
- 0040-a-curve-is-a-sealed-class-per-curve
- 0041-one-sample-file-per-public-class
- 0042-phonetic-encoders-refuse-a-null-word
- 0043-the-equality-table-is-sized-to-the-pattern
- 0044-compression-belongs-to-the-caller
- 0045-a-console-call-carries-its-reason-on-the-line
- 0046-check-adr-immutable-runs-in-ci-only
- 0047-one-gate-per-kernel-not-one-per-alphabet
- 0048-the-gate-depends-on-the-kernel-and-the-alphabet
- 0049-two-gates-per-kernel-tested-where-the-width-is-known
- 0050-the-sentencepiece-bpe-lineage-stays-a-bpe-model
- benchmark_latest
- decisions
- equivalence
- matplotlib
- migration
- nightly_run
- numpy
- pandas
- performance
- pytorch
- seaborn
- sklearn
- statsmodels