sklearn.linear_model .SGDClassifier¶

Lineáris osztályozók (SVM, logisztikai regresszió stb.) SGD képzéssel.

erősítő

Ez a becslő rendszerezett lineáris modelleket valósít meg sztochasztikus gradiens süllyedés (SGD) tanulással: a veszteség gradiensét minden egyes mintára becsülik egyenként, és a modellt folyamatosan csökkenő erősségű ütemezéssel (más néven tanulási arány) frissítik. Az SGD lehetővé teszi a minibatch (online/magon kívüli) tanulást a részleges_fit módszerrel. Az alapértelmezett tanulási arány ütemezésének használatával a legjobb eredmény elérése érdekében az adatoknak nulla átlagosnak és egységnyi szórással kell rendelkezniük.

Ez a megvalósítás olyan adatokkal működik, amelyeket sűrű vagy ritka lebegőpontos tömbökként ábrázolnak a szolgáltatásokhoz. A hozzá illő modell a veszteségparaméterrel szabályozható; alapértelmezés szerint illeszkedik egy lineáris támogatási vektor géphez (SVM).

A szabályozó a veszteségfüggvényhez hozzáadott büntetés, amely a modell paramétereit a nulla vektor felé zsugorítja, vagy az L2 négyzet alakú euklideszi normát, vagy az L1 abszolút normát, vagy mindkettő kombinációját felhasználva (Elastic Net). Ha a paraméterfrissítés a szabályozó miatt átlépi a 0,0 értéket, a frissítés 0,0-ra csonkolódik, hogy ritka modelleket tanulhasson és elérhesse az online szolgáltatásválasztást.

További információ a Felhasználói kézikönyvben .

Paraméterek veszteség str, alapértelmezett = ’csukló’

Az alkalmazandó veszteségfüggvény. Alapértelmezés szerint a „csukló”, amely lineáris SVM-et ad.

A lehetséges opciók a „csukló”, a „log”, a „módosított_huber”, a „squared_hinge”, a „perceptron” vagy a regressziós veszteség: „squared_loss”, „huber”, „epsilon_insensitive” vagy „squared_epsilon_insensitive”.

A „log” veszteség logisztikai regressziót, valószínűségi osztályozót ad. A ‘módosított_huber’ egy másik sima veszteség, amely toleranciát hoz a kiugró értékek mellett a valószínűség becsléseivel szemben is. A „squared_hinge” olyan, mint a zsanér, de kvadratikusan büntetik. ’Perceptron’ az a perceptron algoritmus által használt lineáris veszteség. A többi veszteséget regresszióra tervezték, de a besorolásban is hasznosak lehetnek; lásd az SGDRegressor leírását.

A veszteségképletekről további részletek a Felhasználói kézikönyvben találhatók .

Az alkalmazandó büntetés (más néven törvényesítési kifejezés). Alapértelmezés szerint az „l2”, amely a lineáris SVM modellek szokásos szabályozója. Az „l1” és a „elastnetnet” ritkaságot okozhat a modellben (funkcióválasztás), amely nem érhető el az „l2” használatával.

alfa úszó, alapértelmezett = 0,0001

Állandó, amely megsokszorozza a szabályosítási kifejezést. Minél magasabb az érték, annál erősebb a törvényszerűsítés. A tanulási arány kiszámításához is használatos, ha a learning_rate értékre van állítva „optimális”.

l1_ratio úszó, alapértelmezett = 0,15

Az Elastic Net keverési paraméter 0 büntetéssel a „elastnetnet”.

fit_intercept bool, alapértelmezett = True

Meg kell-e becsülni a lehallgatást vagy sem. Ha hamis, akkor feltételezzük, hogy az adatok már középre vannak állítva.

max_iter int, alapértelmezett = 1000

Az edzésadatokon (más néven korszakokon) való áthaladások maximális száma. Csak az illesztési mód viselkedését befolyásolja, és nem a részleges_fit metódust.

Új a 0.19-es verzióban.

A megállási kritérium. Ha nem None, akkor az edzés akkor áll le, amikor (loss> best_loss - tol) n_iter_no_change egymást követő korszakokban.

Új a 0.19-es verzióban.

Függetlenül attól, hogy az edzés adatait minden korszak után meg kell-e keverni.

bőbeszédű int, alapértelmezett = 0

A részletesség szintje.

epsilon úszó, alapértelmezett = 0,1

Epsilon az epsilon-érzéketlen veszteségfüggvényekben; csak akkor, ha a veszteség „huber”, „epsilon_insensitive” vagy „squared_epsilon_ensensitive”. A „huber” számára meghatározza azt a küszöböt, amelynél kevésbé lesz fontos, hogy pontosan jó előrejelzést kapjunk. Az epsilon-érzéketleneknél az aktuális előrejelzés és a megfelelő címke közötti különbségeket figyelmen kívül hagyják, ha azok ennél a küszöbnél kisebbek.

n_jobs int, alapértelmezett = Nincs

Az OVA (egy versus mind, több osztályos problémák esetén) számításhoz használandó CPU-k száma. A None jelentése 1, hacsak nem joblib.parallel_backend kontextusban. -1 az összes processzor használatát jelenti. További részletekért lásd a Szószedetet.

random_state int, RandomState példány, alapértelmezett = Nincs

Az adatok keverésére szolgál, ha a keverés értéke True. Többfunkciós híváson adja át az int a reprodukálható kimenetért. Lásd: Szószedet .

learning_rate str, alapértelmezett = ’optimális’

A tanulási arány ütemezése:

’Állandó’: eta = eta0

„Optimális”: eta = 1,0/(alfa * (t + t0)), ahol t0-t Leon Bottou által javasolt heurisztika választja.

„Méretezés”: eta = eta0/pow (t, power_t)

‘Adaptív’: eta = eta0, mindaddig, amíg a képzés folyamatosan csökken. Minden alkalommal, amikor az n_iter_no_change egymást követő korszakok nem képesek csökkenteni az edzésveszteséget tol-tal, vagy nem növelik az validációs pontszámot tol-val, ha a korai leállítás igaz, az aktuális tanulási arányt elosztjuk 5-tel.

Új a 0.20-as verzióban: Hozzáadva az „adaptív” opciót

A kezdeti tanulási arány az „állandó”, „átméretezés” vagy „adaptív” ütemtervekhez. Az alapértelmezett érték 0.0, mivel az eta0-t nem használja az alapértelmezett ütemezés „optimális”.

teljesítmény_t dupla, alapértelmezett = 0,5

Az inverz skálázási tanulási arány kitevője [alapértelmezett 0,5].

korai megállás bool, alapértelmezett = Hamis

Használja-e a korai leállást a képzés befejezéséhez, ha az érvényesítési pontszám nem javul. Ha True értékre állítja, akkor automatikusan elkülöníti az edzésadatok rétegzett részét validálásként, és befejezi az edzést, ha a pontszám módszerrel visszaadott validációs pontszám nem növekszik legalább tol-el az n_iter_no_change egymást követő korszakokban.

Új a 0.20-as verzióban: Hozzáadva a 'early_stopping' opciót

A korai leállításkor érvényesítésként elkülönítendő képzési adatok aránya. Csak 0 és 1 között kell lennie. Csak akkor használható, ha a korai állítás igaz.

Új a 0.20-as verzióban: Hozzáadva a „validation_fraction” opciót

Javítás nélküli iterációk száma, amelyre várni kell a korai leállítás előtt.

Új a 0.20-as verzióban: Hozzáadva az ‘n_iter_no_change’ opciót

A class_weight fit paraméter előre beállított értéke.

Az osztályokhoz tartozó súlyok. Ha nincs megadva, akkor minden osztálynak súlya van.

A „kiegyensúlyozott” mód az y értékeivel automatikusan beállítja a súlyokat fordítottan arányosan az osztály frekvenciáival a bemeneti adatokban, mint n_minták/(n_osztályok * np.bincount (y)). .

melegállomás bool, alapértelmezett = Hamis

Ha True értékre van állítva, használja újra az előző hívás megoldását inicializálásként, ellenkező esetben csak törölje az előző megoldást. Lásd a szószedetet .

Az fit vagy a részleges_fit ismételt meghívása, amikor a true melegindítás értéke True, más megoldást eredményezhet, mint amikor egyszerre hívja a fit az adatok keverésének módja miatt. Dinamikus tanulási arány alkalmazása esetén a tanulási sebességet a már látott minták számától függően adaptálják. Az fit hívása alaphelyzetbe állítja ezt a számlálót, míg a részleges_fit növeli a meglévő számlálót.

átlagos bool vagy int, alapértelmezett = Hamis

Ha True értékre van állítva, kiszámítja az összes frissítés átlagolt SGD súlyát, és az eredményt a coef_ attribútumban tárolja. Ha 1-nél nagyobb int értékre van állítva, akkor az átlagolás akkor kezdődik, amikor az összes látott minta száma eléri az átlagot. Tehát az átlag = 10 átlagolás 10 minta megtekintése után kezdődik.

Attribútumok coef_ ndarray alak (1, n_jellemzők), ha n_osztályok == 2 további (n_osztályok, n_jellemzők)

A jellemzőkhöz rendelt súlyok.

lehallgat ndarray az (1,) alakból, ha n_osztály = = 2 másik (n_ osztály,)

Állandóak a döntési funkcióban.

salétrom_ int

Az iterációk tényleges száma a leállítási kritérium elérése előtt. A többosztályos illesztéseknél ez a maximum minden bináris illesztésnél.

veszteség_funkció_ beton LossFunction osztályok_ alak tömb (n_classes,) t_ int

Az edzés során elvégzett súlyfrissítések száma. Ugyanaz, mint (n_iter_ * n_samples) .

Lineáris támogatási vektorok osztályozása.

Az SGDClassifier örökösei. A Perceptron () egyenértékű az SGDClassifierrel (veszteség = "perceptron", eta0 = 1, learning_rate = "konstans", büntetés = Nincs) .

Megjósolja a minták konfidencia pontszámát.

Konvertáló mátrix konvertálása sűrű tömb formátumra.

illeszkedés (X, y [, coef_init, intercept_init,…])

Fit lineáris modell sztochasztikus gradiens süllyedéssel.

Paraméterek beszerzése ehhez a becsléshez.

részleges_fit (X, y [, osztályok, minta_súly])

Végezzen el egy sztochasztikus gradiens süllyedést egy adott mintán.

Jósolja meg az X címkék mintáinak osztálycímkéit.

pontszám (X, y [, minta_súly])

Adja vissza az átlagos pontosságot a megadott vizsgálati adatokon és címkéken.

Állítsa be és érvényesítse a becslő paramétereit.

Az együttható mátrix konvertálása ritka formátumra.

Inicializálja önmagát. A pontos aláírásért lásd a súgót (type (self)).

Megjósolja a minták konfidencia pontszámát.

A minta konfidencia pontszáma a minta és a hipersík közötti előjeles távolság.

Paraméterek x tömbszerű vagy ritka mátrix, alakzat (n_minták, n_jellemzők)

Tömböt ad vissza, shape = (n_samples,), ha n_classes == 2 további (n_samples, n_classes)

Bizalmi pontszámok (minta, osztály) kombinációnként. Bináris esetben a self.classes_ [1] konfidencia pontszáma, ahol> 0 azt jelenti, hogy ezt az osztályt megjósolják.

Konvertáló mátrix konvertálása sűrű tömb formátumra.

A coef_ tagot (vissza) konvertálja numpy.ndarray fájlra. Ez a coef_ alapértelmezett formátuma, és szükséges az illesztéshez, ezért ezt a módszert csak azokon a modelleken kell megkövetelni, amelyeket korábban már szűkítettek; különben ez nem op.

fit (X, y, coef_init = Nincs, intercept_init = Nincs, minta_súly = Nincs) [forrás] ¶

Fit lineáris modell sztochasztikus gradiens süllyedéssel.

Paraméterek x, alak (n_minták, n_jellemzők)

y alak alakja (n_minták,)

coef_init ndarray of shape (n_osztályok, n_jellemzők), alapértelmezett = Nincs

A kezdeti együtthatók az optimalizálás meleg elindításához.

intercept_init ndarray of shape (n_classes,), alapértelmezett = Nincs

A kezdeti elfogás az optimalizálás meleg elindításához.

minta_súly tömbszerű, alakzat (n_minták,), alapértelmezett = Nincs

Az egyes mintákra alkalmazott súlyok. Ha nincs megadva, akkor egyenletes súlyokat feltételezünk. Ezeket a súlyokat meg kell szorozni a class_weight (a konstruktoron áthaladó) súlyokkal, ha az class_weight meg van adva.

Visszaadja az én példányát.

Paraméterek beszerzése ehhez a becsléshez.

Paraméterek mély bool, alapértelmezett = True

Ha True, akkor visszaadja ennek a becslésnek a paramétereit, és tartalmazott becsült objektumokat.

Visszatér params karakterlánc hozzárendelése bármelyikhez

Az értékeikhez rendelt paraméternevek.

részleges_fit (X, y, osztályok = Nincs, minta_súly = Nincs) [forrás] ¶

Végezzen el egy sztochasztikus gradiens süllyedést egy adott mintán.

Belsőleg ez a módszer max_iter = 1-et használ. Ezért nem garantált, hogy a költségfüggvény minimumát elérjük, miután egyszer meghívtuk. Az olyan kérdéseket, mint az objektív konvergencia és a korai leállítás, a felhasználónak kell kezelnie.

Paraméterek x, alak (n_minták, n_jellemzők)

A képzési adatok részhalmaza.

y alak alakja (n_minták,)

A célértékek részhalmaza.

osztályok ndarray of shape (n_classes,), alapértelmezett = Nincs

Osztályok az összes part_fit hívásra. Megtalálható az np.unique (y_all) útján, ahol y_all a teljes adatkészlet célvektora. Ez az argumentum szükséges a part_fit első hívásához, és a következő hívásokban elhagyható. Ne feledje, hogy y-nak nem kell az összes címkét tartalmaznia az osztályokban .

minta_súly tömbszerű, alakzat (n_minták,), alapértelmezett = Nincs

Az egyes mintákra alkalmazott súlyok. Ha nincs megadva, akkor egyenletes súlyokat feltételezünk.

Visszaadja az én példányát.

Jósolja meg az X címkék mintáinak osztálycímkéit.

Paraméterek x tömbszerű vagy ritka mátrix, alakzat (n_minták, n_jellemzők)

Visszatér C tömb, alak [n_minták]

Jósolt osztálycímke mintánként.

A valószínűségi becslések naplója.

Ez a módszer csak naplózási és módosított Huber-veszteség esetén érhető el.

Ha a veszteség = „módosított_huber”, akkor a valószínűségbecslések kemény nullák és nullák lehetnek, ezért a logaritmus felvétele nem lehetséges.

A részleteket lásd a pred_proba oldalon.

Paraméterek x alakú (n_minták, n_jellemzők)

Beviteli adatok az előrejelzéshez.

Visszatér T tömbszerű, alakzat (n_minták, n_osztályok)

Visszaadja a minta log-valószínûségét a modell minden osztályára, ahol az osztályok az önosztályukban vannak rendezve. .

Ez a módszer csak naplózási és módosított Huber-veszteség esetén érhető el.

A többosztályos valószínűségi becsléseket bináris (egy-pihenő) becslésből származtatják egyszerű normalizálással, Zadrozny és Elkan ajánlása szerint.

A veszteség = "módosított_huber" bináris valószínűségi becslését a (clip (döntés_funkció (X), -1, 1) + 1)/2. adja meg. Más veszteségfüggvényekhez megfelelő valószínűség-kalibrálást kell végezni úgy, hogy az osztályozót a sklearn-szel bepakoljuk. calibration.CalibratedClassifierCV helyett.

Paraméterek x, alak (n_minták, n_jellemzők)

Beviteli adatok az előrejelzéshez.

Az alakzat ndarray-jét adja vissza (n_minták, n_classes)

Visszaadja a minta valószínűségét a modell egyes osztályaihoz, ahol az osztályok az önosztályukban vannak rendezve. .

Zadrozny és Elkan, „Az osztályozó pontszámainak átalakítása többosztályos valószínűségi becslésekké”, SIGKDD’02, http://www.research.ibm.com/people/z/zadrozny/kdd2002-Transf.pdf

A veszteség = ”módosított_huber” esetben a képlet indoklása a B. függelékben található: http://jmlr.csail.mit.edu/papers/volume2/zhang02c/zhang02c.pdf

Adja vissza az átlagos pontosságot a megadott vizsgálati adatokon és címkéken.

Többcímkés besorolásnál ez az részhalmaz pontossága, amely kemény mutató, mivel minden mintához megköveteli, hogy minden címkekészletet pontosan megjósoljon.

Paraméterek x tömbszerű alakú (n_minták, n_jellemzők)

y tömbszerű alakú (n_minták,) vagy (n_minták, n_kimenetek)

Igaz címkék X-hez.

minta_súly tömbszerű alakú (n_minták,), alapértelmezett = Nincs

Visszatér pontszám úszó

Az önpredikció (X) Wrt átlagos pontossága. y.

Állítsa be és érvényesítse a becslő paramétereit.

Paraméterek ** kwargs diktálja

Visszatér maga tárgy

Az együttható mátrix konvertálása ritka formátumra.

A coef_ tagot konvertálja scipy.sparse mátrixgá, amely az L1-re szabályozott modelleknél sokkal memória- és tárolási hatékonyságú lehet, mint a szokásos numpy.ndarray reprezentáció.

Az elfogó_ tag nem konvertálva.

A nem ritka modelleknél, vagyis amikor a coef_-ben nincs sok nulla, ez valóban növelheti a memóriahasználatot, ezért óvatosan használja ezt a módszert. Alapszabály, hogy a (coef_ == 0) .sum () értékkel kiszámítható nulla elemnek több mint 50% -nak kell lennie ahhoz, hogy ez jelentős előnyöket biztosítson.

Miután meghívta ezt a módszert, a részleges_fit metódussal való további illesztés (ha van ilyen) addig nem fog működni, amíg meg nem hívja a densify parancsot.