第 5 章 ロジスティック回帰: 1. ロジスティック回帰はなぜ必要ですか? 1. sklearn のロジスティック回帰 1.1 ロジスティック回帰

1. ロジスティック回帰はなぜ必要ですか?

線形関係のフィッティング効果は非常に優れており、計算速度は速く、分類は固定の 0、1 ではなくクラス確率数です。
強力なノイズ耐性。

1. sklearn のロジスティック回帰

ここに画像の説明を挿入します
評価カテゴリー:
ここに画像の説明を挿入します

1.1 ロジスティック回帰

パラメータ:
ここに画像の説明を挿入します

  1. ペナルティ: l1 または l2、どちらの通常の方法が使用されるかを示します。デフォルトは l2 です。l1 の場合、パラメーター ソルバーは liblinear のみを使用できます。ただし、L1 正則化はパラメータを 0 に圧縮し、L2 正則化はパラメータを可能な限り小さくするだけです。
  2. C: 0 より大きい浮動小数点数でなければなりません。デフォルトは 0.1 です。c が小さいほど、正則化効果が強くなり、損失関数に対するペナルティが重くなります。

「損失関数」評価指標を使用して、パラメーター p の品質、つまり、このパラメーターのセットがモデルをトレーニング セットで適切に実行できるかどうかを測定します。**一連のパラメーターを使用してモデル化した後、モデルがトレーニング セットで良好にパフォーマンスを発揮する場合、モデルのパフォーマンスのパターンはトレーニング セット データのパターンと一致しており、フィッティング プロセス中の損失は非常に小さいと言えます。損失関数の値は非常に小さいため、このパラメーターのセットは優れています。逆に、モデルのトレーニング セットでのパフォーマンスが低い場合、損失関数が大きくなり、モデルのトレーニングが不十分になり、その効果は次のようになります。貧弱であり、このパラメータのセットも貧弱になります。つまり、パラメーター p を解決するときに、モデルがトレーニング データに対して最適なフィッティング効果を持つように、つまり予測精度が可能な限り 100% に近づくように、最小の損失関数を追求します。

  • 損失関数は次のとおりです。
    ここに画像の説明を挿入します
    モデルがトレーニング セットで最適に動作するように損失関数の最小値を追求するため、別の問題が発生する可能性があります。 ** モデルがトレーニング セットでは良好に動作するが、テストではパフォーマンスが悪い場合設定すると、モデルが過学習になります。**ロジスティック回帰と線形回帰は本質的に過小適合モデルですが、モデルの調整を支援するために過適合を制御する技術がまだ必要です。ロジスティック回帰における過適合の制御は、正則化によって実現されます。
  • 正則化:
    ここに画像の説明を挿入します
    1 つ目は絶対値の合計の平均で、2 つ目は二乗と根の合計の平均です。

コード:

from sklearn.liner_model import LogisticRegression as lr
from sklearn.datasets import load_breast_cancer as lbc
import numpy as np
import matplotlib.pyplot as pt
from sklearn.model_selection import train_test_split as ttp
from sklean.metrics import accuracy_score as acs

data=lbc()//字典
x=data.data
y=data.target
print(s.shape) //569,30

lr1=lr(penalty="l1",solver="liblinear",C=0.5,max_iter=1000)
lr2=lr(penalty="l2",solver="liblinear",C=0.5,max_iter=1000)

lr1=lr1.fit(x,y)
print(lr1.coef_)//p
print(lr1.coef_!=0).sum(axis=1)//p不等于0的个数

lr2=lr2.fit(x,y)
print(lr2.coef_)//不会出现0

どちらがより良く機能しますか?
ここに画像の説明を挿入します
ここに画像の説明を挿入します
横軸は図から求められるcの値であり、この図ではl2の方が優れています。

おすすめ

転載: blog.csdn.net/qq_53982314/article/details/131260735