主要内容

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

分类线性クラス

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

説明

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

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

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

構築

分类线性オブジェクトの作成にはfitclinearを使用します。

プロパティ

すべて展開する

線形分類のプロパティ

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

データ型:|单一的

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

次の表では、 F ( x ) = x β + B . です。

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

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

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

アルゴリズム 損失関数 适应损失の値
“物流” ロジスティック回帰 逸脱度 (ロジスティック): [ Y , F ( x ) ] = 日志 { 1. + 经验 [ Y F ( x ) ] } “罗吉特”
“svm” サポートベクターマシン ヒンジ: [ Y , F ( x ) ] = 最大值 [ 0 , 1. Y F ( x ) ] “铰链”

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

データ型:

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

データ型:

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

線形モデルのあてはめに使用する損失関数。“铰链”または“罗吉特”を指定します。

アルゴリズム 損失関数 学习者の値
“铰链” サポートベクターマシン ヒンジ: [ Y , F ( x ) ] = 最大值 [ 0 , 1. Y F ( x ) ] “svm”
“罗吉特” ロジスティック回帰 逸脱度 (ロジスティック): [ Y , F ( x ) ] = 日志 { 1. + 经验 [ Y F ( x ) ] } “物流”

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

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

説明
'套索(L1)' 套索(L1.)ペナルティ: λ J = 1. P | β J |
“岭(L2)” リッジ(L2.)ペナルティ: λ 2. J = 1. P β J 2.

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

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

他の分類のプロパティ

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

データ型:单一的|

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

データ型:分类|字符|符合逻辑的|单一的||细胞

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

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

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

データ型:

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

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

データ型:结构

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

データ型:细胞

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

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

データ型:细胞

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

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

データ型:

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

データ型:字符

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

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

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

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

    Mdl.ScoreTransform='函数';

    説明
    “双重逻辑” 1 / (1 + e–2倍)
    “invlogit” 对数(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=@函数;

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

データ型:字符|功能手柄

オブジェクト関数

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

コピーのセマンティクス

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

すべて折りたたむ

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

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

负载nlpdata

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

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

Ystats = Y ==“统计数据”;

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

rng (1);%的再现性[Mdl,FitInfo]=fitclinear(X,Ystats)
Mdl=ClassificationLinear ResponseName:'Y'类名称:[0 1]ScoreTransform:'none'测试版:[34023x1双]偏差:-1.0059 Lambda:3.1674e-05学习者:“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'}

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

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

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

负载nlpdatan=尺寸(X,1);%观测次数

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

Ystats = Y ==“统计数据”;

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

rng (1);%的再现性cvp=cvp(n,“坚持”, 0.05)
cvp=保持交叉验证分区NumObservations:31572 NumTestSets:1列车尺寸:29994测试尺寸:1578

cvpは、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.1753e-04

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

拡張機能

R2016aで導入