最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。
ķ最近傍分类
ClassificationKNN
は,距離計量と最近傍の個数の両方を変更できる最近傍分類モデルです。ClassificationKNN
分类器には学习データが格纳されるので,このモデルを使用して再代入予测を计算できます。または,このモデルと预测
メソッドを使用して新しい観测値を分类できます。
ClassificationKNN
モデルの作成にはfitcknn
を使用します。
BreakTies
-タイブレークアルゴリズム“最小”
(既定値)|“最近的”
|'随机'
複数のクラスで最小コストが同じである場合に预测
が使用するタイブレークアルゴリズム。次のいずれかを指定します。
“最小”
- 同顺位グループの中で最小インデックスを使用します。
“最近的”
- 同顺位グループの中で最近傍のあるクラスを使用します。
'随机'
——同順位グループの中でランダムなタイブレーカーを使用します。
既定では,K最近傍の中で同じ个数の最近傍点を复数のクラスがもつ场合に,同顺位が発生します。BreakTies
は,IncludeTies
が假
である場合に適用されます。
ドット表記を使用してBreakTies
を変更します。mdl.BreakTies = newBreakTies
。
距离
-距離計量“cityblock”
|“切比雪夫”
|“相关”
|“余弦”
|“欧几里德”
|关数ハンドル|……距离计量。文字ベクトルまたは关数ハンドルを指定します。可能な値はNSMethod
プロパティに応じて异なります。
NSMethod | 可能な距离计量 |
---|---|
“详尽” |
ExhaustiveSearcher の任意の距離計量 |
'kdtree' |
“cityblock” ,“切比雪夫” ,“欧几里德” ,または“闵可夫斯基 |
次の表は,ExhaustiveSearcher
の距離計量の一覧です。
値 | 说明 |
---|---|
“cityblock” |
市街地距离。 |
“切比雪夫” |
チェビシェフ距離(最大座標差)。 |
“相关” |
1から,一連の値として扱われる観測間の標本線形相関係数を引きます。 |
“余弦” |
1から,ベクトルとして扱われる観测间の夹角の余弦を引きます。 |
“欧几里德” |
ユークリッド距離。 |
“汉明” |
異なる座標の比率を示すハミング距離。 |
“jaccard” |
1から,ジャカード係数(異なる非ゼロ座標の比率)を引いた値。 |
“mahalanobis” |
正定共分散行列C を使用して计算される,マハラノビス距离。C の既定値はX の标本共分散行列であり,nancov (X) によって计算されます。C について異なる値を指定するには,ドット表記を使用してMDL のDistParameter プロパティを设定します。 |
“闵可夫斯基 |
ミンコフスキー距離。既定の指数は2 です。异なる指数を指定するには,ドット表记を使用してMDL のDistParameter プロパティを设定します。 |
“seuclidean” |
標準化されたユークリッド距離。X と各クエリ点の間の各座標差分がスケーリングされまつす。まり,スケール値小号 で除算されます。小号 の既定値はX から計算される標準偏差で,S = nanstd(X) です。小号 について異なる値を指定するには,ドット表記を使用してMDL のDistParameter プロパティを设定します。 |
“枪兵” |
1から,観測値間の標本スピアマンの順位相関(値の系列として扱われる)を引いた値。 |
@ |
距离关数ハンドル。 功能D2 = distfun(ZI,ZJ)距离的计算%…
|
詳細は,距離計量を参照してください。
ドット表記を使用して距离
を変更します。mdl.Distance = newDistance
。
NSMethod
が'kdtree'
である場合,ドット表記を使用して距离
を変更できる距离计量は,“cityblock”
,“切比雪夫”
,“欧几里德”
および“闵可夫斯基
のみです。
データ型:字符
|function_handle
DistanceWeight
-距離重み付け関数“平等”
|“逆”
|“squaredinverse”
|关数ハンドル距離重み付け関数。次の表のいずれかの値を指定します。
値 | 说明 |
---|---|
“平等” |
重み付けなし |
“逆” |
重みは1 /距離です |
“squaredinverse” |
重みは1 /距離2です |
@ |
fcn は,非负の距离の行列を受け入れ,非负の距离の重みが含まれている同じサイズの行列を返す关数です。たとえば,“squaredinverse” は@(d)d ^( - 2) と同じです。 |
ドット表記を使用してDistanceWeight
を変更します。mdl.DistanceWeight = newDistanceWeight
。
データ型:字符
|function_handle
DistParameter
-距離計量のパラメーター距離計量のパラメーター。次の表に記載されている値のいずれかを指定します。
距離計量 | パラメーター |
---|---|
“mahalanobis” |
正定共分散行列C |
“闵可夫斯基 |
ミンコフスキー距離指数。正のスカラー |
“seuclidean” |
X の列数と同じ長さをもつ正のスケール値のベクトル |
他の距離計量の場合,DistParameter
の値は[]
でなければなりません。
ドット表記を使用し,DistParameter
を変更できます。mdl.DistParameter = newDistParameter
。ただし,距离
が“mahalanobis”
または“seuclidean”
である場合は,DistParameter
を変更できません。
データ型:单
|双
IncludeTies
-同順位使用フラグ假
(既定値)|真正
k番目に小さい距離値の近傍をすべて预测
に含めるかどうかを示す同順位使用フラグ。假
または真正
を指定します。IncludeTies
が真正
である場合,すべての近傍が预测
に含まれます。それ以外の场合,预测
は正確にk個の近傍を使用します(BreakTies
プロパティを参照)。
ドット表記を使用してIncludeTies
を変更します。mdl。IncludeTies = newIncludeTies
。
データ型:合乎逻辑
NSMethod
-最近傍探索法'kdtree'
|“详尽”
このプロパティは読み取り専用です。
最近傍探索法。'kdtree'
または“详尽”
のいずれかを指定します。
'kdtree'
-ķd木を作成および使用して最近傍を探索します。
“详尽”
- 网罗的探索アルゴリズムを使用します新しい点xnew
のクラスを予测するときに,X
内のすべての点からxnew
までの距离を计算して最近傍を探索します。
X
の列数が10
以下で,X
がスパースではなく,距离计量が'kdtree'
タイプである场合,既定値は'kdtree'
です。それ以外の場合,既定値は“详尽”
です。
NumNeighbors
-最近傍の個数予测时に各点の分类に使用するX
内の最近傍の个数。正の整数値を指定します。
ドット表記を使用してNumNeighbors
を変更します。mdl。ñumNeighbors = newNumNeighbors
。
データ型:单
|双
CategoricalPredictors
-カテゴリカル予測子のインデックス[]
|正の整数のベクトルこのプロパティは読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルを指定します。CategoricalPredictors
には,カテゴリカル予测子が含まれている予测子データの列に対応するインデックス値を格纳します。どの予测子もカテゴリカルではない场合,このプロパティは空([]
)になります。
データ型:双
类名
-学習データÿ
内のクラス名このプロパティは読み取り専用です。
重複を削除した学習データÿ
内のクラス名.categorical配列,文字配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列を指定します。类名
のデータ型はÿ
と同じです。(字符串配列は文字ベクトルの细胞配列として扱われます)。
データ型:カテゴリカル
|字符
|合乎逻辑
|单
|双
|细胞
成本
-誤分類のコスト点の误分类コスト。正方行列を指定します。成本(I,J)
は,真のクラスが一世
である场合に点をクラスĴ
に分类するコストです(行は真のクラス,列は予测したクラスに対応します)。成本
の行と列の顺序は,类名
のクラスの顺序に対応します。成本
の行および列の数は,応答に含まれている一意なクラスの数です。
既定では,成本(I,J)= 1
(I〜= j的
の場合)および成本(I,J)= 0
(我= j的
の场合)です。つまり,正しい分类のコストは0
,误った分类のコストは1
です。
ドット表記を使用して成本
行列を変更します。mdl.Cost = costMatrix
。
データ型:单
|双
ExpandedPredictorNames
-展开された予测子名このプロパティは読み取り専用です。
展开された予测子名。文字ベクトルの细胞配列を指定します。
モデルがカテゴリカル変数用のエンコーディングを使用している场合,ExpandedPredictorNames
には展開された変数を表す名前が格納されます。それ以外の場合,ExpandedPredictorNames
はPredictorNames
と同じです。
データ型:细胞
ModelParameters
-ClassificationKNN
の学习に使用したパラメーターこのプロパティは読み取り専用です。
ClassificationKNN
モデルに学习をさせるために使用したパラメーター。构造体を指定します。
データ型:構造体
亩
-予测子の平均このプロパティは読み取り専用です。
予测子の平均。长さnumel(PredictorNames)
の数値ベクトルを指定します。
fitcknn
を使用してモデルに学习をさせるときにMDL
を標準化しなかった場合,亩
は空([]
)になります。
データ型:单
|双
NumObservations
-観測値の数このプロパティは読み取り専用です。
ClassificationKNN
モデルに学習をさせるときに使用した観測値の個数。正の整数スカラーを指定します。为NaN
値が含まれている行はあてはめに使用されないので,この数値は学习データの行数より小さくなる可能性があります。
データ型:双
PredictorNames
-予测子変数名このプロパティは読み取り専用です。
予测子変数の名前。文字ベクトルの细胞配列を指定します。変数名の顺序は,学习データX
に現れる順序と同じです。
データ型:细胞
之前
-各クラスの事前确率各クラスの事前确率。数値ベクトルを指定します。之前
の要素の顺序は,类名
のクラスの顺序に対応します。
ベクトル之前
を追加または変更するには,次のようにドット表記を使用します。mdl。之前= priorVector
データ型:单
|双
ResponseName
-応答変数名このプロパティは読み取り専用です。
応答変数名。文字ベクトルを指定します。
データ型:字符
RowsUsed
-あてはめに使用した行[]
|逻辑ベクトルこのプロパティは読み取り専用です。
ClassificationKNN
モデルのあてはめに使用した元のデータX
の行.logicalベクトルを指定します。すべての行を使用した场合,このプロパティは空になります。
データ型:合乎逻辑
ScoreTransform
-スコア変換'没有'
(既定値)|'doublelogit'
|“invlogit”
|“ismax”
|'Logit模型'
|关数ハンドル|……スコア変換。文字ベクトルまたは関数ハンドルのいずれかを指定します。
次の表は,使用可能な文字ベクトルをまとめています。
値 | 说明 |
---|---|
'doublelogit' |
1 / (1 + e-2x) |
“invlogit” |
日志(X /(1 - X)) |
“ismax” |
最大のスコアをもつクラスのスコアを1 に設定し,他のすべてのクラスのスコアを0 に設定します。 |
'Logit模型' |
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®関数またはユーザー定義関数の場合は,スコア変換用の関数ハンドルを使用します。関数ハンドルは,行列(元のスコア)を受け入れて同じサイズの行列(変換したスコア)を返さなければなりません。
ドット表記を使用してScoreTransform
を変更します。mdl。小号coreTransform = newScoreTransform
。
データ型:字符
|function_handle
σ
-予測子の標準偏差このプロパティは読み取り専用です。
予测子の标准偏差。长さnumel(PredictorNames)
の数値ベクトルを指定します。
学习时に予测子変数を标准化しなかった场合,σ
は空([]
)になります。
データ型:单
|双
w ^
-観測値の重みこのプロパティは読み取り専用です。
観测値の重み。ÿ
と同じ行数をもつ非負値のベクトルを指定します。w ^
の各エントリは,ÿ
で該当する観測の相対的な重要性を示します。
データ型:单
|双
X
-標準化されていない予測子データこのプロパティは読み取り専用です。
标准化されていない予测子データ。数値行列を指定します。X
の各列が1つの予测値(変数)を表し,各行が1つの観测値を表します。
データ型:单
|双
ÿ
-クラスラベルこのプロパティは読み取り専用です。
クラスラベル.categorical配列,文字配列的,逻辑的ベクトル,数値ベクトル,または文字ベクトルの细胞配列を指定します。ÿ
の各値は,X
の対応する行について観測されたクラスラベルです。
ÿ
のデータ型は,モデルの学習に使用したÿ
のデータと同じです。(字符串配列は文字ベクトルの细胞配列として扱われます)。
データ型:单
|双
|合乎逻辑
|字符
|细胞
|カテゴリカル
HyperparameterOptimizationResults
-ハイパーパラメーターの交差検证最适化BayesianOptimization
オブジェクト|テーブルこのプロパティは読み取り専用です。
ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたはBayesianOptimization
オブジェクトを指定します。fitcknn
を使用してモデルを作成するときに名前と値のペアの引数'OptimizeHyperparameters'
が空以外であった場合,このプロパティは空以外になります。値は,モデル作成時の名前と値のペアの引数“HyperparameterOptimizationOptions”
の设定に依存します。
'bayesopt'
(既定) -BayesianOptimization
クラスのオブジェクト
'gridsearch'
または“randomsearch”
- 使用したハイパーパラメーター,観测された目的关数の値(交差検证损失),および最低(最良)から最高(最悪)までの観测値の顺位が格纳されているテーブル
compareHoldout |
新しいデータを使用して2つの分類モデルの精度を比較 |
crossval |
交差検证済みķ最近傍分类器 |
边缘 |
k最近傍分類器のエッジ |
损失 |
k最近傍分類器の損失 |
保证金 |
k最近傍分類器のマージン |
预测 |
k最近傍分類モデルの使用によるラベルの予測 |
resubEdge |
再代入によるķ最近傍分类器のエッジ |
resubLoss |
再代入によるķ最近傍分类器の损失 |
resubMargin |
再代入によるk最近傍分類器のマージン |
resubPredict |
k最近傍分類器の再代入ラベルを予測 |
フィッシャーのアヤメのデータに対してķ最近傍分類器に学習をさせます。ここで,予測子の最近傍の個数ķは5です。
フィッシャーのアヤメのデータを読み込みます。
加载fisheririsX =量;Y =物种;
X
は150本のアヤメについて4つの花弁の測定値が含まれている数値行列です。ÿ
は,対応するアヤメの種類が含まれている文字ベクトルの细胞配列です。
5最近傍分類器を学習させます。非カテゴリカル予測子データを標準化します。
Mdl = fitcknn (X, Y,'NumNeighbors'5,“标准化”,1)
MDL = ClassificationKNN ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'setosa' '云芝' '锦葵'} ScoreTransform: '无' NumObservations:150距离: '欧几里得' NumNeighbors:5的属性,方法
MDL
は学習させたClassificationKNN
分类器であり,一部のプロパティはコマンドウィンドウに表示されます。
ドット表記を使用してMDL
プロパティにアクセスします。
Mdl.ClassNames
ANS =3X1单元阵列{ 'setosa'} { '云芝'} { '锦葵'}
Mdl.Prior
ANS =1×30.3333 0.3333 0.3333
Mdl.Prior
にはクラスの事前确率が格纳されます。これは,fitcknn
の名前と値のペアの引数“之前”
を使用して指定できます。クラス事前确率の顺序はMdl.ClassNames
のクラスの順序に対応します。既定では,事前確率はデータ内のクラスのそれぞれの相対的頻度です。
学習後に事前確率をリセットすることもできます。たとえば,事前確率をそれぞれ0.5,0.2および0.3に設定します。
Mdl.Prior= [0.5 0.2 0.3];
MDL
を预测
に渡すと,新しい测定値にラベルを付けることができますま。た,crossval
に渡すと,分類器を交差検証できます。
关数紧凑的
は,学習データのプロパティと,新しい観測値のラベルの予測には不要な他のプロパティを削除することにより,ほとんどの分類モデルのサイズを削減します同意最近棒分類モデルではラベルの予測にすべての学習データが必要なので,ClassificationKNN
モデルのサイズを小さくすることはできません。
knnsearch
は,点のk最近傍を探索します。rangesearch
は,固定距离内の点をすべて探索します。クエリデータの分类に示すように,これらの関数は分類に使用することができます。分類を実行する場合は,あるステップで(fitcknn
を使用して)分類器に学習をさせ,別のステップで(预测
を使用して)分類を行うことができるので,ClassificationKNN
モデルを使用する方が便利です。または,fitcknn
を呼び出すときにいずれかの交差検证オプションを使用して,K最近傍分类モデルに学习をさせることもできます。この场合,fitcknn
はClassificationPartitionedModel
交差検証済みモデルオブジェクトを返します。
使用上の注意事項および制限事項:
关数预测
はコード生成をサポートします。
fitcknn
を使用してķ最近傍分类モデルに学习をさせる场合,以下の制限が适用されます。
クラスラベルの入力引数値(ÿ
)を直言配列にすることはできません。
コード生成ではカテゴリカル予測子がサポートされません.logicalベクトル,文字配列,绝对配列,字符串配列,または文字ベクトルの细胞配列が格納されている表内の学習データは指定できません。また,名前と値のペアの引数'CategoricalPredictors'
は使用できません。カテゴリカル予測子をモデルに含めるには,モデルをあてはめる前にdummyvar
を使用してカテゴリカル予測子を前処理します。
名前と値のペアの引数“类名”
の値を直言配列にすることはできません。
名前と値のペアの引数'距离'
の値をカスタム距離関数にすることはできません。
名前と値のペアの引数“DistanceWeight”
の値をカスタム距离重み关数にすることはできますが,无名关数は指定できません。
名前と値のペアの引数'ScoreTransform'
の値を无名关数にすることはできません。
詳細は,コード生成の紹介を参照してください。
MATLABのコマンドを実行するリンクがクリックされました。
このリンクは、Webブラウザーでは動作しません.MATLABコマンドウィンドウに以下を入力すると,このコマンドを実行できます。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。