Prestatiemetrieken voor Twitter-gegevens
Je gaat een logistic regression-model trainen dat het sentiment van tweets voorspelt en de prestaties op de testset evalueren met verschillende metriken.
Er is een matrix X voor je aangemaakt. Deze bevat features die met een BOW op de kolom text zijn gemaakt.
De labels staan in een vector y. Vector y is 0 voor negatieve tweets, 1 voor neutrale, en 2 voor positieve.
Let op: hoewel we 3 klassen hebben, blijft dit een classificatieprobleem. De accuracy meet nog steeds het aandeel correct voorspelde gevallen. De confusion matrix is nu 3x3; elke rij geeft het aantal voorspelde gevallen voor de klassen 2, 1 en 0, en elke kolom het werkelijke aantal gevallen in klasse 2, 1 en 0.
Alle benodigde pakketten zijn al geïmporteerd.
Deze oefening maakt deel uit van de cursus
Sentimentanalyse in Python
Oefeninstructies
- Voer de train/test-split uit en stratificeer op
y. - Train een logistic regression-classifier.
- Voorspel de prestaties op de testset.
- Print de accuracy-score en de confusion matrix die op de testset zijn verkregen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = ____(X, y, test_size=0.3, random_state=123, ____=y)
# Train a logistic regression
log_reg = ____.____(___, ____)
# Make predictions on the test set
y_predicted = log_reg.____(___)
# Print the performance metrics
print('Accuracy score test set: ', ____(y_test, y_predicted))
print('Confusion matrix test set: \n', ____(y_test, y_predicted)/len(y_test))