本当に感情をうまく予測できたか?

Pythonで学ぶSentiment Analysis

Violeta Misheva

Data Scientist

訓練/テスト分割

観測の総数を訓練用とテスト用に分割。訓練用が大きいブロック

  • 訓練データ: モデルの学習に使用(全体の70~80%)
  • テストデータ: モデル性能の評価に使用
Pythonで学ぶSentiment Analysis

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 : 特徴量
  • y : ラベル
  • test_size: テストに使う割合
  • random_state: 分割の乱数シード
  • stratify: 指定した比率を保つよう層化抽出
Pythonで学ぶSentiment Analysis

訓練/テスト分割でのロジスティック回帰

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
Pythonで学ぶSentiment Analysis

訓練/テスト分割での正解率

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
Pythonで学ぶSentiment Analysis

混同行列

二値分類の混同行列の例

Pythonで学ぶSentiment Analysis

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]]
Pythonで学ぶSentiment Analysis

Passons à la pratique !

Pythonで学ぶSentiment Analysis

Preparing Video For Download...