[Perf #478] KernelSVC fit: match libsvm training efficiency without changing semantics

Aperta
#480 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python, scikit-learn

Direzione di ricerca

Parti dal punto di ingresso di fit di KernelSVC e profila la costruzione della matrice dei kernel, il riutilizzo della cache, la selezione SMO/working-set, lo shrinking, i controlli di convergenza, la compattazione dei vettori di supporto e il traffico di allocazioni o copie. Confronta il lavoro algoritmico con sklearn/libsvm sui dataset Iris e Digits, registrando i tempi delle singole fasi, il numero di kernel e gli hit o miss della cache. Il lavoro è completato quando sono soddisfatti i criteri di accettazione indicati per la velocità di fit, la parità, lo sweep e le prestazioni di predizione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Parent: #478

Canonical v2: Iris Flow fit 1.075 ms vs sklearn 0.904 ms; Digits Flow fit 111.20 ms vs sklearn 50.47 ms. Prediction on Digits is already faster than sklearn, so the dominant deficit is training.

Profile kernel-matrix construction, cache reuse, SMO/working-set selection, shrinking, convergence checks, support-vector compaction, allocation/copy traffic and repeated kernel evaluations. Compare against sklearn/libsvm's algorithmic work, not only wall clock.

Acceptance: stage-level timing and kernel-evaluation counts; explicit cache-hit/miss evidence; scaled sample/feature sweeps; no score/parity regression; fit >=0.95x sklearn on both canonical datasets, target >=1.05x; keep prediction performance at least current.

Lingua principale
Python
Stelle
2
Fork
0
Merge medio
4h 33m
PR unite (30g)
9

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di godofecht/flow-scikit

Tutte le issue di godofecht/flow-scikit

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.