主要内容

ClassificationKNN

説明

ClassificationKNNは,距離計量と最近傍の個数の両方を変更できる最近傍分類モデルです。ClassificationKNN分類器には学習デ,タが格納されるので,このモデルを使用して再代入予測を計算できます。または,このモデルと预测メソッドを使用して新しい観測値を分類できます。

作成

ClassificationKNNモデルの作成にはfitcknnを使用します。

プロパティ

すべて展開する

KNNのプロパティ

複数のクラスで最小コストが同じである場合に预测が使用するタ▪▪ブレ▪▪クアルゴリズム。次のいずれかを指定します。

  • “最小”—同順位グルプの中で最小ンデックスを使用します。

  • “最近的”—同順位グルプの中で最近傍のあるクラスを使用します。

  • “随机”—同順位グルプの中でランダムなタブレカを使用します。

既定では,k最近傍の中で同じ個数の最近傍点を複数のクラスがも場合に,同順位が発生します。BreakTiesは,IncludeTiesである場合に適用されます。

ドット表記を使用してBreakTiesを変更します。mdl。破领带=新破领带

距離計量。文字ベクトルまたは関数ハンドルを指定します。可能な値はNSMethodプロパティに応じて異なります。

NSMethod 可能な距離計量
“详尽” ExhaustiveSearcherの任意の距離計量
“kdtree” “cityblock”“chebychev”“欧几里得”,または闵可夫斯基的

次の表は,ExhaustiveSearcherの距離計量の一覧です。

説明
“cityblock” 市街地距離。
“chebychev” チェビシェフ距離(最大座標差)。
“相关” 1から,一連の値として扱われる観測間の標本線形相関係数を引きます。
的余弦 1から,ベクトルとして扱われる観測間の夾角の余弦を引きます。
“欧几里得” ユ,クリッド距離。
“汉明” 異なる座標の比率を示すハミング距離。
“jaccard” 1から,ジャカ,ド係数(異なる非ゼロ座標の比率)を引いた値。
“mahalanobis” 正定値共分散行列Cを使用して計算される,マハラノビス距離。Cの既定値はXの標本共分散行列であり,X (X, omitrows)によって計算されます。Cにいて異なる値を指定するには,ドット表記を使用してmdlDistParameterプロパティを設定します。
闵可夫斯基的 ミンコフスキ,距離。既定の指数は2です。異なる指数を指定するには,ドット表記を使用してmdlDistParameterプロパティを設定します。
“seuclidean” 標準化されたユ,クリッド距離。Xと各クエリ点の間の各座標差分がスケ,リングされます。つまり,スケール値年代で除算されます。年代の既定値はXから計算される標準偏差で,S = std(X,'omitnan')です。年代にいて異なる値を指定するには,ドット表記を使用してmdlDistParameterプロパティを設定します。
“枪兵” 1から,観測値間の標本スピアマンの順位相関(値の系列として扱われる)を引いた値。
@distfun

距離関数ハンドル。distfunは次の形式です

函数D2 = distfun(ZI,ZJ)距离计算%...
ここで,

  • は1行のXまたはYを含む1N列のベクトルです。

  • ZJは複数行のXまたはYを含む平方米N列の行列です。

  • D2平方米1列の距離のベクトルであり,D2 (k)は観測値ZJ (k,:)の間の距離です。

詳細は,距離計量を参照してください。

ドット表記を使用して距离を変更します。mdl。距离= newDistance

NSMethod“kdtree”である場合,ドット表記を使用して距离を変更できる距離計量は,“cityblock”“chebychev”“欧几里得”および闵可夫斯基的のみです。

デ,タ型:字符|function_handle

距離重み付け関数。次の表のいずれかの値を指定します。

説明
“平等” 重み付けなし
“逆” 重みは1 /距离です
“squaredinverse” 重みは1 /距离2です
@fcn fcnは,非負の距離の行列を受け入れ,非負の距離の重みが含まれている同じサesc escズの行列を返す関数です。たとえば,“squaredinverse”@ (d) d。^ (2)と同じです。

ドット表記を使用してDistanceWeightを変更します。mdl。DistanceWeight = newDistanceWeight

デ,タ型:字符|function_handle

距離計量のパラメタ。次の表に記載されている値のいずれかを指定します。

距離計量 パラメタ
“mahalanobis” 正定値共分散行列C
闵可夫斯基的 ミンコフスキ,距離指数。正のスカラ
“seuclidean” Xの列数と同じ長さをも正のスケル値のベクトル

他の距離計量の場合,DistParameterの値は[]でなければなりません。

ドット表記を使用し,DistParameterを変更できます。mdl。DistParameter = newDistParameter。ただし,距离“mahalanobis”または“seuclidean”である場合は,DistParameterを変更できません。

デ,タ型:|

K番目に小さい距離値の近傍をすべて预测に含めるかどうかを示す同順位使用フラグ。または真正的を指定します。IncludeTies真正的である場合,すべての近傍が预测に含まれます。それ以外の場合,预测は正確にk個の近傍を使用します(BreakTiesプロパティを参照)。

ドット表記を使用してIncludeTiesを変更します。mdl。IncludeTies = newIncludeTies

デ,タ型:逻辑

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

最近傍探索法。“kdtree”または“详尽”のいずれかを指定します。

  • “kdtree”- - - - - -KD木を作成および使用して最近傍を探索します。

  • “详尽”-網羅的探索アルゴリズムを使用します。新しい点xnewのクラスを予測するときに,X内のすべての点からxnewまでの距離を計算して最近傍を探索します。

Xの列数が10以下で,Xがスパ,スではなく,距離計量が“kdtree”タesc escプである場合,既定値は“kdtree”です。それ以外の場合,既定値は“详尽”です。

予測時に各点の分類に使用するX内の最近傍の個数。正の整数値を指定します。

ドット表記を使用してNumNeighborsを変更します。mdl。NumNeighbors = newNumNeighbors

デ,タ型:|

他の分類のプロパティ

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

カテゴリカル予測子の@ @ンデックス。正の整数のベクトルとして指定します。CategoricalPredictorsには,対応する予測子がカテゴリカルであることを示す。ンデックス値の範囲は1 ~pです。pはモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空([])になります。

デ,タ型:

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

重複を削除した学習デ,タY内のクラス名。绝对配列,文字配列、逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列を指定します。一会のデ,タ型はYと同じです。(字符串配列は文字ベクトルのcell配列として扱われます)。

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

点の誤分類コスト。正方行列を指定します。成本(i, j)は,真のクラスがである場合に点をクラスjに分類するコストです(行は真のクラス,列は予測したクラスに対応します)。成本の行と列の順序は,一会のクラスの順序に対応します。成本の行および列の数は,応答に含まれている一意なクラスの数です。

既定では,成本(i,j) = 1I ~= jの場合)およびCost(i,j) = 0I = jの場合)です。まり,正しい分類のコストは0,誤った分類のコストは1です。

ドット表記を使用して成本行列を変更します。mdl。成本= costMatrix

デ,タ型:|

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

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

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

デ,タ型:细胞

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

ClassificationKNNモデルに学習をさせるために使用したパラメタ。オブジェクトを指定します。

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

予測子の平均。長さ元素个数(PredictorNames)の数値ベクトルを指定します。

fitcknnを使用してモデルに学習をさせるときにmdlを標準化しなかった場合,μは空([])になります。

デ,タ型:|

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

ClassificationKNNモデルに学習をさせるときに使用した観測値の個数。正の整数スカラ,を指定します。値が含まれている行はあてはめに使用されないので,この数値は学習データの行数より小さくなる可能性があります。

デ,タ型:

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

予測子変数の名前。文字ベクトルの细胞配列を指定します。変数名の順序は、学習データXに現れる順序と同じです。

デ,タ型:细胞

各クラスの事前確率。数値ベクトルを指定します。之前の要素の順序は,一会のクラスの順序に対応します。

ベクトル之前を追加または変更するには,次のようにドット表記を使用します。mdl。Prior = priorVector

デ,タ型:|

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

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

デ,タ型:字符

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

ClassificationKNNモデルのあてはめに使用した元の学習デ,タの行。逻辑ベクトルを指定します。すべての行を使用した場合,このプロパティは空になります。

デ,タ型:逻辑

スコア変換。文字ベクトルまたは関数ハンドルのいずれかを指定します。

次の表は,使用可能な文字ベクトルをまとめています。

説明
“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のとき
“对称” 2x - 1
“symmetricismax” 最大のスコアをも1に設定し,他のすべてのクラスのスコアを-1に設定する
“symmetriclogit” 2/(1 + e- x) - 1

MATLAB®関数またはユ,ザ,定義関数の場合は,スコア変換用の関数ハンドルを使用します。関数ハンドルは,行列 (元のスコア) を受け入れて同じサイズの行列 (変換したスコア) を返さなければなりません。

ドット表記を使用してScoreTransformを変更します。mdl。年代coreTransform = newScoreTransform

デ,タ型:字符|function_handle

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

予測子の標準偏差。長さ元素个数(PredictorNames)の数値ベクトルを指定します。

学習時に予測子変数を標準化しなかった場合,σは空([])になります。

デ,タ型:|

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

観測値の重み。Yと同じ行数をも非負値のベクトルを指定します。Wの各エントリは,Yで該当する観測の相対的な重要性を示します。

デ,タ型:|

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

標準化されていない予測子デ,タ。数値行列を指定します。Xの各列が1の予測値(変数)1。

デ,タ型:|

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

クラスラベル。绝对配列,文字配列、逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列を指定します。Yの各値は,Xの対応する行にいて観測されたクラスラベルです。

Yのデ,タ型は,モデルの学習に使用したYのデ,タと同じです。(字符串配列は文字ベクトルのcell配列として扱われます)。

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

ハパパラメタ最適化のプロパティ

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

ハパパラメタの交差検証最適化。ハパパラメタおよび関連する値が含まれているテブルまたはBayesianOptimizationオブジェクトを指定します。fitcknnを使用してモデルを作成するときに名前と値のペアの引数“OptimizeHyperparameters”が空以外であった場合,このプロパティは空以外になります。値は,モデル作成時の名前と値のペアの引数“HyperparameterOptimizationOptions”の設定に依存します。

  • “bayesopt”(既定)-BayesianOptimizationクラスのオブジェクト

  • “gridsearch”または“randomsearch”——使用したハイパーパラメーター,観測された目的関数の値(交差検証損失),および最低(最良)から最高(最悪)までの観測値の順位が格納されているテーブル

オブジェクト関数

compareHoldout 新しいデタを使用して2の分類モデルの精度を比較
crossval 機械学習モデルの交差検証
边缘 K最近傍分類器のエッジ
收集 Gpuからの统计和机器学习工具箱オブジェクトのプロパティの収集
石灰 局部可解释模型不可知解释(LIME)
损失 K最近傍分類器の損失
保证金 K最近傍分類器のマジン
partialDependence 部分従属の計算
plotPartialDependence 部分依存プロット(pdp)および個別条件付き期待値(ice)プロットの作成
预测 K最近傍分類モデルの使用によるラベルの予測
resubEdge 再代入分類エッジ
resubLoss 再代入分類損失
resubMargin 再代入分類マ,ジン
resubPredict 学習済み分類器を使用した学習デ,タの分類
沙普利 シャプレ値
testckfold 交差検証の反復により2の分類モデルの精度を比較

すべて折りたたむ

フィッシャ,のアヤメのデ,タに対してk最近傍分類器に学習をさせます。ここで,予測子の最近傍の個数kは5です。

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

负载fisheririsX = meas;Y =物种;

Xは,150本のアヤメにいて4の花弁の測定値が含まれている数値行列です。Yは,対応するアヤメの種類が含まれている文字ベクトルの单元格配列です。

5最近傍分類器を学習させます。非カテゴリカル予測子デ,タを標準化します。

Mdl = fitcknn(X,Y,“NumNeighbors”5,“标准化”,1)
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 Distance: 'euclidean' NumNeighbors: 5 Properties, Methods

Mdlは学習させたClassificationKNN分類器であり,一部のプロパティはコマンドウィンドウに表示されます。

ドット表記を使用してMdlプロパティにアクセスします。

Mdl。ClassNames
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
Mdl。之前
ans =1×30.3333 0.3333 0.3333

Mdl。之前にはクラスの事前確率が格納されます。これは,fitcknnの名前と値のペアの引数“之前”を使用して指定できます。クラス事前確率の順序はMdl。ClassNamesのクラスの順序に対応します。既定では,事前確率はデータ内のクラスのそれぞれの相対的頻度です。

学習後に事前確率をリセットすることもできます。たとえば,事前確率をそれぞれ 0.5、0.2 および 0.3 に設定します。

Mdl。先验= [0.5 0.2 0.3];

Mdl预测に渡すと,新しい測定値にラベルを付けることができます。また,crossvalに渡すと,分類器を交差検証できます。

ヒント

  • 関数紧凑的は,学習データのプロパティと,新しい観測値のラベルの予測には不要な他のプロパティを削除することにより,ほとんどの分類モデルのサイズを削減します。K最近棒分類モデルではラベルの予測にすべての学習デタが必要なので,ClassificationKNNモデルのサ@ @ズを小さくすることはできません。

代替機能

knnsearchは,点のk最近傍を探索します。rangesearchは,固定距離内の点をすべて探索します。クエリデ,タの分類に示すように,これらの関数は分類に使用することができます。分類を実行する場合は、あるステップで(fitcknnを使用して)分類器に学習をさせ,別のステップで(预测を使用して)分類を行うことができるので,ClassificationKNNモデルを使用する方が便利です。または,fitcknnを呼び出すときにいずれかの交差検証オプションを使用して,k最近傍分類モデルに学習をさせることもできます。この場合,fitcknnClassificationPartitionedModel交差検証済みモデルオブジェクトを返します。

拡張機能

バ,ジョン履歴

R2012aで導入