ロジスティック回帰学習器を使用する線形分類モデルに適した LASSO ペナルティの強度を決定するため、AUC の検定標本の値を比較します。
NLP のデータセットを読み込みます。検定標本のラベルの予測で説明されているようにデータを前処理します。
観測値の 10% をホールドアウトするように指定するデータ分割を作成します。検定標本のインデックスを抽出します。
検定標本には 3157 個の観測値があります。
~ の範囲で対数間隔で配置された 11 個の正則化強度を作成します。
各正則化強度を使用するバイナリ線形分類モデルに学習をさせます。SpaRSA を使用して目的関数を最適化します。目的関数の勾配の許容誤差を 1e-8
に下げます。
CVMdl =
classreg.learning.partition.ClassificationPartitionedLinear
CrossValidatedModel: 'Linear'
ResponseName: 'Y'
NumObservations: 31572
KFold: 1
Partition: [1x1 cvpartition]
ClassNames: [0 1]
ScoreTransform: 'none'
Properties, Methods
学習済みの線形分類モデルを抽出します。
Mdl1 =
ClassificationLinear
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'logit'
Beta: [34023x11 double]
Bias: [1x11 double]
Lambda: [1x11 double]
Learner: 'logistic'
Properties, Methods
Mdl
は ClassificationLinear
モデル オブジェクトです。Lambda
は正則化強度のシーケンスなので、Mdl
はそれぞれが Lambda
の各正則化強度に対応する 11 個のモデルであると考えることができます。
検定標本の予測ラベルと事後クラス確率を推定します。
label
は、予測されたラベルが含まれている 3157 行 11 列の行列です。各列は、対応する正則化強度を使用して学習を行ったモデルの予測ラベルに対応します。posterior
は事後クラス確率が含まれている 3157 x 2 x 11 の行列です。列はクラスに対応し、ページは正則化強度に対応します。たとえば、posterior(3,1,5)
は、正則化強度として Lambda(5)
を使用するモデルによって 1 番目のクラス (ラベルは 0
) が観測値 3 に割り当てられる事後確率を示し、値は 1.0000 です。
各モデルについて AUC を計算します。2 番目のクラスを陽性クラスとして指定します。
Lambda
の値が大きくなると、予測子変数がスパースになります。これは分類器の品質として優れています。データセット全体を使用し、モデルに学習をさせたときと同じオプションを指定して、各正則化強度について線形分類モデルに学習をさせます。モデルごとに非ゼロの係数を特定します。
同じ図に、各正則化強度についての検定標本の誤差率と非ゼロ係数の頻度をプロットします。すべての変数を対数スケールでプロットします。
予測子変数のスパース性と AUC の高さのバランスがとれている正則化強度のインデックスを選択します。この場合、 ~ の値で十分なはずです。
選択した正則化強度のモデルを Mdl
から選択します。
MdlFinal
は、1 つの正則化強度が含まれている ClassificationLinear
モデルです。新しい観測値のラベルを推定するには、MdlFinal
と新しいデータを predict
に渡します。