Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Neurale Netwerk met scikit-learn | Neuraal Netwerk Vanaf Nul
Introductie tot Neurale Netwerken met Python

bookNeurale Netwerk met scikit-learn

Werken met neurale netwerken kan behoorlijk ingewikkeld zijn, vooral als je ze vanaf nul probeert op te bouwen. In plaats van handmatig algoritmen en formules te coderen, kun je gebruikmaken van kant-en-klare tools zoals de sklearn-bibliotheek.

Voordelen van het gebruik van sklearn

  1. Gebruiksgemak: je hoeft niet diep in te gaan op de details van elk algoritme. Je kunt eenvoudig kant-en-klare methoden en klassen gebruiken;

  2. Optimalisatie: de sklearn-bibliotheek is geoptimaliseerd voor prestaties, wat de traintijd van je model kan verkorten;

  3. Uitgebreide documentatie: sklearn biedt uitgebreide documentatie met gebruiksvoorbeelden, wat het leerproces aanzienlijk kan versnellen;

  4. Compatibiliteit: sklearn integreert goed met andere populaire Python-bibliotheken zoals numpy, pandas en matplotlib.

Perceptron in sklearn

Om hetzelfde model als in deze sectie te maken, kun je de MLPClassifier-klasse uit de sklearn-bibliotheek gebruiken. De belangrijkste parameters zijn als volgt:

  • max_iter: bepaalt het maximale aantal epochs voor training;
  • hidden_layer_sizes: specificeert het aantal neuronen in elke verborgen laag als een tuple;
  • learning_rate_init: stelt het leerrendement in voor gewichtsaanpassingen.
Note
Opmerking

Standaard gebruikt MLPClassifier de ReLU activatiefunctie voor verborgen lagen. Voor binaire classificatie is de output-laag in wezen gelijk aan degene die je zelf hebt geïmplementeerd.

Bijvoorbeeld, met één regel code kun je een perceptron maken met twee verborgen lagen van elk 10 neuronen, waarbij maximaal 100 epochs voor training worden gebruikt en een leersnelheid van 0.5:

from sklearn.neural_network import MLPClassifier

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

Neurale netwerken in sklearn bepalen het aantal inputs en outputs op basis van de data waarop ze getraind worden. Het is daarom niet nodig om deze handmatig in te stellen.

Net als bij onze implementatie houdt het trainen van het model eenvoudigweg in dat de methode fit() wordt aangeroepen:

model.fit(X_train, y_train)

Om de voorspelde labels te verkrijgen (bijvoorbeeld op de testset), hoeft u alleen de methode predict() aan te roepen:

y_pred = model.predict(X_test)
Taak

Swipe to start coding

Het doel is om een perceptronmodel te reconstrueren, trainen en evalueren met behulp van de scikit-learn-bibliotheek, volgens dezelfde structuur als de eerder gemaakte aangepaste implementatie.

Volg deze stappen zorgvuldig:

  1. Initialiseer het perceptron met de MLPClassifier-klasse:
    • Stel het aantal trainings-epochs in op 100 met max_iter=100;
  • Gebruik twee verborgen lagen, elk met 6 neuronen (hidden_layer_sizes=(6, 6));
  • Stel het leerpercentage in op 0.01 met learning_rate_init=0.01;
  • Voeg random_state=10 toe voor reproduceerbaarheid.
  1. Train het model op de trainingsdataset met de .fit()-methode.
  2. Verkrijg voorspellingen voor alle voorbeelden in de testset met de .predict()-methode.
  3. Evalueer de prestaties door de nauwkeurigheid van het model op de testset te berekenen met de functie accuracy_score().

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 13
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain what the `MLPClassifier` is used for?

What do the parameters like `max_iter` and `hidden_layer_sizes` mean in practice?

How do I interpret the results from `model.predict()`?

close

bookNeurale Netwerk met scikit-learn

Veeg om het menu te tonen

Werken met neurale netwerken kan behoorlijk ingewikkeld zijn, vooral als je ze vanaf nul probeert op te bouwen. In plaats van handmatig algoritmen en formules te coderen, kun je gebruikmaken van kant-en-klare tools zoals de sklearn-bibliotheek.

Voordelen van het gebruik van sklearn

  1. Gebruiksgemak: je hoeft niet diep in te gaan op de details van elk algoritme. Je kunt eenvoudig kant-en-klare methoden en klassen gebruiken;

  2. Optimalisatie: de sklearn-bibliotheek is geoptimaliseerd voor prestaties, wat de traintijd van je model kan verkorten;

  3. Uitgebreide documentatie: sklearn biedt uitgebreide documentatie met gebruiksvoorbeelden, wat het leerproces aanzienlijk kan versnellen;

  4. Compatibiliteit: sklearn integreert goed met andere populaire Python-bibliotheken zoals numpy, pandas en matplotlib.

Perceptron in sklearn

Om hetzelfde model als in deze sectie te maken, kun je de MLPClassifier-klasse uit de sklearn-bibliotheek gebruiken. De belangrijkste parameters zijn als volgt:

  • max_iter: bepaalt het maximale aantal epochs voor training;
  • hidden_layer_sizes: specificeert het aantal neuronen in elke verborgen laag als een tuple;
  • learning_rate_init: stelt het leerrendement in voor gewichtsaanpassingen.
Note
Opmerking

Standaard gebruikt MLPClassifier de ReLU activatiefunctie voor verborgen lagen. Voor binaire classificatie is de output-laag in wezen gelijk aan degene die je zelf hebt geïmplementeerd.

Bijvoorbeeld, met één regel code kun je een perceptron maken met twee verborgen lagen van elk 10 neuronen, waarbij maximaal 100 epochs voor training worden gebruikt en een leersnelheid van 0.5:

from sklearn.neural_network import MLPClassifier

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

Neurale netwerken in sklearn bepalen het aantal inputs en outputs op basis van de data waarop ze getraind worden. Het is daarom niet nodig om deze handmatig in te stellen.

Net als bij onze implementatie houdt het trainen van het model eenvoudigweg in dat de methode fit() wordt aangeroepen:

model.fit(X_train, y_train)

Om de voorspelde labels te verkrijgen (bijvoorbeeld op de testset), hoeft u alleen de methode predict() aan te roepen:

y_pred = model.predict(X_test)
Taak

Swipe to start coding

Het doel is om een perceptronmodel te reconstrueren, trainen en evalueren met behulp van de scikit-learn-bibliotheek, volgens dezelfde structuur als de eerder gemaakte aangepaste implementatie.

Volg deze stappen zorgvuldig:

  1. Initialiseer het perceptron met de MLPClassifier-klasse:
    • Stel het aantal trainings-epochs in op 100 met max_iter=100;
  • Gebruik twee verborgen lagen, elk met 6 neuronen (hidden_layer_sizes=(6, 6));
  • Stel het leerpercentage in op 0.01 met learning_rate_init=0.01;
  • Voeg random_state=10 toe voor reproduceerbaarheid.
  1. Train het model op de trainingsdataset met de .fit()-methode.
  2. Verkrijg voorspellingen voor alle voorbeelden in de testset met de .predict()-methode.
  3. Evalueer de prestaties door de nauwkeurigheid van het model op de testset te berekenen met de functie accuracy_score().

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 13
single

single

some-alt