Main Content

margin

k 最近傍分類器のマージン

説明

m = margin(mdl,Tbl,ResponseVarName) は、データ Tbl と分類 Tbl.ResponseVarName を使用して mdl分類マージンを返します。mdl を学習させるために使用した応答変数が Tbl に含まれている場合、ResponseVarName を指定する必要はありません。

m は、長さ size(Tbl,1) の数値ベクトルとして返されます。m の各エントリは、mdl を使用して計算した、対応する Tbl の行および Tbl.ResponseVarName 内の対応する真のクラス ラベルに対するマージンを表します。

m = margin(mdl,Tbl,Y) は、データ Tbl と分類 Y を使用して mdl の分類マージンを返します。

m = margin(mdl,X,Y) は、データ X と分類 Y を使用して mdl の分類マージンを返します。m は、長さ size(X,1) の数値ベクトルとして返されます。

すべて折りたたむ

フィッシャーのアヤメのデータに対して k 最近傍分類器を作成します。ここで k = 5 です。

フィッシャーのアヤメのデータ セットを読み込みます。

load fisheriris

5 つの最近傍について分類器を作成します。

mdl = fitcknn(meas,species,'NumNeighbors',5);

'versicolor' として分類された平均観測値に対する分類器のマージンを調べます。

X = mean(meas);
Y = {'versicolor'};
m = margin(mdl,X,Y)
m = 1

5 つの最近傍はすべて 'versicolor' として分類されます。

入力引数

すべて折りたたむ

k 最近傍分類モデル。ClassificationKNN オブジェクトを指定します。

モデルを学習させるために使用する標本データ。テーブルとして指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。オプションとして、Tbl に応答変数用の列を 1 つ追加できます。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。

mdl を学習させるために使用した応答変数が Tbl に含まれている場合、ResponseVarName または Y を指定する必要はありません。

table に格納されている標本データを使用して mdl の学習を行う場合、margin の入力データも table に格納されていなければなりません。

データ型: table

応答変数の名前。Tbl 内の変数の名前で指定します。mdl を学習させるために使用した応答変数が Tbl に含まれている場合、ResponseVarName を指定する必要はありません。

ResponseVarName には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数が Tbl.response として格納されている場合、'response' として指定します。それ以外の場合、Tbl の列は Tbl.response を含めてすべて予測子として扱われます。

応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1 つの行に対応しなければなりません。

データ型: char | string

予測子データ。数値行列として指定します。X の各行は 1 つの観測値を、各列は 1 つの変数を表します。

データ型: single | double

クラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。Y の各行は、X の対応する行の分類を表します。

データ型: categorical | char | string | logical | single | double | cell

詳細

すべて折りたたむ

マージン

各観測値の分類"マージン"は、真のクラスの分類"スコア"と偽のクラスの最大分類スコアの差を表します。

スコア

分類の "スコア" は分類の事後確率です。事後確率は、その分類をもつ近傍の個数を近傍の個数によって除算した値です。重み付けと事前確率を含む詳細な定義については、事後確率を参照してください。

拡張機能

バージョン履歴

R2012a で導入