ロジスティック回帰:再確認

Pythonで学ぶSentiment Analysis

Violeta Misheva

Data Scientist

複雑なモデルと正則化

複雑なモデル:

  • データのノイズまで捉えるモデル(過学習)
  • 特徴量・パラメータが多い

正則化:

  • モデルを単純化し、過度な複雑さを抑える方法
Pythonで学ぶSentiment Analysis

ロジスティック回帰における正則化

from sklearn.linear_model import LogisticRegression
# 正則化の引数
LogisticRegression(penalty='l2', C=1.0)
  • L2: 係数をゼロ方向へ縮小
  • C が大きい: 罰則が弱く、訓練データに良く当てはまる
  • C が小さい: 罰則が強く、モデルは柔軟性が低い
Pythonで学ぶSentiment Analysis

確率の予測 vs. クラスの予測

log_reg = LogisticRegression().fit(X_train, y_train)
# クラス予測 
y_predicted = log_reg.predict(X_test)
# 確率予測
y_probab = log_reg.predict_proba(X_test)
Pythonで学ぶSentiment Analysis

確率の予測 vs. クラスの予測

y_probab
array([[0.5002245, 0.4997755],
       [0.4900345, 0.5099655],
        ...,
       [0.7040499, 0.2959501]])
# クラス1の確率のみ取得
y_probab = log_reg.predict_proba(X_test)[:, 1]
array([0.4997755, 0.5099655 ..., 0.2959501]])
Pythonで学ぶSentiment Analysis

確率予測でのモデル指標

  • 確率に対して用いると ValueError が発生します。
  • 正解率と混同行列はクラスに対して機能します。
# 既定の確率のクラス化:
# 確率 >= 0.5 ならクラス1、そうでなければクラス0
Pythonで学ぶSentiment Analysis

実践してみましょう!

Pythonで学ぶSentiment Analysis

Preparing Video For Download...