主要内容

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

Fitcknn.

説明

Mdl= fitcknn (TBL.ResponseVarname.は,テーブルTBL.内のの力次数(予测子,特点量または属性も呼ばます),およびおよび力(応答)tbl.responseVarname.に基づいてķ最近傍分类モデルを返します。

Mdl= fitcknn (TBL.公式は,テーブルTBL.内の入力変数に基づいてk最近傍分類モデルを返します。公式は応答およびTBL.内の予測子変数サブセットの説明モデルです。

Mdl= fitcknn (TBL.Yは,テーブルTBL.内の予測子変数,および応答配列Yに基づいてķ最近傍分类モデルを返します。

Mdl= fitcknn (XYは,予測子データXと応答Yに基づいてķ最近傍分类モデルを返します。

Mdl= fitcknn (___名称,值は,前の構文のいずれかを使用し,1つ以上の名前と値のペアの引数で指定されたオプションを追加して,モデルの近似を行います。たとえば,タイブレークアルゴリズム,距離計量,観測値の重みを指定できます。

すべて折りたたむ

フィッシャーのアヤメのデータに対して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距离:'euclidean' NumNeighbors: 5属性,方法

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。Prior = [0.5 0.2 0.3];

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

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

负载fisheririsx = meas;Y =物种;

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

3最近傍分類器をミンコフスキー距離を使用して学習させます。ミンコフスキー距離を使用するには,網羅的探索を使用しなければなりません。非カテゴリカル予測子データを標準化することをお勧めします。

Mdl = fitcknn (X, Y,“NumNeighbors”,3,...“NSMethod”'穷举着''距离'闵可夫斯基的...“标准化”1);

MdlClassificationKNN分類器です。

MdlのプロパティをワークスペースウィンドウのMdlをダブルクリックして調べることができます。変数エディターが開きます。

カイ二乗距離を使用してk最近傍分類器に学習をさせます。

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

负载fisheririsx = meas;%预测因子Y =物种;% 回复

j次元のx点とz点のカイ二乘距离は次のようになります。

χ x z j 1 J w j x j - z j 2

ここで, w j は次元jに関連付けられている重みです。

カイ二乗距離関数を指定します。距離関数は以下の手順を実行しなければなりません。

  • Xの1行,たとえば,xと行列Zをとります。

  • xZの各行と比較する。

  • 長さ n z のベクトルDを返す。 n z Zの行数です。Dの各要素はxに対応する観測とZの各行に対応する観測との間の距離です。

chiSqrDist = @ x, Z, wt)√((bsxfun (@minus, x, Z)。^ 2)* wt);

この例では例示のために任意の重みを使用します。

3.

k = 3;w = (0.3;0.3;0.2;0.2);KNNMdl = fitcknn (X, Y,'距离'@ (x, Z) chiSqrDist (x, Z, w),...“NumNeighbors”、钾、“标准化”1);

knnmdl.ClassificationKNN分類器です。

10分钟てててててますます。

rng (1);%的再现性CVKNNMdl = crossval (KNNMdl);classError = kfoldLoss (CVKNNMdl)
classError = 0.0600

CVKNNMdlClassificationPartitionedModel分類器です。10.分割分類誤差は 4% です。

分享器を异なる加载スキームを使

w2 = (0.2;0.2;0.3;0.3);CVKNNMdl2 = fitcknn (X, Y,'距离',@(x,z)chisqrdist(x,z,w2),...“NumNeighbors”、钾、“KFold”,10,“标准化”1);classError2 = kfoldLoss (CVKNNMdl2)
classError2 = 0.0400

2型

この例では,Fitcknn.を使用して自動的にハイパーパラメーターを最適化する方法を示します。この例では,フィッシャーのアヤメのデータを使用します。

データを読み込みます。

负载fisheririsx = meas;Y =物种;

自動的なハイパーパラメーター最適化を使用して,5分割交差検証損失を最小化するハイパーパラメーターを求めます。

再現性を得るために,乱数シードを設定し,“expected-improvement-plus”の獲得関数を使用します。

rng(1) Mdl = fitcknn(X,Y,“OptimizeHyperparameters”“汽车”...'hyperparameteroptimizationOptions'...结构(“AcquisitionFunctionName”“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | NumNeighbors距离| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================||1|Best | 0.026667 | 0.58776 | 0.026667 | 0.026667 | 30 | cosine | | 2 | Accept | 0.04 | 0.31307 | 0.026667 | 0.027197 | 2 | chebychev | | 3 | Accept | 0.19333 | 0.20608 | 0.026667 | 0.030324 | 1 | hamming | | 4 | Accept | 0.33333 | 0.17099 | 0.026667 | 0.033313 | 31 | spearman | | 5 | Best | 0.02 | 0.12757 | 0.02 | 0.020648 | 6 | cosine | | 6 | Accept | 0.073333 | 0.10582 | 0.02 | 0.023082 | 1 | correlation | | 7 | Accept | 0.06 | 0.24068 | 0.02 | 0.020875 | 2 | cityblock | | 8 | Accept | 0.04 | 0.12029 | 0.02 | 0.020622 | 1 | euclidean | | 9 | Accept | 0.24 | 0.19347 | 0.02 | 0.020562 | 74 | mahalanobis | | 10 | Accept | 0.04 | 0.15951 | 0.02 | 0.020649 | 1 | minkowski | | 11 | Accept | 0.053333 | 0.20189 | 0.02 | 0.020722 | 1 | seuclidean | | 12 | Accept | 0.19333 | 0.11384 | 0.02 | 0.020701 | 1 | jaccard | | 13 | Accept | 0.04 | 0.11814 | 0.02 | 0.029203 | 1 | cosine | | 14 | Accept | 0.04 | 0.13075 | 0.02 | 0.031888 | 75 | cosine | | 15 | Accept | 0.04 | 0.13512 | 0.02 | 0.020076 | 1 | cosine | | 16 | Accept | 0.093333 | 0.25354 | 0.02 | 0.020073 | 75 | euclidean | | 17 | Accept | 0.093333 | 0.13083 | 0.02 | 0.02007 | 75 | minkowski | | 18 | Accept | 0.1 | 0.11861 | 0.02 | 0.020061 | 75 | chebychev | | 19 | Accept | 0.15333 | 0.1298 | 0.02 | 0.020044 | 75 | seuclidean | | 20 | Accept | 0.1 | 0.16269 | 0.02 | 0.020044 | 75 | cityblock | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | NumNeighbors | Distance | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.033333 | 0.28907 | 0.02 | 0.020046 | 75 | correlation | | 22 | Accept | 0.033333 | 0.21655 | 0.02 | 0.02656 | 9 | cosine | | 23 | Accept | 0.033333 | 0.27591 | 0.02 | 0.02854 | 9 | cosine | | 24 | Accept | 0.02 | 0.14282 | 0.02 | 0.028607 | 1 | chebychev | | 25 | Accept | 0.02 | 0.13366 | 0.02 | 0.022264 | 1 | chebychev | | 26 | Accept | 0.02 | 0.12283 | 0.02 | 0.021439 | 1 | chebychev | | 27 | Accept | 0.02 | 0.1237 | 0.02 | 0.020999 | 1 | chebychev | | 28 | Accept | 0.66667 | 0.25575 | 0.02 | 0.020008 | 75 | hamming | | 29 | Accept | 0.04 | 0.18671 | 0.02 | 0.020008 | 12 | correlation | | 30 | Best | 0.013333 | 0.15814 | 0.013333 | 0.013351 | 6 | euclidean |

图中包含一个坐标轴。具有标题最小目标与函数评估数的轴包含2个类型的类型。这些物体代表最小观察到的目标,估计最小目标。

图中包含一个坐标轴。以目标函数模型为标题的轴包含线、面、轮廓等5个对象。这些对象表示观测点,模型均值,下一个点,模型最小可行值。

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:72.4006秒总目标函数计算时间:5.6256最佳观测可行点:NumNeighbors Distance ____________ _________ 6 euclidean Observed objective function value = 0.013333 Estimated objective function value = 0.013351 function evaluation time = 0.15814 Best Estimated feasible point (according to models):NumNeighbors Distance ____________ _________ 6欧几里得估计目标函数值= 0.013351估计函数计算时间= 0.1594
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Distance: 'euclidean' NumNeighbors: 6属性,方法

入力数

すべて折りたたむ

モデルを学習させるために使用する標本データ。テーブルとして指定します。TBL.,TBL.にに次数用词列を1つ追加できます。文件字の细胞配列ではない细胞配列配列とと列とととと列とととませませませ。

  • TBL.に応答変数が含まれている場合にTBL.内の他の変数をすべて予測子として使用するには,ResponseVarname.を使用して応答変数を指定します。

  • TBL.に応答変数が含まれている場合にTBL.内の他のののの一道のみをを子としてとしてには,公式を使用して式を指定します。

  • TBL.に応答変数が含まれていない場合は,Yをを用して応答応答指定します。TBL.の行数はは等しくなければませませ

データ型:表格

応答変数の名前。TBL.内の変数の名前で指定します。

ResponseVarname.には字字ベクトルまたはスカラーなりませんませなりませんたとえばなりませんませませませませませませませませY资源描述。Yとして格納されている場合,“Y”として指定します。それ户外の场合书,モデルモデル学正文ささせるとき,TBL.の列はYを含めてすべて予測子として扱われます。

応答変数は,绝对配列,文字配列,字符串配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列でなければなりません。Yが文字配列である場合,応答変数の各要素は配列の1つの行に対応しなければなりません。

名前と値の引数一会を使用してクラスの順序を指定することをお勧めします。

データ型:字符|字符串

応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”という形式の文字ベクトルまたは字符串スカラーを指定します。この形式では,Yはは変数を,X1X2およびX3は予测子変数を表します。

モデルに学習をさせるための予測子としてTBL.内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式に现れないTBL.内内分数は使使ません。

式の変数名はTBL.の変数名(Tbl.Properties.VariableNames)であり,有效なmatlab®識別子でなければなりません。関数isvarnameを使用してTBL.の数名を検证できますます。所以名称が有效でない合并相关,关联matlab.lang.makeValidNameを使用してそれらを変換できます。

データ型:字符|字符串

クラスラベル。绝对配列,文字配列,弦配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列を指定します。Yの各行は,Xの対応する行の分類を表します。

Y内の''(空の文字ベクトル),""(空の字符串),< >失踪,および<定义>このは欠损とれます。このこの,欠损応答がある観测値习习に使使れれ。

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

予測子データ。数値行列を指定します。

各行は1つの観测(インスタンスや例ともも呼ばますます,各列は1つの予测子跳数(特点ともれますますにします。

Yの长さとXの行数はは等しくなければませませ

予測子の名前をXに表示される順序で指定するには,PredictorNames名前と値のペアの引数を使用します。

データ型:|单身的

名称とと値ののペアの

オプションの名称,值引数のコンマ区切りペアを指定します。姓名は数名で,价值は対応する値です。姓名は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“NumNeighbors”3“NSMethod”、“穷举”,“距离”,“闵可夫斯基”は最近傍探索法とミンコフスキー距離を使用して3最近傍の分類器を指定します。

メモ

交差検证の名前とののペアののを名称と値のペアペア幂“OptimizeHyperparameters”と同時に使用することはできません。“OptimizeHyperparameters”の場合の交差検証は,名前と値のペアの引数'hyperparameteroptimizationOptions'を使用することのみによって変更できます。

モデルパラメーター

すべて折りたたむ

复数のクラスで最小コストが同じ同じであるであるに预测メソッドで使用されるタイブレークアルゴリズム。“BreakTies”と以下のいずれかで構成されるコンマ区切りのペアとして指定します。

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

  • '最近'- 同顺位グループの中で最近傍のあるクラスを使しし。

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

既定では,同顺位はK最近傍の中で同じ数の最近傍点を複数のクラスがもつときに発生します。

例:“BreakTies”,“最近”

kdツリーの葉ノード内のデータ点の最大的数。'桶里'と正の整数値で構成されるコンマ区切りのペアとして指定します。この引数は,NSMethod“kdtree”の場合にのみ意味があります。

例:“BucketSize”,40岁

データ型:单身的|

カテゴリカル予測子フラグ。“CategoricalPredictors”と以下のいずれかで构成される,コンマ区切りペアとして指定します。

  • “所有”——すべての予測子がカテゴリカルです。

  • []- カテゴリカルカテゴリカル子はありんん。

Fitcknn.の予測子データは,すべて連続,またはすべて直言のいずれかでなければなりません。

  • 予測子データがテーブル(TBL.)内にある場合,Fitcknn.は,その変数が逻辑ベクトル,直言ベクトル,文字配列,字符串配列または文字ベクトルの细胞配列のいずれかである場合に,変数を直言であると見なします。TBL.に連続値とカテゴリカル値の両方が含まれている場合,Fitcknn.が,すべての予測子を,連続変数とカテゴリカル変数のどちらとして扱うか,その方法を判断できるよう,“CategoricalPredictors”のの値を指定指定しばなりませませ

  • 予測子データが行列(X)である場合,Fitcknn.はすべての予測子が連続的であると見なします。Xのすべての予測子を直言として特定するには,“CategoricalPredictors”“所有”として指定します。

CategoricalPredictors“所有”に設定した場合,既定の設定の距离“汉明”です。

例:'pationoricalpricictors','全部'

学習に使用するクラスの名前。分类配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。一会のデータ型はTBL.内の応答変数またはYと同じでなければなりません。

一会が文字配列の场合,各要素は配列の1つの行に対応しなければなりません。

一会の使用目的は次のとおりです。

  • 学習時のクラスの順序を指定する。

  • クラスの順序に対応する入力または出力引数の次元の順序を指定する。たとえば,成本の次元の順序や预测によって返される分類スコアの列の順序を指定するために一会を使用します。

  • 学習用にクラスのサブセットを選択する。たとえば,Yに含まれているすべての異なるクラス名の集合が{' a ', ' b ', ' c '}であるとします。クラス'一种'および'C'のみの観測値を使用してモデルに学習をさせるには,'classnames',{'a','c'}を指定します。

一会の既定値は,TBL.内の応答変数またはYに含まれているすべての異なるクラス名の集合です。

例:“类名”,{' b ', ' g '}

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

点の誤分類のコスト。“成本”と以下のいずれかで構成されるコンマ区切りペアとして指定されます。

  • 正方行列。成本(i, j)は真のクラスがである場合に1つの点をクラスjに分类するためのコストです(行は真のクラス,列は予测したクラスに対応します)。成本の対応する行およびについてクラスクラスの顺序をするはは,名称と値のペア幂一会をさらに指定します。

  • 2つのフィールドをもつ年代を構成します。2つのフィールドは、Yと同じ型のグループ名を表す変数が格納されているS.ClassNamesと,コスト行列が格納されているS.ClassificationCostsです。

既定値は,我~ = jの结合は成本(i, j) = 1我=我の结合は成本(i, j) = 0です。

データ型:单身的||结构体

共分散行列。“浸”と,マハラノビス距離の計算時の共分散行列を表すスカラー値の正定値行列で構成される,コンマ区切りのペアとして指定します。この引数は,'距离'“mahalanobis”の場合にのみ有効です。

“标准化”および“规模”または“浸”のいずれかを同時に指定できません。

データ型:单身的|

距離計量。'距离'と有効な距離計量名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。使用できる距離計量名は,近傍探索法の選択(NSMethodを参照)によってによってます。

NSMethod 距離計量名
令人疲惫的の任意の距離計量
kdtree “cityblock”“chebychev”“欧几里得”,または闵可夫斯基的

このテーブルには,令人疲惫的の有効な距離計量が含まれます。

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

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

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

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

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

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

CategoricalPredictors“所有”に指定した場合,既定の距離計量は“汉明”となります。それ以外の場合は,既定の距離計量は“欧几里得”です。

定義については距離計量を参照してください。

例:'距离','minkowski'

データ型:字符|字符串|function_handle

距離重み付け関数。“距离重量”と関数ハンドルまたは次の表のいずれかの値から構成されるコンマ区切りのペアとして指定します。

説明
'平等的' 重み付けなし
“逆” 重みは1 /距離です
“squaredinverse” 重みは1 /距離2です
fcn fcnたとえば,“squaredinverse”@ (d) d。^ (2)と同じです。

例:“DistanceWeight”、“逆”

データ型:字符|字符串|function_handle

ミンコフスキーミンコフスキー数。“指数”と正さはのペアはははこのとしては。'距离'闵可夫斯基的の場合にのみ有効です。

例:“指数”,3

データ型:单身的|

同順位使用フラグ。“IncludeTies”と,距离の値がK番目に小さい距离と等しい点をすべて预测に含めるかどうかを表す論理値で構成される,コンマ区切りのペアとして指定します。IncludeTies真的の場合,预测はすべての近傍点を含みます。それ以外の場合,预测は正確にKの近傍点を使用します。

例:“IncludeTies”,真的

データ型:逻辑

最近傍探索法。“NSMethod”'穷举着'または“kdtree”で構成されるコンマ区切りのペアとして指定します。

  • “kdtree”- - - - - -kd木を作品成および使して傍を探索探索ますますます。“kdtree”は距離計量が次のいずれかである場合に有効です。

    • “欧几里得”

    • “cityblock”

    • 闵可夫斯基的

    • “chebychev”

  • '穷举着'——網羅的探索アルゴリズムを使用します。新しい点XNEW.のクラスを予測するときに,X内内のすべての点からXNEW.までの距離を計算して最近傍を探索します。

既定値は,Xの列数が10.以下で,XがスパースでないかGPUARRAY.で,距离距离量が“kdtree”型の場合は“kdtree”,それ以外の場合は'穷举着'です。

例:'nsmethod','穷举'

予測時に各点を分類するために検出するXの最近傍の数。“NumNeighbors”と正の整数値で構成されるコンマ区切りのペアとして指定します。

例:“NumNeighbors”,3

データ型:单身的|

予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの细胞配列として指定します。PredictorNamesの機能は,学習データの提供方法によって決まります。

  • XYを指定した場合,PredictorNamesを使用してX内の予測子変数に名前を割り当てることができます。

    • PredictorNames内の名称の顺序は,Xの列の順序に一致しなければなりません。つまり,predictornames {1}X (: 1)の名前,predictornames {2}X (:, 2)の名前であり,他も同様です。また,大小(X, 2)元素个数(PredictorNames)は等しくなければなりません。

    • 既定ではPredictorNames{'x1','x2',...}です。

  • TBL.を指定する場合,PredictorNamesを使使して学习使する予测子数量を选択でき。つまりFitcknn.は,学校中间にPredictorNamesの予测子数量と応答数のみのみを使使します。

    • PredictorNamesTbl.Properties.VariableNamesのサブセットでなければならず,応答変数の名前を含めることはできません。

    • 既定では,すべての予測子変数の名前がPredictorNamesに格納されます。

    • “PredictorNames”公式の両方ではなく,いずれか一方を使用して学習用の予測子を指定することをお勧めします。

例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

データ型:字符串|细胞

各クラスの事前確率。“之前”と次の表の値から构成されるコンマ区切りのペアとして指定します。

説明
“经验” クラスの事前確率は,Yのクラスの相対的頻度です。
“统一” クラスの事前確率はいずれも1 / K (Kはクラス数)となります。
数値ベクトル 各要素はクラスの事前確率です。Mdl.classnames.に従って要素を並べ替えるか,一会名前と値のペアの引数を使用して順序を指定します。要素は合計が1になるになるに正式化さますます。
構造体

構造体年代には2つのフィールドがあります。

  • S.ClassNamesYと同じ型の変数のクラス名が格納されます。

  • S.ClassProbs:対応する事前確率のベクトルが格納されます。要素は合計が1になるになるに正式化さますます。

权重之前の両方に値を設定した場合は,重みは合計が対応するクラスの事前確率の値になるように再正規化されます。

例:“前”、“制服”

データ型:字符|字符串|单身的||结构体

応答源名称。文件ベクトルまたは弦またはスカラー指定します。

  • Yを指定した場合,“ResponseName”を使用して応答変数の名前を指定できます。

  • ResponseVarname.または公式を指定した場合,“ResponseName”を使用することはできません。

例:“ResponseName”、“响应”

データ型:字符|字符串

距离スケール。“规模”と,Xの列数と同じ長さの非負のスカラー値を含むベクトルで構成される,コンマ区切りのペアとして指定します。Xとクエリ点の間の各座標差分は,规模の対応する要素でスケーリングされます。この引数は,'距离''seuclidean'の場合にのみ有効です。

“标准化”および“规模”または“浸”のいずれかを同時に指定できません。

データ型:单身的|

スコア変換。文字ベクトル,弦スカラー,または関数ハンドルとして指定します。

次の表は,使用可能な文字ベクトルおよび字符串スカラーをまとめています。

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

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

例:“ScoreTransform”、“分对数的

データ型:字符|字符串|function_handle

予測子を標準化するためのフラグ。“标准化”と,真的1)または(0)〖图库“

“标准化”,真的を設定すると,予測子データ(X)の各列のセンタリングとスケーリングを,それぞれ列の平均値と標準偏差を使用して行います。

すべての予测子がカテゴリカルの场合,カテゴリカル予测子は标准化されずエラーがスローされます。

“标准化”,1および“规模”または“浸”のいずれかを同時に指定できません。

予測子データの標準化をお勧めします。

例:“标准化”,真的

データ型:逻辑

観測値の重み。“重量”と,正の値の数値ベクトルまたはTBL.内の変数の名前から構成されるコンマ区切りのペアとして指定します。XまたはTBL.の各行に含まれている観测値は,权重の対応する値で重み付けされます。权重のサイズは,XまたはTBL.の行数と等しくなければなりません。

入力データをテーブルTBL.として指定した場合,权重は数値ベクトルが含まれているTBL.内の変数の名前にすることができます。この場合,权重には字ベクトルベクトルまたはスカラーを指定しなければなりませんたとえばなりませませませませませませませませませませませませませませませW资源描述。Wとして格納されている場合,' W 'として指定します。それ以外の場合,モデルに学習をさせるときに、TBL.の列はWを含めてすべて予测子または応答として扱われます。

合計が各クラスの事前確率の値と等しくなるように权重が正規化されます。

既定の設定では,权重(n,1)です。nXまたはTBL.の観測値数です。

データ型:|单身的|字符|字符串

交差検証のオプション

すべて折りたたむ

交差検証フラグ。“Crossval”“上”または'离开'から構成されるコンマ区切りのペアとして指定します。

“上”を指定した場合10分割の交差検証が実施されます。

この交差検証の設定をオーバーライドするには,名前と値のペアの引数CVPartition.坚持kfold.Leaveout交差いずれかをを使ます。交差検证済みモデルを作物作作作作作作作者们名称と値のペアののはと値ののの。

またはcrossvalメソッドを使用して,後でMdlに交差検証を実施します。

例:“Crossval”,“上”

交差検証分割。cvpartitionで作物成しcvpartition分割オブジェクトとして指定します。分割オブジェクトは,交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition.坚持kfold.Leaveoutの4つのうちのいずれかのみです。

例:本量利= cvpartition(500年,“KFold”,5)500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,'cvpartition',cvpを使用して交差検证済みモデルを指定できます。

ホールドアウト検証に使用されるデータの比率。(0,1)の範囲のスカラー値として指定します。‘坚持’,pを指定したた合,以下の手顺が実行。

  1. p * 100%のデータを無作為に選択して検証データとして確保し,残りのデータを使用してモデルに学習をさせる。

  2. コンパクトな学習済みモデルを交差検証済みモデルの训练有素プロパティに格納する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition.坚持kfold.Leaveoutの4つのうちのいずれかのみです。

例:'扑腾',0.1

データ型:|单身的

交差検証済みモデルで使用する分割の数。1より大きい正の整数値として指定します。KFold, kを指定したた合,以下の手顺が実行。

  1. データを無作為にk个のセットに分享。

  2. 各セットについて,そのセットを検定データとして確保し,他のk- 1個のセットを使用してモデルに学習をさせる。

  3. k個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素プロパティに含まれているk行1列の细胞ベクトルに格納する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition.坚持kfold.Leaveoutの4つのうちのいずれかのみです。

例:“KFold”,5

データ型:单身的|

分析法の交差検証のフラグ。“上”または'离开'として指定します。'遗送','开'を指定した場合,n個の観測値(nはモデルのNumObservationsプロパティで指定される,欠损観测値を除外した観测値の个数)のそれぞれについて以下の手顺が実行されます。

  1. いずれかの観测値を検证データとして确保し,他のN - 1个の観测値を使用してモデルに学习をさせる。

  2. n個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素プロパティに含まれているn行1列の细胞ベクトルに格式する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition.坚持kfold.Leaveoutの4つのうちのいずれかのみです。

例:'遗送','开'

ハイパーパラメーター最適化オプション

すべて折りたたむ

最適化するパラメーター。“OptimizeHyperparameters”と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • “没有”- 最最适を行为ません。

  • “汽车”- - - - - -{‘距离’,‘NumNeighbors}を使用します。

  • “所有”——すべての使用可能パラメーターを最適化します。

  • 实用可能名の弦のまたは细胞配列。

  • optimizableVariableオブジェクトオブジェクトベクトル。通讯はhyperparametersのの力です。

最適化では,パラメーターを変化させることにより,Fitcknn.の交差検証損失(誤差)を最小化しようとします。(各種の状況における)交差検証損失の詳細については,分類損失を参照してください。交差検証のタイプおよびその他の最適化の側面を制御するには,名前と値のペアHyperparameterOptimizationOptionsを使用します。

メモ

“OptimizeHyperparameters”の値は,他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば,“OptimizeHyperparameters”“汽车”に設定すると,“汽车”の値が適用されます。

Fitcknn.では,以下のパラメーターを使用できます。

  • 距离- - - - - -Fitcknn.は,“cityblock”“chebychev”'相关性'的余弦“欧几里得”“汉明”'jaccard'“mahalanobis”闵可夫斯基的'seuclidean'および“枪兵”で探索します。

  • DistanceWeight- - - - - -Fitcknn.は,'平等的'“逆”および“squaredinverse”で探索します。

  • 指数- - - - - -Fitcknn.は,既定では範囲(0.5, 3)で,正の実数値を探索します。

  • NumNeighbors- - - - - -Fitcknn.は,既定では範囲[1,max(2,round(numobservations / 2))]の対数スケールで,正の整数値を探索します。

  • 标准化- - - - - -Fitcknn.は,値'真的'および“假”で探索します。

既定以外のパラメーターを設定するには,既定以外の値が含まれているoptimizableVariableたとえば,以下のににし。

负载fisheririsparams = hyperparameters (“fitcknn”量,物种);参数(1)。范围=(1、20);

OptimizeHyperparametersの値として参数个数を渡します。

既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合はLog(1 +交叉验证损失),分類の場合は誤分類率です。反復表示を制御するには,名前と値のペアの引数'hyperparameteroptimizationOptions'详细的フィールドを設定します。プロットを制御するには,名前と値のペアの引数'hyperparameteroptimizationOptions'ShowPlotsフィールドを設定します。

たとえば,あてはめた资讯分類器の最適化を参照してください。

例:“汽车”

最適化のオプション。'hyperparameteroptimizationOptions'と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparametersの効果が変化します。この構造体のフィールドは,すべてオプションです。

フィールド名 既定の設定
优化器
  • “bayesopt”——ベイズ最適化を使用。内部的にはbayesoptが呼び出されます。

  • “gridsearch”——次元ごとにNumGridDivisionsの値があるグリッド探索を使用。

  • “randomsearch”- - - - - -maxobjectiveevaluations個の点で無作為に探索。

“gridsearch”では,グリッドからの一様な非復元抽出により,無作為な順序で探索します。最適化後、sortrows(mdl.hyperParameterOptimationResults)コマンドを使用してグリッド順のテーブルを取得できます。

“bayesopt”
获取功能名称

  • “expected-improvement-per-second-plus”

  • '预期改善'

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • '改善概率'

オブジェクト関数のランタイムによって最適化が異なるので,名前に每秒が含まれている獲得関数は,再現性がある結果を生成しません。名前にが含まれて获得关联数号,领域を过剰利用ししいる场ににますます。获得关节を参照してください。

“expected-improvement-per-second-plus”
maxobjectiveevaluations 目的関数評価の最大的数。 “bayesopt”または“randomsearch”の结合は30.“gridsearch”の場合はグリッド全体
MaxTime

制限時間。正の実数を指定します。制限時間の単位は,抽搐tocによって測定される秒です。MaxTimeは関数評価を中断させないため,実行時間がMaxTimeを超える可能性があります。

NumGridDivisions “gridsearch”値は,各次元の値の,またはすべて次元に整されるが场ですですれるカテゴリカルの场です。。 10.
ShowPlots プロットを表示するかどうかを示す論理値。真的の場合,最良の目的関数の値が反復回数に対してプロットされます。1つまたは2つの最適化パラメーターがあり,优化器“bayesopt”である場合,ShowPlotsはパラメーターに対する目的关键词 真的
SaveIntermediateResults 优化器“bayesopt”である場合に結果を保存するかどうかを示す論理値。真的の場合,'贝叶特遗露'という名前のワークスペース変数が反復ごとに上書きされます。この変数はBayesianOptimizationオブジェクトです。
详细的

コマンドラインへの表示。

  • 0——反復表示なし

  • 1——反復表示あり

  • 2——追加情報付きで反復表示あり

詳細については,bayesoptの名前と値のペアの引数详细的を参照してください。

1
UseParallel ベイズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱™が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細については,並列ベイズ最適化を参照してください。
重新分区

反复ごとに交差検证を再分割するかどうかを示す论理値。の場合,オプティマイザーは単一の分割を最適化に使用します。

分割ノイズが考慮されるので,通常は真的にすると最も確実な結果が得られます。ただし,真的で良好な結果を得るには,2倍以上の関数評価が必要になります。

以下の3つのフィールド名は1つだけ使用できます。
CVPartition. cvpartitionによって作成されるcvpartitionオブジェクト。 交差検証フィールドが指定されていない場合“Kfold”,5
坚持 ホールドアウトの比率を表す範囲(0,1)のスカラー。
Kfold 1より大きい整数。

例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

データ型:结构体

出力引数

すべて折りたたむ

学習済みのk最近傍分類モデル。ClassificationKNNモデルオブジェクトまたはClassificationPartitionedModel交差検証済みモデルオブジェクトとして返されます。

名称とと値ののペアのkfold.坚持CrossValCVPartition.のいずれかを設定した場合,MdlClassificationPartitionedModel交差検証済みモデルオブジェクトになります。それ以外の場合,MdlClassificationKNNモデルオブジェクトになります。

Mdlのプロパティを参照するには,ドット表記を使用します。たとえば,コマンド ウィンドウで距離計量を表示するには、mdl.distance.を入力します。

詳細

すべて折りたたむ

予測

ClassificationKNNは次と同等の手順を使用して点XNEW.の分類を予測します。

  1. XNEW.に最近傍である学習セットXNumNeighbors点を検出します。

  2. それらの最近傍点へのNumNeighbors応答値Yを検出します。

  3. Yの値の中で事后がが大厦ynew分類ラベルを割り当てます。

详细详细,「预测“ドキュメンテーションの事後確率を参照してください。

ヒント

モデルに学習をさせた後で,新しいデータについてラベルを予測するC / c++コードを生成できます。C / c++コードの生成にはMATLAB编码器™が必要です。詳細については、コード生成の紹介を参照してください。

アルゴリズム

  • nanまたは<定义>は観測値の欠損を示します。以下はデータセットまたは重みに欠損した観測がある場合のFitcknn.の動作を説明します。

    • Yの任意の値または重みににがある场合书,Fitcknn.はこれらの値をYから削除し,重みおよび対応するXの行をデータから削除します。重みは再度正規化され,合計は1になります。

    • 予测子(“标准化”,1)または標準化されたユークリッド距離(“距离”、“seuclidean”)にスケーリングなしの標準化を指定する場合,Fitcknn.は平均と標準偏差を計算する前に,欠損した観測値を各予測子から削除します。つまり,ソフトウェアは,的意思是およびSTD.を各予測子で“omitnan”オプションを使用して実装します。

    • 共分散行列を使用せずにマハラノビス距離(“距离”、“mahalanbois”)を指定する場合,Fitcknn.によって少なくとも1つの欠損値を含むXの行が削除されます。つまり,ソフトウェアは、をを子行程X'omatrows'オプションを使用して実装します。

  • “标准化”,1を設定すると仮定します。

    • 之前または权重もも指定の重みが考虑されれれれれれれれれれれれれれ。

      μ j 1 k w k k w k x j k

      また,加重标准偏差は次のようになります。

      σ j 2 k w k k w k 2 k w k 2 k w k x j k μ j 2

      ここでBjはxjkとwkが欠損していないインデックスkのセットです。

    • '距离','mahalanobis'または“距离”、“seuclidean”も設定する場合,规模またはは指定できません。代わりに,次の処理が実行されます。

      1. 各各子の平面と标准偏差を计算する

      2. ステップ1の結果を使用してデータを標準化する

      3. 距离パラメーターの値をそれぞれ既定既定値を使计算计算计算する。

  • 规模および之前または权重のいずれかを指定する場合,観測された距離は加重標準偏差でスケーリングされます。

  • および之前または权重のいずれかを指定する場合,加重共分散行列が距離に適用されます。つまり,次のようになります。

    C o v k w k k w k 2 k w k 2 j k w k x j k μ j x j μ j

    ここでBは観測値xjに欠損値がなくwjが欠損していないインデックスjの集合です。

代替方法

Fitcknn.はマルチクラス资讯分類器を学習させることができます。また,fitcecocをを使し,マルチクラス学习问题をのknnバイナリ学仪。

拡張機能

R2014Aで导入