Scikit-learn
SKTet, pełna nazwa scikit-learn, to biblioteka uczenia maszynowego w Pythonie, zbudowana na bazie pakietów data science takich jak numpy, scipy i matplotlib, obejmująca niemal wszystkie aspekty uczenia maszynowego, takie jak dane próbne, ich wstępne przetwarzanie, weryfikacja modelu, wybór cech, klasyfikacja, regresja, klasteryzacja oraz redukcja wymiarowości. W przeciwieństwie do bazy deep learningu dostępnej w różnych frameworkach, takich jak pytorch i TensorFlow, sklearn jest preferowaną biblioteką dla tradycyjnego uczenia maszynowego w Pythonie i nie ma innych konkurentów.
Oficjalna strona internetowa:Logowanie do linku jest widoczne. Źródło:Logowanie do linku jest widoczne.
Rozszerzenie dla Scikit-learn
Jako klasyczny framework uczenia maszynowego, scikit-learn rozwija się od ponad dziesięciu lat od momentu powstania, jednak jego szybkość obliczeń była szeroko krytykowana przez użytkowników. Rozszerzenie dla Scikit-learn to darmowy akcelerator oprogramowania AI zaprojektowany, aby Ci pomócIstniejący kod Scikit-learn zapewnia od 10 do 100 razy szybsze przyspieszenia。 Akceleracja oprogramowania jest osiągana poprzez instrukcje wektorowe, optymalizację pamięci dla sprzętu AI, wątkowanie i optymalizację.
Dzięki rozszerzeniu Scikit-learn możesz:
- Trening i wnioskowanie są 100 razy szybsze przy tej samej precyzji matematycznej
- Skorzystaj z poprawy wydajności w różnych konfiguracjach sprzętowych CPU, w tym GPU i multi-GPU
- Integruj rozszerzenia z istniejącymi aplikacjami Scikit-learn bez modyfikowania kodu
- Kontynuuj korzystanie z otwartoźródłowego API scikit-learn
- Użyj kilku linii kodu lub włącz i wyłącz rozszerzenia w wierszu poleceń
Źródło:Logowanie do linku jest widoczne. Dokumentacja:Logowanie do linku jest widoczne.
Test
Po pierwsze, użyj conda do przygotowania środowiska i zainstalowania niezbędnych pakietów za pomocą następującego polecenia:
Nowy kod testowy w Pythonie wygląda następująco:
Przyspieszony kod wygląda następująco:
Interpretacja kodu źródłowego:
1.X, y = make_regression(n_samples=2000000, n_features=100, szum=1, random_state=42) make_regression jest funkcją w scikit-learn, która generuje zbiór danych dla problemów regresji liniowej. n_samples=2000000: Określa liczbę próbek w wygenerowanym zbiorze danych wynoszącą 2 000 000. n_features=100: Określa, że każda próbka zawiera 100 cech (czyli zmiennych wejściowych). szum=1: Odchylenie standardowe dodawania szumu do wartości docelowej y wynosi 1. Oznacza to, że wartość docelowa będzie miała pewne losowe zaburzenia. random_state=42: Ustaw losowe ziarno na 42, zapewniając, że generowane dane są takie same za każdym razem, gdy kod jest wykonywany (powtarzalność). Wyniki: X to tablica NumPy o kształtach (2000000, 100) reprezentująca 2 000 000 próbek z 100 cechami każda; y to jednowymiarowa tablica o długości 2 000 000, która reprezentuje wartość docelową.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split jest funkcją w scikit-learn, która dzieli zbiór danych na zestaw treningowy i testowy. test_size=0,33: Oznacza, że 33% zbioru danych jest przypisane do zbioru testowego, a pozostałe 67% do zbioru treningowego. random_state=42: Ustaw losowy seed na 42, aby wynik podziału danych był taki sam za każdym razem, gdy uruchamiasz kod. : Użyj podkreślenia, aby zignorować wartość zwrotu. Tutaj interesuje nas tylko część zestawu treningowego (X_train i y_train) i ignorujemy część zestawu testowego. Wynik: X_train: Macierz cech zbioru treningowego, w kształcie (1340000, 100) (około 67% danych). y_train: Docelowa wartość zbioru treningowego o długości 1 340 000.
3. model = LinearRegression() LinearRegression to klasa w scikit-learn, która implementuje modele regresji liniowej. Ta linia kodu tworzy instancję modelu regresji liniowej i przypisuje wartości modelu zmiennym. Domyślnie LinearRegression nie regularizuje danych (czyli nie regularizuje L1 ani L2).
4. model.fit(X_train, y_train) Dopasowanie to metoda w modelu scikit-learn, która służy do trenowania modelu. Tutaj metoda dopasowania jest używana do dopasowania modelu regresji liniowej, wykorzystując dane zbioru treningowego X_train oraz wartość docelową y_train. Model oblicza optymalny zestaw wag (współczynników) i przecina, aby zminimalizować błąd między przewidywaną a prawdziwą wartością (zwykle najmniejsze kwadraty). Po zakończeniu treningu parametry modelu są przechowywane w model.coef_ (waga cechy) i model.intercept_ (przecięcie).
Czas wykonania jest następujący:
Widać, że efekt jest bardzo widoczny zarówno bez przyspieszenia, jak i po przyspieszeniu,Bez przyspieszenia trwa to około 16 sekund i tylko 0,1 sekundy po przyspieszeniu!!!! |