主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ClassificationLinearクラス

高次元データのバイナリ分類用の線形モデル

説明

ClassificationLinearは,バイナリ分類用の学習済み線形モデルオブジェクトです。この線形モデルは,サポートベクターマシン(SVM)またはロジスティック回帰モデルです。fitclinearは,高次元データセットの計算時間を短縮する手法(確率的勾配降下法など)を使用して目的関数を最小化することによりClassificationLinearモデルをあてはめます。分類損失と正則化項を加算することにより目的関数が構成されます。

他の分類モデルと異なり,メモリ消費を節約するため,ClassificationLinearモデルオブジェクトには学習データが格納されません。ただし,推定した線形モデル係数,事前クラス確率,正則化強度などは格納されます。

学習済みのClassificationLinearモデルを使用して,新しいデータの分類スコアまたはラベルを予測できます。詳細については,预测を参照してください。

構築

ClassificationLinearオブジェクトの作成にはfitclinearを使用します。

プロパティ

すべて展開する

線形分類のプロパティ

正則化項の強度。非負のスカラーまたは非負値のベクトルを指定します。

データ型:|

線形分類モデルのタイプ。“物流”または“支持向量机”を指定します。

次の表では, f x x β + b です。

  • βはp個の係数のベクトルです。

  • xはp個の予測子変数による観測値です。

  • bはスカラーバイアスです。

アルゴリズム 損失関数 FittedLossの値
“物流” ロジスティック回帰 逸脱度(ロジスティック): y f x 日志 1 + 经验值 y f x 分对数的
“支持向量机” サポートベクターマシン ヒンジ: y f x 马克斯 0 1 y f x “枢纽”

線形係数の推定値。長さが予測子数に等しい数値ベクトルを指定します。

データ型:

推定バイアス項またはモデルの切片。数値スカラーを指定します。

データ型:

このプロパティは読み取り専用です。

線形モデルのあてはめに使用する損失関数。“枢纽”または分对数的を指定します。

アルゴリズム 損失関数 学习者の値
“枢纽” サポートベクターマシン ヒンジ: y f x 马克斯 0 1 y f x “支持向量机”
分对数的 ロジスティック回帰 逸脱度(ロジスティック): y f x 日志 1 + 经验值 y f x “物流”

複雑度ペナルティのタイプ。“套索(L1)”または“岭(L2)”を指定します。

最小化のための目的関数は,平均損失関数(FittedLossを参照)と次の表の正則化値を加算することにより作成されます。

説明
“套索(L1)” 套索(l1)ペナルティ: λ j 1 p | β j |
“岭(L2)” リッジ(l2)ペナルティ: λ 2 j 1 p β j 2

λは,正則化項の強度を規定します(λを参照)。

バイアス項(β0)は正則化ペナルティから除外されます。

他の分類のプロパティ

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。予測子データの行に観測値が含まれていると仮定すると、CategoricalPredictorsには,カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合,このプロパティは空([])になります。

データ型:|

学習で使用する一意なクラスラベル。绝对配列、文字配列、逻辑ベクトル、数値ベクトル,または文字ベクトルの细胞配列を指定します。一会のデータ型はクラスラベルYと同じです。(字符串配列は文字ベクトルの细胞配列として扱われます)。一会はクラスの順序も決定します。

データ型:分类|字符|逻辑|||细胞

このプロパティは読み取り専用です。

誤分類のコスト。正方数値行列として指定します。成本にはK個の行および列が含まれ,Kはクラスの数です。

成本(jは,真のクラスがである点をクラスjに分類するコストです。成本の行と列の順序は,一会のクラスの順序に対応します。

データ型:

ClassificationLinearモデルに学習をさせるために使用したパラメーター。構造体を指定します。

ModelParametersのフィールドにはドット表記でアクセスします。たとえば,線形係数およびバイアス項の相対許容誤差にアクセスするにはMdl.ModelParameters.BetaToleranceを使用します。

データ型:结构体

予測子データに現れる順序で並んでいる予測子名。文字ベクトルの细胞配列として指定します。PredictorNamesの長さは,予測子変数として使用される学習データXまたは资源描述に含まれている変数の数と等しくなります。

データ型:细胞

展開された予測子名。文字ベクトルの cell 配列を指定します。

モデルがカテゴリカル変数用のエンコーディングを使用している場合,ExpandedPredictorNamesには展開された変数を表す名前が格納されます。それ以外の場合,ExpandedPredictorNamesPredictorNamesと同じです。

データ型:细胞

このプロパティは読み取り専用です。

前のクラスの確率。数値ベクトルとして指定します。之前には,一会のクラスと同数の要素があり,その順序は一会の要素と一致します。

データ型:

応答変数名。文字ベクトルを指定します。

データ型:字符

予測されたスコアに適用するスコア変換関数。関数名または関数ハンドルを指定します。

線形分類モデルで変換前の場合,観測値x(行ベクトル)について予測される分類スコアはF (x) = xβ + bになります。βとbはそれぞれMdl。βMdl。偏见に対応します。

スコア変換関数を函数などに変更するには,ドット表記を使用します。

  • 組み込み関数の場合,函数を表の値に置き換えて次のコードを入力します。

    Mdl。ScoreTransform =“函数”;

    説明
    “doublelogit” 1 / (1 + e2 x
    “invlogit” Log (x / (1 - x))
    “ismax” 最大のスコアをもつクラスのスコアを1に設定し,他のすべてのクラスのスコアを0に設定する
    分对数的 1 / (1 + e- x
    “没有”または“身份” x(変換なし)
    “标志” x < 0のとき1
    x = 0のとき0
    x > 0のとき1
    “对称” 2 x - 1
    “symmetricismax” 最大のスコアをもつクラスのスコアを1に設定し,他のすべてのクラスのスコアを1に設定する
    “symmetriclogit” 2 / (1 + e- x) - 1

  • MATLAB®関数やユーザー定義関数の場合は,関数ハンドルを入力します。

    Mdl。ScoreTransform = @function;

    函数は,各クラスの元のスコアの行列を受け入れて,各クラスの変換後のスコアを表す同じサイズの行列を返さなければなりません。

データ型:字符|function_handle

オブジェクト関数

边缘 線形分類モデルの分類エッジ
incrementalLearner バイナリ分類用の線形モデルをインクリメンタル学習器に変換
石灰 本地可解释模型不可知解释(LIME)
损失 線形分類モデルの分類損失
保证金 線形分類モデルの分類マージン
partialDependence 部分従属の計算
plotPartialDependence 部分依存プロット(PDP)および個別条件付き期待値(ICE)プロットの作成
预测 線形分類モデルのラベルの予測
沙普利 シャープレイ値
selectModels 正則化されたバイナリ線形分類モデルのサブセットの選択
更新 コード生成用にモデルパラメーターを更新

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

サポートベクターマシン,双対SGDおよびリッジ正則化を使用して,バイナリ線形分類モデルに学習をさせます。

NLPのデータセットを読み込みます。

负载nlpdata

Xは予測子データのスパース行列,Yはクラスラベルの直言ベクトルです。データには2つを超えるクラスがあります。

统计和机器学习工具箱™のドキュメンテーションWebページに対応するラベルを特定します。

Ystats = Y ==“统计数据”

あるドキュメンテーションWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できるバイナリ線形分類モデルに学習をさせます。データセット全体を使用してモデルに学習をさせます。近似の要約を抽出して,最適化アルゴリズムによるモデルがどの程度データにあてはまるかを判断します。

rng (1);%的再现性[Mdl, FitInfo] = fitclinear (X, Ystats)
Mdl = classficationlinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double] Bias: -1.0059 Lambda: 3.1674e-05 Learner: 'svm'属性,方法
FitInfo =结构体字段:Lambda: 3.1674e-05 Objective: 5.3783e-04 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 238561 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0562 BetaTolerance: 1.0000e-04 DeltaGradient: 1.4582 DeltaGradientTolerance: 1 TerminationCode: 0 TerminationStatus:{'迭代限制超过。Alpha: [31572x1 double] History: [] FitTime: 0.1290 Solver: {'dual'}

MdlClassificationLinearモデルです。Mdlと学習データまたは新しいデータを损失に渡して,標本内分類誤差を調べることができます。または,Mdlと新しい予測子データを预测に渡して,新しい観測値のクラスラベルを予測することができます。

FitInfoは,重要な情報として終了ステータス(TerminationStatus)とソルバーによるモデルのデータへのあてはめにかかった時間(FitTime)が含まれている構造体配列です。FitInfoを使用して,最適化終了時の結果が満足できるものであるかどうかを判断することをお勧めします。モデルの再学習を試すこともできますが,学習時間は短いので,データを通す回数を増やしてください。このようにすると,DeltaGradientなどの尺度が向上します。

NLPのデータセットを読み込みます。

负载nlpdatan =大小(X, 1);%观测次数

统计和机器学习工具箱™のドキュメンテーションWebページに対応するラベルを特定します。

Ystats = Y ==“统计数据”

5%のデータをホールドアウトします。

rng (1);%的再现性本量利= cvpartition (n,“坚持”, 0.05)
nummobations: 31572 NumTestSets: 1 TrainSize: 29994 TestSize: 1578

本量利は,n個のデータを学習セットと検定セットに無作為に分割する方法を定義するCVPartitionオブジェクトです。

あるドキュメンテーションWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できる学習セットを使用して,バイナリ線形分類モデルに学習をさせます。学習時間を短縮するため,観測値が列単位になるように予測子データの行列を配置します。

idxTrain =培训(cvp);%提取训练集指标X = X ';Mdl = fitclinear (X (:, idxTrain) Ystats (idxTrain),“ObservationsIn”“列”);

ホールドアウト標本の観測値と分類誤差を予測します。

idxTest =测试(cvp);%提取测试集指标标签=预测(Mdl X (:, idxTest),“ObservationsIn”“列”);L =损失(Mdl X (:, idxTest) Ystats (idxTest),“ObservationsIn”“列”
L = 7.1753 e-04

Mdlが誤分類する標本外観測値は1%未満です。

拡張機能

R2016aで導入