Scikit-learn
SKTet, fulde navn scikit-learn, er et maskinlæringsbibliotek i Python, bygget på basis af data science-pakker som numpy, scipy og matplotlib, der dækker næsten alle aspekter af maskinlæring såsom prøvedata, dataforbehandling, modelverifikation, funktionsudvælgelse, klassifikation, regression, klyngedannelse og dimensionsreduktion. I modsætning til deep learning-standarden, der findes i forskellige frameworks som pytorch og TensorFlow, er sklearn det foretrukne bibliotek til traditionel maskinlæring i python, og der findes ingen andre konkurrenter.
Officiel hjemmeside:Hyperlink-login er synlig. Kilde:Hyperlink-login er synlig.
Udvidelse til Scikit-learn
Som et klassisk maskinlæringsframework har scikit-learn udviklet sig i mere end ti år siden sin fødsel, men dets beregningshastighed er blevet bredt kritiseret af brugerne. Extension for Scikit-learn er en gratis AI-softwareaccelerator designet til at hjælpe digEksisterende Scikit-learn-kode giver 10 til 100 gange hurtigere hastighedsforøgelser。 Softwareacceleration opnås gennem vektorinstruktioner, hukommelsesoptimering til AI-hardware, threading og optimering.
Med Scikit-learn-udvidelsen kan du:
- Træning og slutning er 100 gange hurtigere med samme matematiske præcision
- Fordel af ydelsesforbedringer på tværs af forskellige CPU-hardwarekonfigurationer, herunder GPU- og multi-GPU-konfigurationer
- Integrér udvidelser i dine eksisterende Scikit-learn-applikationer uden at ændre koden
- Fortsæt med at bruge open source scikit-learn API'en
- Brug et par linjer kode eller aktiver og deaktiver udvidelser i kommandolinjen
Kilde:Hyperlink-login er synlig. Dokumentation:Hyperlink-login er synlig.
Test
Først brug conda til at forberede miljøet og installer de nødvendige pakker med følgende kommando:
Den nye Python-testkode er som følger:
Den accelererede kode er som følger:
Kildekodefortolkning:
1.X, y = make_regression(n_samples=2000000, n_features=100, støj=1, random_state=42) make_regression er en funktion i scikit-learn, der genererer et datasæt til lineære regressionsproblemer. n_samples=20000000: Angiver antallet af prøver i det genererede datasæt på 2.000.000. n_features=100: Specificerer, at hver prøve har 100 features (dvs. inputvariabler). Støj=1: Standardafvigelsen for at tilføje støj på målværdien y er 1. Det betyder, at målværdien vil have nogle tilfældige forstyrrelser. random_state=42: Sæt det tilfældige seed til 42, så de genererede data er de samme hver gang koden køres (gentagbarhed). Resultater: X er et NumPy-array af form (2000000, 100), der repræsenterer 2.000.000 prøver med 100 funktioner hver; y er et endimensionelt array på 2.000.000 i længden, som repræsenterer målværdien.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split er en funktion i scikit-learn, der opdeler datasættet i trænings- og testsæt. test_size=0,33: Indikerer, at 33% af datasættet er allokeret til testsættet, og de resterende 67% er tildelt træningssættet. random_state=42: Sæt det tilfældige seed til 42, så resultatet af datadelingen er det samme hver gang du kører koden. : Brug en understregning til at ignorere returværdien. Her går vi kun op i træningssættet (X_train og y_train) og ignorerer testsættet. Udfald: X_train: Funktionsmatricen for træningssættet, formet som (1340000, 100) (omkring 67% af dataene). y_train: Målværdien for træningen med en længde på 1.340.000.
3. model = LineærRegression() LinearRegression er et kursus i scikit-learn, der implementerer lineære regressionsmodeller. Denne kodelinje skaber en instans af en lineær regressionsmodel og tildeler værdier til variabelmodellen. Som standard regulariserer lineær regression ikke data (dvs. ingen L1- eller L2-regularisering).
4. model.fit(X_train, y_train) Fit er en metode i scikit-learn-modellen, der bruges til at træne modellen. Her kaldes tilpasningsmetoden for at tilpasse den lineære regressionsmodel ved hjælp af træningsmængdens data X_train og målværdien y_train. Modellen beregner et optimalt sæt vægte (koefficienter) og intercepter for at minimere fejlen mellem de forudsagte og sande værdier (normalt mindste kvadrater). Når træningen er afsluttet, gemmes modellens parametre i model.coef_ (featurets vægt) og model.intercept_ (intercept).
Udførelsestiden er som følger:
Du kan se, at effekten er meget tydelig både uden acceleration og efter acceleration,Det tager cirka 16 sekunder uden acceleration og kun 0,1 sekunder efter acceleration!!!! |