Scikit-learn
SKTet, plný názov scikit-learn, je knižnica strojového učenia v Pythone, postavená na základe dátových balíkov ako numpy, scipy a matplotlib, pokrývajúca takmer všetky aspekty strojového učenia, ako sú vzorkové dáta, predspracovanie dát, overovanie modelu, výber príznakov, klasifikácia, regresia, zhlukovanie a znižovanie dimenzionality. Na rozdiel od deep learning štandardu dostupného v rôznych frameworkoch ako pytorch a TensorFlow, sklearn je preferovanou knižnicou pre tradičné strojové učenie v pythone a neexistujú žiadni iní konkurenti.
Oficiálna webová stránka:Prihlásenie na hypertextový odkaz je viditeľné. Zdroj:Prihlásenie na hypertextový odkaz je viditeľné.
Rozšírenie pre Scikit-learn
Ako klasický rámec strojového učenia sa scikit-learn vyvíja už viac ako desať rokov od svojho vzniku, no jeho výpočtová rýchlosť bola používateľom široko kritizovaná. Rozšírenie pre Scikit-learn je bezplatný AI softvérový akcelerátor navrhnutý tak, aby vám pomoholExistujúci kód Scikit-learn poskytuje 10 až 100x rýchlejšie zrýchlenia。 Softvérové zrýchlenie sa dosahuje prostredníctvom vektorových inštrukcií, optimalizácie pamäte pre AI hardvér, vláknovania a optimalizácie.
S rozšírením Scikit-learn môžete:
- Trénovanie a inferencia sú 100-krát rýchlejšie s rovnakou matematickou presnosťou
- Využite zlepšenia výkonu naprieč rôznymi hardvérovými konfiguráciami CPU, vrátane konfigurácií GPU a multi-GPU
- Integrujte rozšírenia do existujúcich Scikit-learn aplikácií bez úprav kódu
- Pokračujte v používaní open-source API scikit-learn
- Použi pár riadkov kódu alebo povol a vypni rozšírenia v príkazovom riadku
Zdroj:Prihlásenie na hypertextový odkaz je viditeľné. Dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.
Test
Najprv použite conda na prípravu prostredia a inštaláciu potrebných balíkov pomocou nasledujúceho príkazu:
Nový testovací kód v Pythone je nasledovný:
Zrýchlený kód je nasledovný:
Interpretácia zdrojového kódu:
1.X, y = make_regression(n_samples=2000000, n_features=100, šum=1, random_state=42) make_regression je funkcia v scikit-learn, ktorá generuje dátovú sadu pre lineárne regresné problémy. n_samples=2000000: Špecifikuje počet vzoriek v generovanej datasete 2 000 000. n_features=100: Špecifikuje, že každá vzorka má 100 vlastností (t. j. vstupných premenných). šum=1: Smerodatná odchýlka sčítania šumu na cieľovej hodnote y je 1. To znamená, že cieľová hodnota bude mať určité náhodné perturbácie. random_state=42: Nastavte náhodný seed na 42, aby ste zabezpečili, že generované dáta sú pri každom spustení kódu rovnaké (opakovateľnosť). Výsledky: X je NumPy pole tvarov (2000000, 100) reprezentujúce 2 000 000 vzoriek s každým 100 znakmi; y je jednorozmerné pole s dĺžkou 2 000 000, ktoré predstavuje cieľovú hodnotu.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split je funkcia v scikit-learn, ktorá rozdeľuje dátovú sadu na trénovací a testovací súbor. test_size=0,33: Označuje, že 33 % dátovej sady je pridelených testovacej množine a zvyšných 67 % je pridelených trénovacej množine. random_state=42: Nastavte náhodný seed na 42, aby výsledok rozdelenia dát bol vždy rovnaký pri spustení kódu. : Použite podčiarknutie na ignorovanie hodnoty návratu. Tu nás zaujíma len časť tréningovej sady (X_train a y_train) a ignorujeme časť testovacej sady. Výsledok: X_train: Matica znakov trénovacej množiny, tvarovaná ako (1340000, 100) (približne 67 % dát). y_train: Cieľová hodnota tréningovej sady s dĺžkou 1 340 000.
3. model = LinearRegression() LinearRegression je trieda v scikit-learn, ktorá implementuje lineárne regresné modely. Tento riadok kódu vytvára inštanciu lineárneho regresného modelu a priraďuje hodnoty premennému modelu. LinearRegression štandardne neregularizuje dáta (t. j. žiadna regularizácia L1 alebo L2).
4. model.fit(X_train, y_train) Fit je metóda v modeli scikit-learn, ktorá sa používa na trénovanie modelu. Tu sa používa metóda prispôsobenia na prispôsobenie lineárnemu regresnému modelu pomocou tréningovej množiny X_train a cieľovej hodnoty y_train. Model vypočíta optimálnu množinu váh (koeficientov) a interceptuje, aby minimalizoval chybu medzi predpokladanou a skutočnou hodnotou (zvyčajne najmenšími štvorcami). Po dokončení trénovania sa parametre modelu ukladajú do model.coef_ (váha prvku) a model.intercept_ (intercept).
Doba vykonania je nasledovná:
Vidíte, že efekt je veľmi zrejmý bez zrýchlenia aj po zrýchlení,Bez zrýchlenia to trvá približne 16 sekúnd a po zrýchlení len 0,1 sekundy!!!! |