Scikit-learn
SKTet, polno ime scikit-learn, je knjižnica strojnega učenja v Pythonu, zgrajena na osnovi podatkovnoznanstvenih paketov, kot so numpy, scipy in matplotlib, ki pokriva skoraj vse vidike strojnega učenja, kot so vzorčni podatki, predobdelava podatkov, preverjanje modelov, izbira značilnosti, klasifikacija, regresija, gručenje in zmanjševanje dimenzionalnosti. Za razliko od osnove globokega učenja, ki je na voljo v različnih ogrodjih, kot sta pytorch in TensorFlow, je sklearn prednostna knjižnica za tradicionalno strojno učenje v Pythonu in ni drugih konkurentov.
Uradna spletna stran:Prijava do hiperpovezave je vidna. Izvir:Prijava do hiperpovezave je vidna.
Razširitev za Scikit-learn
Kot klasičen okvir strojnega učenja se scikit-learn razvija že več kot deset let od svojega nastanka, vendar je bila njegova računalniška hitrost deležna številnih kritik med uporabniki. Razširitev za Scikit-learn je brezplačen pospeševalnik AI programske opreme, zasnovan za pomočObstoječa Scikit-learn koda omogoča 10- do 100-krat hitrejše pospeške。 Pospeševanje programske opreme se doseže z vektorskimi ukazi, optimizacijo pomnilnika za AI strojno opremo, nitnim povezovanjem in optimizacijo.
Z razširitvijo Scikit-learn lahko:
- Učenje in sklepanje sta 100-krat hitrejša z enako matematično natančnostjo
- Izkoristite izboljšave zmogljivosti v različnih konfiguracijah strojne opreme CPU, vključno z GPU in večGPU konfiguracijami
- Integrirajte razširitve v obstoječe Scikit-learn aplikacije brez spreminjanja kode
- Nadaljujte z uporabo odprtokodnega API-ja scikit-learn
- Uporabite nekaj vrstic kode ali omogočite in onemogočite razširitve v ukazni vrstici
Izvir:Prijava do hiperpovezave je vidna. Dokumentacija:Prijava do hiperpovezave je vidna.
Preizkus
Najprej uporabite conda za pripravo okolja in namestitev potrebnih paketov z naslednjim ukazom:
Nova testna koda v Pythonu je naslednja:
Pospešena koda je naslednja:
Interpretacija izvorne kode:
1.X, y = make_regression(n_samples=2000000, n_features=100, šum=1, random_state=42) make_regression je funkcija v scikit-learn, ki generira podatkovni niz za probleme linearne regresije. n_samples=2000000: Določa število vzorcev v generiranem podatkovnem nizu 2.000.000. n_features=100: Določa, da ima vsak vzorec 100 značilnosti (tj. vhodnih spremenljivk). šum=1: Standardni odklon dodajanja šuma na ciljno vrednost y je 1. To pomeni, da bo ciljna vrednost imela nekaj naključnih motenj. random_state=42: Nastavite naključno seme na 42, da zagotovite, da so generirani podatki enaki vsakič, ko se zažene koda (ponovljivost). Rezultati: X je NumPy niz oblik (2000000, 100), ki predstavlja 2.000.000 vzorcev s 100 značilnostmi vsak; y je enodimenzionalna tabela dolžine 2.000.000, ki predstavlja ciljno vrednost.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split je funkcija v scikit-learn, ki razdeli nabor podatkov na učni in testni nabor. test_size=0,33: Označuje, da je 33 % podatkovnega niza dodeljenih testnemu naboru, preostalih 67 % pa učnemu naboru. random_state=42: Nastavite naključno seme na 42, da zagotovite, da je rezultat delitve podatkov enak vsakič, ko zaženete kodo. : Uporabite podčrtajo, da ignorirate vrednost donosa. Tukaj nas zanima samo del učnega nabora (X_train in y_train) in ignoriramo del testnega nabora. Rezultat: X_train: Matrika značilnosti učnega nabora, oblikovana kot (1340000, 100) (približno 67 % podatkov). y_train: Ciljna vrednost učnega nabora dolžine 1.340.000.
3. model = LinearRegression() LinearRegression je predmet v scikit-learn, ki implementira linearne regresijske modele. Ta vrstica kode ustvari instanco linearnega regresijskega modela in dodeli vrednosti modelu spremenljivke. Privzeto linearna regresija ne regularizira podatkov (tj. ni regularizacije L1 ali L2).
4. model.fit(X_train, y_train) Prileganje je metoda v modelu scikit-learn, ki se uporablja za učenje modela. Tukaj se metoda prileganja uporabi za prilagoditev linearnemu regresijskemu modelu z uporabo učnega nabora X_train in ciljne vrednosti y_train. Model izračuna optimalen nabor uteži (koeficientov) in prestrezov, da zmanjša napako med napovedano in resnično vrednostjo (običajno najmanjše kvadrate). Ko je učenje končano, se parametri modela shranijo v model.coef_ (teža značilnosti) in model.intercept_ (prestrez).
Čas izvedbe je naslednji:
Lahko vidite, da je učinek zelo očiten tako brez pospeševanja kot po pospešku,Brez pospeševanja traja približno 16 sekund in le 0,1 sekunde po pospeševanju!!!! |