Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Neuralt Nätverk med scikit-learn | Neuronnätverk Från Grunden
Introduktion till neurala nätverk

bookNeuralt Nätverk med scikit-learn

Att arbeta med neurala nätverk kan vara ganska komplicerat, särskilt om du försöker bygga dem från grunden. Istället för att manuellt koda algoritmer och formler kan du använda färdiga verktyg såsom biblioteket sklearn.

Fördelar med att använda sklearn

  1. Enkel användning: du behöver inte fördjupa dig i detaljerna för varje algoritm. Du kan helt enkelt använda färdiga metoder och klasser;

  2. Optimering: biblioteket sklearn är optimerat för prestanda, vilket kan minska träningstiden för din modell;

  3. Omfattande dokumentation: sklearn tillhandahåller omfattande dokumentation med användningsexempel, vilket kan påskynda inlärningsprocessen avsevärt;

  4. Kompatibilitet: sklearn integreras väl med andra populära Python-bibliotek såsom numpy, pandas och matplotlib.

Perceptron i sklearn

För att skapa samma modell som i detta avsnitt kan du använda klassen MLPClassifier från biblioteket sklearn. Dess viktigaste parametrar är följande:

  • max_iter: anger det maximala antalet epoker för träning;
  • hidden_layer_sizes: specificerar antalet neuroner i varje dolt lager som en tuple;
  • learning_rate_init: ställer in inlärningshastigheten för viktuppdateringar.
Note
Notering

Som standard använder MLPClassifier ReLU-aktiveringsfunktionen för dolda lager. För binär klassificering är utdata-lagret i princip detsamma som det du implementerade.

Till exempel kan du med en enda kodrad skapa en perceptron med två dolda lager med 10 neuroner vardera, använda högst 100 epoker för träning och en inlärningshastighet på 0.5:

from sklearn.neural_network import MLPClassifier

model = MLPClassifier(max_iter=100, hidden_layer_sizes=(10,10), learning_rate_init=0.5)
Note
Notering

Neurala nätverk i sklearn bestämmer antalet in- och utgångar baserat på den data de tränas på. Det finns därför inget behov av att ange dessa manuellt.

Precis som med vår implementation innebär träning av modellen helt enkelt att anropa metoden fit():

model.fit(X_train, y_train)

För att få de predicerade etiketterna (t.ex. på testuppsättningen) behöver du bara anropa metoden predict():

y_pred = model.predict(X_test)
Uppgift

Swipe to start coding

Målet är att skapa, träna och utvärdera en perceptron med samma struktur som den du tidigare implementerat, men nu med hjälp av sklearn-biblioteket:

  1. Initiera en perceptron med 100 tränings-epoker, två dolda lager med 6 neuroner vardera och en inlärningshastighet på 0.01 (ange parametrarna i exakt denna ordning).
  2. Träna modellen på träningsdatan.
  3. Hämta prediktioner på testdatan.
  4. Beräkna modellens noggrannhet på testdatan.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 13
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4

bookNeuralt Nätverk med scikit-learn

Svep för att visa menyn

Att arbeta med neurala nätverk kan vara ganska komplicerat, särskilt om du försöker bygga dem från grunden. Istället för att manuellt koda algoritmer och formler kan du använda färdiga verktyg såsom biblioteket sklearn.

Fördelar med att använda sklearn

  1. Enkel användning: du behöver inte fördjupa dig i detaljerna för varje algoritm. Du kan helt enkelt använda färdiga metoder och klasser;

  2. Optimering: biblioteket sklearn är optimerat för prestanda, vilket kan minska träningstiden för din modell;

  3. Omfattande dokumentation: sklearn tillhandahåller omfattande dokumentation med användningsexempel, vilket kan påskynda inlärningsprocessen avsevärt;

  4. Kompatibilitet: sklearn integreras väl med andra populära Python-bibliotek såsom numpy, pandas och matplotlib.

Perceptron i sklearn

För att skapa samma modell som i detta avsnitt kan du använda klassen MLPClassifier från biblioteket sklearn. Dess viktigaste parametrar är följande:

  • max_iter: anger det maximala antalet epoker för träning;
  • hidden_layer_sizes: specificerar antalet neuroner i varje dolt lager som en tuple;
  • learning_rate_init: ställer in inlärningshastigheten för viktuppdateringar.
Note
Notering

Som standard använder MLPClassifier ReLU-aktiveringsfunktionen för dolda lager. För binär klassificering är utdata-lagret i princip detsamma som det du implementerade.

Till exempel kan du med en enda kodrad skapa en perceptron med två dolda lager med 10 neuroner vardera, använda högst 100 epoker för träning och en inlärningshastighet på 0.5:

from sklearn.neural_network import MLPClassifier

model = MLPClassifier(max_iter=100, hidden_layer_sizes=(10,10), learning_rate_init=0.5)
Note
Notering

Neurala nätverk i sklearn bestämmer antalet in- och utgångar baserat på den data de tränas på. Det finns därför inget behov av att ange dessa manuellt.

Precis som med vår implementation innebär träning av modellen helt enkelt att anropa metoden fit():

model.fit(X_train, y_train)

För att få de predicerade etiketterna (t.ex. på testuppsättningen) behöver du bara anropa metoden predict():

y_pred = model.predict(X_test)
Uppgift

Swipe to start coding

Målet är att skapa, träna och utvärdera en perceptron med samma struktur som den du tidigare implementerat, men nu med hjälp av sklearn-biblioteket:

  1. Initiera en perceptron med 100 tränings-epoker, två dolda lager med 6 neuroner vardera och en inlärningshastighet på 0.01 (ange parametrarna i exakt denna ordning).
  2. Träna modellen på träningsdatan.
  3. Hämta prediktioner på testdatan.
  4. Beräkna modellens noggrannhet på testdatan.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 13
single

single

some-alt