Implementacja sieci neuronowych od podstaw w Pythonie [z przykładami]

Opublikowany: 2020-12-07

W tym artykule dowiemy się, jak trenować i budować sieć neuronową od podstaw.

Użyjemy zbioru danych Churn do trenowania naszej sieci neuronowej. Trening sieci neuronowej nie jest skomplikowany. Musimy wstępnie przetworzyć nasze dane, aby nasz model mógł z łatwością pobierać nasze dane i trenować bez żadnych przeszkód. Postępujesz w następujący sposób:

  • Zainstaluj Tensorflow
  • Importuj biblioteki
  • Importuj zbiór danych
  • Przekształć dane wejściowe
  • Podziel dane
  • Zainicjuj model
  • Zbuduj model
  • Trenuj modelkę
  • Oceń model

Wskaźnik rezygnacji jest miarą subskrybentów firmy lub strony, która ma tendencję do rezygnacji w określonym czasie. Stawka ta odgrywa istotną rolę w decydowaniu o zyskach i kształtowaniu planów pozyskiwania nowych klientów. W uproszczeniu można powiedzieć, że wzrost firmy można mierzyć wskaźnikiem churn.

W tym zestawie danych mamy trzynaście funkcji, ale używamy tylko kilku funkcji, które spełniają nasze wymagania, aby przewidzieć prawdopodobieństwo zaprzestania korzystania z konta użytkownika.

Ucz się kursu online uczenia maszynowego na najlepszych światowych uniwersytetach. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.

Spis treści

Zainstaluj TensorFlow

Możemy użyć Google Colab, jeśli Twój komputer stacjonarny lub laptop nie ma procesora graficznego, lub możesz użyć notebooków Jupyter. Jeśli używasz swojego systemu, zaktualizuj pip, a następnie zainstaluj TensorFlow w następujący sposób.

Źródło obrazu

Importuj biblioteki

W powyższych liniach kodu właśnie zaimportowałem wszystkie biblioteki, których będę potrzebować w procesie.

Numpy Jest to biblioteka służąca do wykonywania operacji matematycznych na tablicach.

Pandy Aby załadować plik danych jako ramkę danych Pandy i przeanalizować dane.

Matplotlib Zaimportowałem pyplot do wykreślania wykresów danych .

Importuj zbiór danych

Nasz zbiór danych jest w formacie CSV, więc ładujemy zbiór za pomocą operacji pandas. Następnie dzielimy zbiór danych na zmienne zależne i niezależne, gdzie X jest uważane za niezależne, a Y za zależne.

Przekształć dane

W naszym zbiorze danych mamy dwie kategorie, Geografię i Płeć. Musimy utworzyć atrapy dla tych dwóch funkcji, więc używamy metody get_dummies , a następnie dołączamy je do naszych danych o niezależnych funkcjach.

Gdy skończymy tworzyć manekiny i łączyć je z naszymi danymi, usuniemy oryginalne funkcje, tj. Płeć i Geografia, z naszych danych pociągów.

Przeczytaj: Uczenie maszynowe a sieci neuronowe

Podziel dane

Z Sklearn, podbiblioteki model_selection, zaimportujemy train_test_split, który służy do dzielenia zbiorów trenowania i testowania. Do podziału możemy użyć funkcji train_test_split. Test_size = 0,3 wskazuje procent danych, które powinny zostać zatrzymane do testowania.

Normalizuj dane

Ważne jest, aby upewnić się, że wszystkie wartości funkcji mieszczą się w tym samym zakresie. Modelowi trudno byłoby nauczyć się podstawowych wzorców między cechami i nauczyć się podejmować decyzje, dlatego normalizujemy nasze dane do tego samego zakresu za pomocą metody StandardScaler .

Importuj zależności

Teraz zaimportujemy funkcjonalności potrzebne do zbudowania głębokiej sieci neuronowej.

Zbuduj model

Czas zbudować nasz model!. Teraz zainicjujmy nasz model sekwencyjny. Sekwencyjny interfejs API umożliwia tworzenie modeli warstwa po warstwie dla większości problemów.

Pierwszą rzeczą, którą musimy zrobić przed zbudowaniem modelu, jest stworzenie samego obiektu modelu. Ten obiekt będzie instancją klasy o nazwie Sequential.

Dodanie pierwszej w pełni połączonej warstwy

Jeśli nie jesteś świadomy rodzajów warstw i ich funkcjonalności, polecam zajrzenie na mój blog Wprowadzenie do sieci neuronowych, który pozwala poznać większość pojęć, o których powinieneś wiedzieć.

Oznacza to, że wyjście tej operacji powinno mieć sześć neuronów, w których stosujemy funkcję aktywacji ReLU, aby złamać liniowość, a liczba neuronów wejściowych wynosi 11. Wszystkie te hiperparametry dodajemy metodą .add() .

Dodamy ukrytą warstwę o tej samej konfiguracji, w której wyjście tej ukrytej warstwy będzie miało sześć węzłów.

Warstwa wyjściowa

Dane wyjściowe tej warstwy będą miały tylko jeden węzeł, który informuje, czy użytkownik zostaje, czy opuszcza subskrypcję. W tej warstwie używamy sigmoid jako naszej funkcji aktywacji.

Dowiedz się więcej o: Głębokie uczenie a sieci neuronowe

Kompilacja

Teraz musimy połączyć naszą sieć z optymalizatorem. Optymalizator zaktualizuje wagi naszej sieci na podstawie błędu. Proces ten jest znany jako propagacja wsteczna.

Tutaj użyjemy adam jako naszego optymalizatora. Ponieważ nasz wynik jest w kategoriach binarnych, używamy binarnej entropii krzyżowej, a używane przez nas metryki to dokładność .

Trening modelki

Ten etap jest kluczową ścieżką, na której musimy wytrenować nasz model, aby nauczyć się podstawowych wzorców, relacji między danymi i przewidzieć nowy wynik w oparciu o jego wiedzę.

Do uczenia modelu używamy metody model.fit() . Wewnątrz metody przekazujemy trzy argumenty, którymi są

input x_train to wejście podawane do sieci

wyjście zawiera poprawne odpowiedzi dla x_train, tj. y_train

liczba.epok Oznacza to, ile razy zamierzasz szkolić sieć za pomocą zestawu danych.

Oceniać

Wydajność modelu można ocenić, importując wynik_dokładności z biblioteki sklearn, w której należy przekazać dwa argumenty. Jedna to rzeczywista produkcja, a druga to przewidywane wyniki.

Przeczytaj także : Aplikacje sieci neuronowych w świecie rzeczywistym

Wniosek

To wszystko na teraz. Mam nadzieję, że podobało Ci się budowanie swojej pierwszej sieci neuronowej. Miłej nauki!

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź program IIIT-B i upGrad Executive PG w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznych szkoleń, ponad 30 studiów przypadków i zadań, IIIT -B Status absolwenta, ponad 5 praktycznych praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Poprowadź rewolucję technologiczną napędzaną sztuczną inteligencją

Aplikuj na studia magisterskie z zakresu uczenia maszynowego i sztucznej inteligencji