A-t-on vraiment bien prédit le sentiment ?

Analyse de sentiments en Python

Violeta Misheva

Data Scientist

Scission train/test

nombre total d'observations scindé en ensembles d'entraînement et de test, où l'ensemble d'entraînement est le plus grand bloc

  • Entraînement : sert à ajuster le modèle (70–80 % des données)
  • Test : sert à évaluer les performances du modèle
Analyse de sentiments en Python

Train/test en Python

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123, stratify=y)
  • X : variables explicatives
  • y : étiquettes
  • test_size : part des données utilisée pour le test
  • random_state : graine aléatoire pour reproduire la scission
  • stratify : maintient la même proportion de classes que dans les valeurs fournies
Analyse de sentiments en Python

Régression logistique avec scission train/test

log_reg = LogisticRegression().fit(X_train, y_train)
print('Accuracy on training data: ', log_reg.score(X_train, y_train))
0.76
print('Accuracy on testing data: ', log_reg.score(X_test, y_test))
0.73
Analyse de sentiments en Python

Score d'accuracy avec scission train/test

from sklearn.metrics import accuracy_score
log_reg = LogisticRegression().fit(X_train, y_train)
y_predicted = log_reg.predict(X_test)
print('Accuracy score on test data: ', accuracy_score(y_test, y_predicted))
0.73
Analyse de sentiments en Python

Matrice de confusion

exemple de matrice de confusion pour un problème de classification binaire

Analyse de sentiments en Python

Matrice de confusion en Python

from sklearn.metrics import confusion_matrix
log_reg = LogisticRegression().fit(X_train, y_train)
y_predicted = log_reg.predict(X_test)
print(confusion_matrix(y_test, y_predicted)/len(y_test))
[[0.3788 0.1224]
 [0.1352 0.3636]]
Analyse de sentiments en Python

Passons à la pratique !

Analyse de sentiments en Python

Preparing Video For Download...