このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
templateKNN
k 最近傍分類器テンプレート
説明
は学習アンサンブルあるいは ECOC (誤り訂正出力符号) マルチクラス モデルの学習に適した KNN (k 最近傍) 学習テンプレートを返します。t
= templateKNN()
既定のテンプレートを指定する場合、学習中のすべての入力引数には既定値が使用されます。
t
を fitcensemble
または fitcecoc
の学習器として指定します。
は、1 つ以上の名前と値のペアの引数で指定された追加オプションによりテンプレートを作成します。t
= templateKNN(Name,Value
)
たとえば、最近傍探索の方法、検索する最近傍点の数、距離計量などを指定できます。
コマンド ウィンドウに t
を表示する場合、すべてのオプションは、名前と値のペア引数を使用して指定する場合を除き、空 ([]
) で表示されます。学習中、空のオプションに既定値が使用されます。
例
アンサンブル用の k 最近傍テンプレートの作成
関数 fitcensemble
で使用するために、既定の設定以外の k 最近傍テンプレートを作成します。
フィッシャーのアヤメのデータ セットを読み込みます。
load fisheriris
5 つの最近傍探索のテンプレートを作成し、予測子の標準化を指定をします。
t = templateKNN('NumNeighbors',5,'Standardize',1)
t = Fit template for classification KNN. NumNeighbors: 5 NSMethod: '' Distance: '' BucketSize: '' IncludeTies: [] DistanceWeight: [] BreakTies: [] Exponent: [] Cov: [] Scale: [] StandardizeData: 1 Version: 1 Method: 'KNN' Type: 'classification'
NumNeighbors
、Method
StandardizeData
および Type
を除き、テンプレート オブジェクトのすべてのプロパティは空です。t
を学習器として指定する場合、空のプロパティはそれぞれの既定値で入力されます。
t
をアンサンブル分類の弱学習器として指定します。
Mdl = fitcensemble(meas,species,'Method','Subspace','Learners',t);
標本内 (再代入) 誤分類誤差を表示します。
L = resubLoss(Mdl)
L = 0.0600
ECOC マルチクラス学習用の k 最近傍テンプレートの作成
関数 fitcecoc
で使用するために、既定の設定以外の k 最近傍テンプレートを作成します。
フィッシャーのアヤメのデータ セットを読み込みます。
load fisheriris
5 つの最近傍探索のテンプレートを作成し、予測子の標準化を指定をします。
t = templateKNN('NumNeighbors',5,'Standardize',1)
t = Fit template for classification KNN. NumNeighbors: 5 NSMethod: '' Distance: '' BucketSize: '' IncludeTies: [] DistanceWeight: [] BreakTies: [] Exponent: [] Cov: [] Scale: [] StandardizeData: 1 Version: 1 Method: 'KNN' Type: 'classification'
NumNeighbors
、Method
StandardizeData
および Type
を除き、テンプレート オブジェクトのすべてのプロパティは空です。t
を学習器として指定する場合、空のプロパティはそれぞれの既定値で入力されます。
t
を ECOC マルチクラス モデルのバイナリ学習器として指定します。
Mdl = fitcecoc(meas,species,'Learners',t);
既定の設定では、Mdl
は、1 対 1 の符号化設計を使用の学習が実行されます。
標本内 (再代入) 誤分類誤差を表示します。
L = resubLoss(Mdl,'LossFun','classiferror')
L = 0.0467
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'NumNeighbors',4,'Distance','minkowski'
は、ミンコフスキー距離計量を使用して、4 最近傍分類器テンプレートを指定します。
BreakTies
— タイブレーク アルゴリズム
'smallest'
(既定値) | 'nearest'
| 'random'
複数のクラスで最小コストが同じである場合に predict
メソッドで使用されるタイブレーク アルゴリズム。'BreakTies'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
'smallest'
— 同順位グループの中で最小インデックスを使用します。'nearest'
— 同順位グループの中で最近傍のあるクラスを使用します。'random'
— 同順位グループの中でランダムなタイブレーカーを使用します。
既定では、同順位は k 最近傍の中で同じ数の最近傍点を複数のクラスがもつときに発生します。
例: 'BreakTies','nearest'
BucketSize
— ノード内のデータ点の最大数
50
(既定値) | 正の整数値
Kd 木の葉ノードにおけるデータ点の最大数。'BucketSize'
と正の整数値で構成されるコンマ区切りのペアとして指定します。この引数は、NSMethod
が 'kdtree'
の場合にのみ意味があります。
例: 'BucketSize',40
データ型: single
| double
Cov
— 共分散行列
cov(X,'omitrows')
(既定値) | スカラー値の正定値行列
共分散行列。'Cov'
と、マハラノビス距離の計算時の共分散行列を表すスカラー値の正定値行列で構成される、コンマ区切りのペアとして指定します。この引数は、'Distance'
が 'mahalanobis'
の場合にのみ有効です。
'Standardize'
および 'Scale'
または 'Cov'
のいずれかを同時に指定できません。
データ型: single
| double
Distance
— 距離計量
'cityblock'
| 'chebychev'
| 'correlation'
| 'cosine'
| 'euclidean'
| 'hamming'
| 関数ハンドル | ...
距離計量。'Distance'
と有効な距離計量名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。使用できる距離計量名は、近傍探索法の選択 (NSMethod
を参照) によって決まります。
NSMethod | 距離計量名 |
---|---|
exhaustive | ExhaustiveSearcher の任意の距離計量 |
kdtree | 'cityblock' 、'chebychev' 、'euclidean' 、または 'minkowski' |
このテーブルには、ExhaustiveSearcher
の有効な距離計量が含まれます。
距離計量名 | 説明 |
---|---|
'cityblock' | 市街地距離。 |
'chebychev' | チェビシェフ距離 (最大座標差)。 |
'correlation' | 1 から、一連の値として扱われる観測間の標本線形相関係数を引きます。 |
'cosine' | 1 から、ベクトルとして扱われる観測間の夾角の余弦を引きます。 |
'euclidean' | ユークリッド距離。 |
'hamming' | 異なる座標のパーセンテージとなるハミング距離。 |
'jaccard' | 1 から、ジャカード係数 (異なる非ゼロ座標の比率) を引いた値。 |
'mahalanobis' | 正定値共分散行列 C を使用して計算される、マハラノビス距離。C の既定値は X の標本共分散行列であり、cov(X,'omitrows') によって計算されます。C に別の値を指定するには、'Cov' 名前と値のペアの引数を使用します。 |
'minkowski' | ミンコフスキー距離。既定の指数は 2 です。別の指数を指定するには、'Exponent' 名前と値のペアの引数を使用します。 |
'seuclidean' | 標準化されたユークリッド距離。X と各クエリ点の間の各座標差分がスケーリングされます。つまり、スケール値 S で除算されます。S の既定値は X から計算される標準偏差で、S = std(X,'omitnan') です。S に別の値を指定するには、Scale 名前と値のペアの引数を使用します。 |
'spearman' | 1 から、観測値間の標本スピアマンの順位相関 (値の系列として扱われる) を引いた値。 |
@ | 距離関数ハンドル。 function D2 = distfun(ZI,ZJ) % calculation of distance ...
|
CategoricalPredictors
を 'all'
に指定した場合、既定の距離計量は 'hamming'
となります。それ以外の場合は、既定の距離計量は 'euclidean'
です。
ドット表記を使用して Distance
を変更します。mdl.Distance = newDistance
。
NSMethod
が 'kdtree'
である場合、ドット表記を使用して Distance
を変更できる距離計量は、'cityblock'
、'chebychev'
、'euclidean'
および 'minkowski'
のみです。
定義については距離計量を参照してください。
例: 'Distance','minkowski'
データ型: char
| string
| function_handle
DistanceWeight
— 距離重み付け関数
'equal'
(既定値) | 'inverse'
| 'squaredinverse'
| 関数ハンドル
距離重み付け関数。'DistanceWeight'
と関数ハンドルまたは次の表のいずれかの値から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
'equal' | 重み付けなし |
'inverse' | 重みは 1/距離です |
'squaredinverse' | 重みは 1/距離2 です |
@ | fcn は、非負の距離の行列を受け入れる関数であり、非負の距離重み付けを含む同じサイズの行列を返します。たとえば、'squaredinverse' は @(d)d.^(-2) と同じです。 |
例: 'DistanceWeight','inverse'
データ型: char
| string
| function_handle
Exponent
— ミンコフスキー距離指数
2
(既定値) | 正のスカラー値
ミンコフスキー距離指数。'Exponent'
と正のスカラー値で構成されるコンマ区切りのペアとして指定します。この引数は、'Distance'
が 'minkowski'
の場合にのみ有効です。
例: 'Exponent',3
データ型: single
| double
IncludeTies
— 同順位使用フラグ
false
(既定値) | true
同順位使用フラグ。'IncludeTies'
と、距離の値が k 番目に小さい距離と等しい近傍点をすべて predict
に含めるかどうかを表す論理値で構成される、コンマ区切りのペアとして指定します。IncludeTies
が true
の場合、predict
はすべての近傍点を含みます。それ以外の場合、predict
は正確に k の近傍点を使用します。
例: 'IncludeTies',true
データ型: logical
NSMethod
— 最近傍探索法
'kdtree'
| 'exhaustive'
最近傍探索法。'NSMethod'
と 'exhaustive'
または 'kdtree'
で構成されるコンマ区切りのペアとして指定します。
'kdtree'
— Kd 木を作成および使用して最近傍を探索します。'kdtree'
は距離計量が次のいずれかである場合に有効です。'euclidean'
'cityblock'
'minkowski'
'chebychev'
'exhaustive'
— 網羅的探索アルゴリズムを使用します。新しい点xnew
のクラスを予測するときに、X
内のすべての点からxnew
までの距離を計算して最近傍を探索します。
既定値は、X
の列数が 10
以下で、X
がスパースでないか gpuArray
で、距離計量が 'kdtree'
型の場合は 'kdtree'
、それ以外の場合は 'exhaustive'
です。
例: 'NSMethod','exhaustive'
NumNeighbors
— 検出する最近傍の数
1
(既定値) | 正の整数値
予測時に各点を分類するために検出する X
の最近傍の数。'NumNeighbors'
と正の整数値で構成されるコンマ区切りのペアとして指定します。
例: 'NumNeighbors',3
データ型: single
| double
Scale
— 距離スケール
std(X,'omitnan')
(既定値) | 非負のスカラー値のベクトル
距離スケール。'Scale'
と、X
の列数と同じ長さの非負のスカラー値を含むベクトルで構成される、コンマ区切りのペアとして指定します。X
とクエリ点の間の各座標差分は、Scale
の対応する要素でスケーリングされます。この引数は、'Distance'
が 'seuclidean'
の場合にのみ有効です。
'Standardize'
および 'Scale'
または 'Cov'
のいずれかを同時に指定できません。
データ型: single
| double
Standardize
— 予測子を標準化するためのフラグ
false
(既定値) | true
予測子を標準化するためのフラグ。'Standardize'
と、true
(1
) または false
(0)
のいずれかで構成される、コンマ区切りのペアとして指定します。
'Standardize',true
を設定すると、予測子データ (X
) の各列のセンタリングとスケーリングを、それぞれ列の平均値と標準偏差を使用して行います。
すべての予測子がカテゴリカルの場合、カテゴリカル予測子は標準化されずエラーがスローされます。
'Standardize',1
および 'Scale'
または 'Cov'
のいずれかを同時に指定できません。
予測子データの標準化をお勧めします。
例: 'Standardize',true
データ型: logical
出力引数
t
— k NN 分類テンプレート
テンプレート オブジェクト
学習アンサンブルまたは ECOC (誤り訂正出力符号) マルチクラス モデルを学習させるのに適した k NN 分類テンプレート。テンプレート オブジェクトとして返します。t
を fitcensemble
または fitcecoc
に渡し、アンサンブルまたは ECOC モデルそれぞれの KNN を作成する方法を指定します。
コマンド ウィンドウに t
を表示する場合、すべての未指定のオプションは空 ([]
) で表示されます。しかし、空のオプションは学習中に対応する既定値に置き換えられます。
バージョン履歴
R2014a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)