Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Model Evalueren | Modellering
ML Introductie Met Scikit-learn

bookHet Model Evalueren

Bij het bouwen van een model voor voorspellingen is het essentieel om te begrijpen hoe goed het model presteert voordat er daadwerkelijke voorspellingen worden gedaan.

Het evalueren van een model houdt in dat de prestaties bij het maken van voorspellingen worden beoordeeld. Daarom is de .score()-methode belangrijk.

Het evalueren van het model met behulp van de trainingsset kan echter onbetrouwbare resultaten opleveren, omdat een model waarschijnlijk beter presteert op data waarop het getraind is dan op nieuwe, ongeziene data. Het is daarom cruciaal om het model te evalueren op data die het nog nooit heeft gezien om de prestaties echt te begrijpen.

In meer formele termen willen we een model dat goed generaliseert.

Dit kunnen we doen door de data willekeurig te splitsen in een trainingsset en een testset.

Nu kunnen we het model trainen op de trainingsset en de prestaties evalueren op de testset.

model.fit(X_train, y_train)
print(model.score(X_test, y_test))

Om de gegevens willekeurig te splitsen, kunnen we de functie train_test_split() uit de module sklearn.model_selection gebruiken.

Typisch gebruiken we voor een testset 25-40% van de gegevens bij een kleine dataset, 10-30% bij een middelgrote dataset en minder dan 10% bij grote datasets.

In ons voorbeeld, met slechts 342 instanties — geclassificeerd als een kleine dataset — wijzen we 33% van de gegevens toe aan de testset.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

We verwijzen naar de trainingset als X_train en y_train, en naar de testset als X_test en y_test.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Train-test split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33) # Initialize and train a model knn5 = KNeighborsClassifier().fit(X_train, y_train) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X_train, y_train) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X_test, y_test)) print('1 Neighbor score:',knn1.score(X_test, y_test))
copy

Merk op dat we nu de trainingsset gebruiken in .fit(X_train, y_train) en de testset in .score(X_test, y_test).

Aangezien train_test_split() de dataset willekeurig splitst, zijn de train- en testsets elke keer dat je de code uitvoert verschillend. Je kunt dit meerdere keren uitvoeren en zien dat de scores variëren. Deze scores zouden stabieler worden als de omvang van de dataset toeneemt.

question mark

Om een 67%/33% train-test split te bereiken, nemen we het eerste derde deel van de rijen als testset en de rest als trainingsset. Is deze uitspraak correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookHet Model Evalueren

Veeg om het menu te tonen

Bij het bouwen van een model voor voorspellingen is het essentieel om te begrijpen hoe goed het model presteert voordat er daadwerkelijke voorspellingen worden gedaan.

Het evalueren van een model houdt in dat de prestaties bij het maken van voorspellingen worden beoordeeld. Daarom is de .score()-methode belangrijk.

Het evalueren van het model met behulp van de trainingsset kan echter onbetrouwbare resultaten opleveren, omdat een model waarschijnlijk beter presteert op data waarop het getraind is dan op nieuwe, ongeziene data. Het is daarom cruciaal om het model te evalueren op data die het nog nooit heeft gezien om de prestaties echt te begrijpen.

In meer formele termen willen we een model dat goed generaliseert.

Dit kunnen we doen door de data willekeurig te splitsen in een trainingsset en een testset.

Nu kunnen we het model trainen op de trainingsset en de prestaties evalueren op de testset.

model.fit(X_train, y_train)
print(model.score(X_test, y_test))

Om de gegevens willekeurig te splitsen, kunnen we de functie train_test_split() uit de module sklearn.model_selection gebruiken.

Typisch gebruiken we voor een testset 25-40% van de gegevens bij een kleine dataset, 10-30% bij een middelgrote dataset en minder dan 10% bij grote datasets.

In ons voorbeeld, met slechts 342 instanties — geclassificeerd als een kleine dataset — wijzen we 33% van de gegevens toe aan de testset.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

We verwijzen naar de trainingset als X_train en y_train, en naar de testset als X_test en y_test.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Train-test split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33) # Initialize and train a model knn5 = KNeighborsClassifier().fit(X_train, y_train) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X_train, y_train) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X_test, y_test)) print('1 Neighbor score:',knn1.score(X_test, y_test))
copy

Merk op dat we nu de trainingsset gebruiken in .fit(X_train, y_train) en de testset in .score(X_test, y_test).

Aangezien train_test_split() de dataset willekeurig splitst, zijn de train- en testsets elke keer dat je de code uitvoert verschillend. Je kunt dit meerdere keren uitvoeren en zien dat de scores variëren. Deze scores zouden stabieler worden als de omvang van de dataset toeneemt.

question mark

Om een 67%/33% train-test split te bereiken, nemen we het eerste derde deel van de rijen als testset en de rest als trainingsset. Is deze uitspraak correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
some-alt