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

Analyse de sentiment en Python

Violeta Misheva

Data Scientist

Division entraînement/test

nombre total d'observations divisé en ensemble d'entraînement et de test, l'ensemble d'entraînement étant le plus grand bloc

  • Ensemble d'entraînement : pour entraîner le modèle (70–80 % des données)
  • Ensemble de test : pour évaluer la performance du modèle
Analyse de sentiment en Python

Division entraînement/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 : caractéristiques
  • y : étiquettes
  • test_size : part des données utilisée pour le test
  • random_state : graine utilisée pour la division
  • stratify : conserve dans l'échantillon la même proportion de classes que celles fournies à ce paramètre
Analyse de sentiment en Python

Régression logistique avec division entraînement/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 sentiment en Python

Précision avec division entraînement/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 sentiment en Python

Matrice de confusion

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

Analyse de sentiment 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 sentiment en Python

Passons à la pratique !

Analyse de sentiment en Python

Preparing Video For Download...