jest teraz modnym hasłem. Za pomocą uczenia maszynowego robi się niesamowite rzeczy. Od bycia naszym osobisty asystent do podjęcia decyzji o naszych trasy podróży , pomagając nam robić zakupy, pomagając nam w prowadzeniu biznesu, dbając o nasze zdrowie i dobra kondycja, Uczenie maszynowe jest zintegrowane z naszą codzienną egzystencją na tak fundamentalnych poziomach, że przez większość czasu nawet nie zdajemy sobie sprawy, że na nim polegamy. W tym artykule będziemy postępować zgodnie z podejściem początkującego, aby zaimplementować standardowy klasyfikator systemów uczących się w Pythonie.
- Omówienie uczenia maszynowego
- Szablon klasyfikatorów uczenia maszynowego
- Problem klasyfikacji uczenia maszynowego
Omówienie uczenia maszynowego
Uczenie maszynowe to koncepcja, która pozwala maszynie uczyć się na przykładach i doświadczeniach, a także bez konieczności bezpośredniego programowania. Więc zamiast pisać kod, to, co robisz, to przesyłanie danych do ogólnego algorytmu, a algorytm / maszyna buduje logikę na podstawie podanych danych.
Uczenie maszynowe obejmuje zdolność maszyn do podejmowania decyzji, oceny wyników swoich działań i doskonalenia swojego zachowania, aby sukcesywnie uzyskiwać lepsze wyniki.
Proces uczenia się przebiega na trzy główne sposoby
- Nadzorowana nauka
- Uczenie się bez nadzoru
- Uczenie się ze wzmocnieniem
co wszyscy mogą monitorować nagios
Szablon klasyfikatorów uczenia maszynowego
Narzędzia uczenia maszynowego są dość wygodne w bibliotece Pythona o nazwie scikit-learn, do której dostęp i zastosowanie są bardzo proste.
Zainstaluj scikit-learn za pomocą wiersza poleceń, używając:
pip install -U scikit-learn
Jeśli jesteś użytkownikiem anaconda, w monicie anaconda możesz użyć:
conda install scikit-learn
Instalacja wymaga wcześniejszej instalacji pakietów NumPy i SciPy w systemie.
Przetwarzanie wstępne: Pierwszym i najbardziej niezbędnym krokiem w każdej analizie danych opartej na uczeniu maszynowym jest część dotycząca przetwarzania wstępnego. Prawidłowa reprezentacja i czyszczenie danych jest absolutnie niezbędne, aby model ML mógł dobrze trenować i wykorzystywać swój potencjał.
Krok 1 - Importuj niezbędne biblioteki
import numpy as np import pandy as pd import matplotlib.pyplot as plt
Krok 2 - Zaimportuj zbiór danych
dataset = pd.read_csv ()
Następnie dzielimy zbiór danych na zmienne niezależne i zależne. Zmienne niezależne są danymi wejściowymi, a zmienną zależną są danymi wyjściowymi.
X = dataset.iloc []. Values y = dataset.iloc []. Values
Krok 3 - Obsługa brakujących danych
Zbiór danych może zawierać wartości puste lub puste, co może powodować błędy w naszych wynikach. Stąd musimy sobie radzić z takimi wpisami. Powszechną praktyką jest zastępowanie wartości null wspólną wartością, taką jak średnia lub najczęściej występująca wartość w tej kolumnie.
from sklearn.preprocessing import Imputer imputer = Imputer (missing_values = 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])
Krok 4 - Konwertuj zmienne kategorialne na zmienne numeryczne
from sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)
Teraz, po zakodowaniu, może się zdarzyć, że maszyna przyjmie dane liczbowe jako ranking dla zakodowanych kolumn. W związku z tym, aby zapewnić równą wagę, musimy przekonwertować liczby na jedne gorące wektory, używając klasy OneHotEncoder.
from sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()
Krok 5 - Wykonaj skalowanie
Ten krok polega na rozwiązaniu problemu rozbieżności wynikających z niedopasowanych skal zmiennych. Dlatego skalujemy je wszystkie do tego samego zakresu, tak aby podczas wprowadzania do modelu miały taką samą wagę. Wykorzystujemy do tego obiekt klasy StandardScaler.
from sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)
Krok 6 - Podziel zbiór danych na dane treningowe i testowe
Na ostatnim etapie przetwarzania wstępnego zbiór danych należy podzielić na zbiór uczący i zbiór testowy. Standardowy stosunek podziału pociągu na test wynosi 75% -25%. Możemy modyfikować zgodnie z wymaganiami. Funkcja train_test_split () może to zrobić za nas.
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)
Budowa modelu: Ten krok jest właściwie dość prosty. Kiedy już zdecydujemy, który model zastosować do danych, możemy utworzyć obiekt odpowiadającej mu klasy i dopasować obiekt do naszego zbioru uczącego, traktując X_train jako dane wejściowe i y_train jako dane wyjściowe.
od sklearn. import classifier = () classifier.fit (X_train, y_train)
Model jest teraz wytrenowany i gotowy. Możemy teraz zastosować nasz model do zestawu testowego i znaleźć przewidywane dane wyjściowe.
wyjaśnij różnicę między obiektami zmiennymi i niezmiennymi.
y_pred = klasyfikator.predict (X_test)
Przeglądanie wyników: Wydajność klasyfikatora można ocenić na podstawie parametrów dokładności, precyzji, zapamiętania i wyniku f1. Te wartości można zobaczyć za pomocą metody znanej jako klasyfikacja_report (). t można również postrzegać jako matrycę nieporozumień, która pomaga nam dowiedzieć się, ile kategorii danych zostało poprawnie sklasyfikowanych.
from sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) from sklearn.metrics import klasyfikacji_report target_names = [] print (klasyfikacja_report (y_test, y_pred, target_names = target_names))
Problem z klasyfikatorem uczenia maszynowego
Wykorzystamy bardzo popularny i prosty zbiór danych Iris, zawierający wymiary kwiatów w 3 kategoriach - Iris-setosa, Iris-versicolor i Iris-virginica. Zbiór danych zawiera 150 wpisów.
# Importowanie bibliotek import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importowanie zestawu danych dataset = pd.read_csv ('iris.csv')
Przejrzyjmy teraz zbiór danych.
dataset.head ()
Mamy 4 zmienne niezależne (bez Id), mianowicie numery kolumn 1-4, a kolumna 5 to zmienna zależna. Więc możemy je oddzielić.
X = dataset.iloc [:, 1: 5] .values y = dataset.iloc [:, 5] .values
Teraz możemy podzielić zbiór danych na szkolenie i testowanie.
# Dzielenie zestawu danych do zbioru uczącego i zestawu testowego ze sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)
Teraz zastosujemy klasyfikator regresji logistycznej do zbioru danych.
# Budowanie i uczenie modelu z sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Przewidywanie wyników zestawu testowego y_pred = classifier.predict (X_test)
Ostatnim krokiem będzie analiza wydajności wytrenowanego modelu.
# Tworzenie macierzy zamieszania ze sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)
To pokazuje nam, że 13 wpisów z pierwszej kategorii, 11 z drugiej i 9 z trzeciej kategorii zostało poprawnie przewidzianych przez model.
# Generowanie dokładności, precyzji, przypominania i wyniku f1 ze sklearn.metrics import klasyfikacja_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (klasyfikacja_report (y_test, y_pred, target_names = target_names) )
Raport przedstawia precyzję, zapamiętanie, wynik f1 i dokładność modelu w naszym zbiorze testowym, który składa się z 38 pozycji (25% zbioru danych).
Gratulacje, pomyślnie utworzyłeś i zaimplementowałeś swój pierwszy klasyfikator uczenia maszynowego w Pythonie! Aby uzyskać dogłębną wiedzę na temat wraz z jego różnymi aplikacjami możesz zapisać się na szkolenie online Python na żywo z całodobową pomocą techniczną i dożywotnim dostępem.