主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

fitcknn

K -최근접이웃분류기피팅

설명

Mdl= fitcknn (资源描述ResponseVarName은 테이블资源描述에포함된입력변수(예측변수,특징또는특성이라고도함)와출력값(응답변수)资源描述。ResponseVarName을기반으로하여k-최근접이웃분류모델을반환합니다。

Mdl= fitcknn (资源描述公式는 테이블资源描述에포함된입력변수를기반으로하여k-최근접이웃분류모델을반환합니다。公式资源描述에포함된응답변수와예측변수의부분집합에대한설명모델입니다。

Mdl= fitcknn (资源描述Y는 테이블资源描述에포함된예측변수와Y에포함된응답변수배열을기반으로하여k-최근접이웃분류모델을반환합니다。

예제

Mdl= fitcknn (XY는예측변수데이터X와응답변수Y를기반으로하여k-최근접이웃분류모델을반환합니다。

예제

Mdl= fitcknn (___名称,值는위에열거된구문중하나를사용하여하나이상의이름——값쌍의인수로지정된추가옵션으로모델을피팅합니다。예를들어,우선순위결정(平局)알고리즘,거리측정법또는관측값가중치를지정할수있습니다。

예제

모두 축소

피셔(费雪)의붓꽃데이터에사용할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에전달하여분류기를교차검할수있습니다。

피셔(费雪)의붓꽃데이터세트를불러옵니다。

负载fisheririsX = meas;Y =物种;

X는150개붓꽃에대한4개의꽃잎측정값을포함하는숫자형행렬입니다。Y는이에대응되는붓꽃종을포함하는문자형벡터로구성된셀형배열입니다。

민코프스키측정법을사용하여3-최근접이웃분류기를훈련시킵니다。민코프스키측정법을사용하려면완전탐색기를사용해야합니다。비범주형예측변수데이터는@ @준화하는것이좋습니다。

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

MdlClassificationKNN분류기입니다。

작업공간창에서Mdl을두번클릭하여Mdl의속성을살펴볼수있습니다。이렇게하면변수편집기가열립니다。

카이제곱거리를사용하여k-최근접이웃분류기를훈련시킵니다。

피셔(费雪)의붓꽃데이터세트를불러옵니다。

负载fisheririsX = meas;%预测Y =物种;%响应

j차원 점xz간의카이제곱거리는다음과같습니다。

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

여기서 w j 는 차원j와연결된가중치입니다。

카이제곱거리함수를지정합니다。거리함수는다음과같아야합니다。

  • X의한행,예를들어,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);

KNNMdlClassificationKNN분류기입니다。

디폴트10겹교차검을사용하여KNN분류기를교차검합니다。분류오차를추정합니다。

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

CVKNNMdlClassificationPartitionedModel분류기입니다。

이분류기를다른가중치부여방식을사용하는분류기와비교합니다。

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

두번째가중치부여방식은@ @본외성능이더좋은분류기를생성합니다。

이예제에서는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 | | 0.026667 | 4.3711 | 0.026667 | 0.026667 | 30 |余弦| | 2 |接受| 0.04 | 1.0223 | 0.026667 | 0.027197 | 2 | chebychev | | 3 |接受| 0.19333 | 1.1193 | 0.026667 | 0.030324 | 1 |汉明| | 4 |接受| 0.33333 | 0.90671 | 0.026667 | 0.033313 | | 31日斯皮尔曼| | 5 |的| 0.02 | 1.2634 | 0.02 | 0.020648 | 6 |余弦| | 6 |接受| 0.073333 | 0.18972 | 0.02 | 0.023082 | 1 |相关| | | 7日接受| 0.06 | 0.40599 | 0.02 | 0.020875 | 2 | cityblock | | |接受8 | 0.04 | 0.44638 | 0.02 | 0.020622 | 1 |欧几里得| | | 9日接受| 0.24 | 0.72276 | 0.02 | 0.020562 | 74 | mahalanobis | | 10 | | 0.04 | 0.38103|0.02|0.020649 | 1 | minkowski | | 11 | Accept | 0.053333 | 0.52777 | 0.02 | 0.020722 | 1 | seuclidean | | 12 | Accept | 0.19333 | 0.54384 | 0.02 | 0.020701 | 1 | jaccard | | 13 | Accept | 0.04 | 0.43121 | 0.02 | 0.029203 | 1 | cosine | | 14 | Accept | 0.04 | 0.47364 | 0.02 | 0.031888 | 75 | cosine | | 15 | Accept | 0.04 | 0.36295 | 0.02 | 0.020076 | 1 | cosine | | 16 | Accept | 0.093333 | 0.65481 | 0.02 | 0.020073 | 75 | euclidean | | 17 | Accept | 0.093333 | 0.60944 | 0.02 | 0.02007 | 75 | minkowski | | 18 | Accept | 0.1 | 0.41708 | 0.02 | 0.020061 | 75 | chebychev | | 19 | Accept | 0.15333 | 0.47509 | 0.02 | 0.020044 | 75 | seuclidean | | 20 | Accept | 0.1 | 0.4401 | 0.02 | 0.020044 | 75 | cityblock | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | NumNeighbors | Distance | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.033333 | 0.34764 | 0.02 | 0.020046 | 75 | correlation | | 22 | Accept | 0.033333 | 0.32048 | 0.02 | 0.02656 | 9 | cosine | | 23 | Accept | 0.033333 | 0.37439 | 0.02 | 0.02854 | 9 | cosine | | 24 | Accept | 0.02 | 0.35159 | 0.02 | 0.028607 | 1 | chebychev | | 25 | Accept | 0.02 | 0.32212 | 0.02 | 0.022264 | 1 | chebychev | | 26 | Accept | 0.02 | 0.19654 | 0.02 | 0.021439 | 1 | chebychev | | 27 | Accept | 0.02 | 0.26583 | 0.02 | 0.020999 | 1 | chebychev | | 28 | Accept | 0.66667 | 0.52076 | 0.02 | 0.020008 | 75 | hamming | | 29 | Accept | 0.04 | 0.78048 | 0.02 | 0.020008 | 12 | correlation | | 30 | Best | 0.013333 | 0.42429 | 0.013333 | 0.013351 | 6 | euclidean |

图中包含一个轴对象。标题为Min objective vs. Number of function的axis对象包含2个类型为line的对象。这些对象代表最小观测目标,估计最小目标。

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

__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:119.7005秒总目标函数评估时间:19.6687最佳观测可行点:NumNeighbors Distance ____________ _________ 6 euclidean观测目标函数值= 0.013333估计目标函数值= 0.013351函数评估时间= 0.42429最佳估计可行点(根据模型):NumNeighbors Distance ____________ _________ 6 euclidean估计目标函数值= 0.013351估计函数评估时间= 0.43933
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Distance: 'euclidean' NumNeighbors: 6 Properties, Methods

입력marketing수

모두 축소

모델을훈련시키는데사용되는` ` ` ` `본데이터로,테이블로지정됩니다。资源描述의각행은하나의관측값에대응되고,각열은하나의예측변수에대응됩니다。선택적으로,资源描述은응답변수에대해하나의추가열을포함할수있습니다。문자형벡터로구성된셀형배열이외의셀형배열과다중열변수는허용되지않습니다。

  • 资源描述이응답변수를포함하며资源描述의나머지모든변수를예측변수로사용하려는경우ResponseVarName을사용하여응답변수를지정하십시오。

  • 资源描述이응답변수를포함하며资源描述의나머지변수중일부만예측변수로사용하려는경우公式를사용하여공식을지정하십시오。

  • 资源描述이응답변수를포함하지않는경우Y를사용하여응답변수를지정하십시오。응답변수의길이와资源描述의행개수는동일해야합니다。

데이터형:表格

응답변수이름으로,资源描述의변수이름으로지정됩니다。

ResponseVarName은문자형벡터나字符串형스칼라로지정해야합니다。예를들어,응답변수Y资源描述。Y로저장된경우이를“Y”로지정하십시오。이렇게하지않으면모델을훈련시킬때Y를 포함한资源描述의모든열이예측변수로처리됩니다。

응답변수는直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열이어야합니다。Y가문자형배열경우,응답변수의각소는배열의각행에대응되어야합니다。

一会이름-값通讯录수를사용하여클래스의순서를지정하는것이좋습니다。

데이터형:字符|字符串

응답변수,그리고예측변수의부분집합에대한설명모델로,“Y ~ x1 + x2 + x3”형식의문자형벡터나字符串형스칼라로지정됩니다。이형식에서Y는응답변수를나타내고,x1x2x3은예측변수를나타냅니다。

资源描述의일부변수를모델훈련에사용할예측변수로지정하려면식을사용하십시오。사용자가식을지정하면资源描述의변수중해당公式에@ @시되지않은변수는사용되지않습니다。

식에포함되는변수이름은资源描述에포함된변수이름(Tbl.Properties.VariableNames)이면서동시에유효한matlab®식별자여야합니다。isvarname함수를사용하여资源描述에포함된변수이름을확할수있습니다。변수이름이유효하지않으면matlab.lang.makeValidName함수를사용하여변수이름을변환할수있습니다。

데이터형:字符|字符串

클래스레이블로,直言형배열,문자형배열,字符串형배열,논리형벡터,숫자형벡터또는문자형벡터로구성된셀형배열로지정됩니다。Y의각행은이에대응되는X행의분류를나타냅니다。

Y(빈문자형벡터),""(빈string형),< >失踪<定义>값은누락값으로간주됩니다。따라서누락응답변수가있는관측값은훈련에사용하지않습니다。

데이터형:分类|字符|字符串|逻辑|||细胞

예측변수데이터로,숫자형행렬로지정됩니다。

각행은하나의관측값(발생건또는예라고도함)에대응되고,각열은하나의예측변수(특징이라고도함)에대응됩니다。

Y의 길이와X의행개수는동일해야합니다。

X에나오는순서로예측변수의이름을지정하려면PredictorNames이름-값쌍의通讯录수를사용하십시오。

데이터형:|

이름-값通讯录수

예:“NumNeighbors”3“NSMethod”、“穷举”,“距离”,“闵可夫斯基”는최근접이웃탐색방법과민코프스키측정법을사용하여3 -최근접이웃을위한분류기를지정합니다。

선택적으로名称,值수가쉼로구분되어지정됩니다。여기서的名字은수이름이고价值는대응값입니다。的名字은따옴。Name1, Value1,…,的家과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。

참고

교차검이름-값수는“OptimizeHyperparameters”이름-값通讯录수와함께사용할수없습니다。“OptimizeHyperparameters”에대한교차검을수정하려면“HyperparameterOptimizationOptions”이름-값通讯录수를사용해야만합니다。

모델의파라미터

모두 축소

여러클래스가동일한최소비용을갖는경우预测방법이사용하는우선순위결정알고리즘으로,“BreakTies”와함께다음중하나가쉼@ @로구분되어지정됩니다。

  • “最小”-동점그룹중에서가장작은덱스를사용합니다。

  • “最近的”-동점그룹중에서최근접이웃을갖는클래스를사용합니다。

  • “随机”-동점그룹중에서무작위로하나를선택하는우선순위판별법을사용합니다。

기본적으로,총K개최근접이웃이주어졌을때서로같은개수의최근접이웃점을가지는복수의클래스가존재하면동순위(领带)가발생합니다。

예:“BreakTies”,“最近”

kD -트리의리프노드에포함된데이터점의최대개수로,“BucketSize”와함께양의정수값이쉼@ @로구분되어지정됩니다。이marketing수는NSMethod“kdtree”경우에만유효합니다。

예:“BucketSize”,40岁

데이터형:|

범주형예측변수를나타내는플래그로,“CategoricalPredictors”와함께다음중하나가쉼@ @로구분되어지정됩니다。

  • “所有”-모든예측변수가범주형변수입니다。

  • []-범주형변수예측변수가없습니다。

fitcknn의예측변수데이터는모두연속형이거나모두범주형이어야합니다。

  • 예측변수데이터가테이블(资源描述)내에있는경우,변수가논리형벡터,直言형벡터,문자형배열,字符串형배열또는문자형벡터로구성된셀형배열이면fitcknn함수는그변수를범주형변수라고가정합니다。资源描述에연속된값과범주형값이모두포함된경우,“CategoricalPredictors”의값을지정해야합니다。그러면fitcknn함수가모든예측변수를연속형변수로처리할지범주형변수로처리할지결정할수있습니다。

  • 예측변수데이터가행렬(X)이면fitcknn함수는모든예측변수를연속형변수라고가정합니다。X에포함된모든예측변수를범주형으로식별하려면“CategoricalPredictors”“所有”로지정하십시오。

CategoricalPredictors“所有”로설정할경우디폴트距离“汉明”입니다。

예:“CategoricalPredictors”、“所有”

훈련에사용할클래스의이름으로,直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열로지정됩니다。一会资源描述의응답변수또는Y와같은데이터형이어야합니다。

一会가문자형배열경우,각소는배열의각행에대응되어야합니다。

一会를사용하여다음을수행할수있습니다。

  • 훈련중의클래스순서를지정합니다。

  • 입력수차원또는출력수차원의순서를지정합니다。이순서는클래스순서와일치합니다。예를들어,一会를사용하여成本차원의순서나预测로반환되는분류점수의열순서를지정할수있습니다。

  • 훈련에사용할클래스의일부를선택합니다。예를들어,Y에포함된모든고유한클래스이름의집합이(“a”、“b”、“c”)라고가정해보겠습니다。클래스“一个”“c”의관측값만사용하여모델을훈련시키려면“类名”,(“a”、“c”)를지정하십시오。

一会의디폴트값은资源描述의응답변수또는Y에포함된모든고유한클래스이름의집합입니다。

예:“类名”,(“b”,“g”)

데이터형:分类|字符|字符串|逻辑|||细胞

점의오분류비용으로,“成本”와함께다음중하나가쉼@ @로구분되어지정됩니다。

  • 정사각행렬로,여기서成本(i, j)는특정점에대해실제클래스가경우이점을j클래스로분류하는비용입니다(즉,행은실제클래스에대응되고,열은예측클래스에대응됨)。成本의대응행과대응열에대한클래스순서를지정하려면一会이름-값쌍의通讯录수도지정하십시오。

  • 다음두개의필드를갖는구조체年代Y와같은유형의변수로그룹이름을포함하는S.ClassNames와비용행렬을포함하는S.ClassificationCosts

디폴트값은我~ = j化学式경우成本(i, j) = 1이고,我=我化学式경우成本(i, j) = 0입니다。

데이터형:||结构体

공분산행렬로,“浸”와함께마할라노비스거리를계산할때의공분산행렬을나타내는스칼라값으로구성된양의정부호행렬이쉼표로구분되어지정됩니다。이marketing수는“距离”“mahalanobis”경우에만유효합니다。

“标准化”“规模”또는“浸”와동시에지정할수없습니다。

데이터형:|

거리측정법으로,“距离”와함께유효한거리측정법이름또는함수핸들이쉼@ @로구분되어지정됩니다。허용되는거리측정법이름은선택한이웃탐색방법에따라달라집니다(NSMethod참조)。

NSMethod 거리측정법이름
详尽的 ExhaustiveSearcher의모든거리측정법
kdtree “cityblock”“chebychev”“欧几里得”또는闵可夫斯基的

다음@ @에는ExhaustiveSearcher의유효한거리측정법이나와있습니다。

거리측정법이름 설명
“cityblock” 도시블록거리입니다。
“chebychev” 체비쇼프거리(최대좌` ` `차이)입니다。
“相关” 1에서관측값간의` ` ` `본선형상관관계를뺀값입니다(일련의값으로처리됨)。
的余弦 1에서관측값간의끼marketing각에대한코사marketing을뺀값입니다(벡터로처리됨)。
“欧几里得” 유클리드거리입니다。
“汉明” 해밍거리로,서로다른좌@의백분율입니다。
“jaccard” 1에서서로다른,0이아닌좌의백분율자카드계수를뺀값입니다。
“mahalanobis” 마할라노비스거리로,양의정부호공분산행렬C를사용하여계산됩니다。C의디폴트값은X의본공분산행렬로,X (X, omitrows)로계산됩니다。C에다른값을지정하려면“浸”이름-값쌍의通讯录수를사용하십시오。
闵可夫斯基的 민코프스키거리입니다。디폴트지수는2입니다。다른지수를지정하려면“指数”이름-값쌍의通讯录수를사용하십시오。
“seuclidean” 준화된유클리드거리입니다。X와쿼리점간의각좌@ @차이는스케일링됩니다。즉,스케일값年代로나누어집니다。年代의디폴트값은X에서계산된@ @준편차S = std(X,'omitnan')입니다。年代에다른값을지정하려면规模이름-값쌍의通讯录수를사용하십시오。
“枪兵” 1에서관측값간` ` ` `본스피어만의순위상관계수를뺀값입니다(일련의값으로처리됨)。
@distfun

거리함수핸들입니다。distfun의형식은다음과같습니다

函数D2 = distfun(ZI,ZJ)距离计算%...
여기서

  • X또는Y의한행을포함하는1×N벡터입니다。

  • ZJX또는Y의여러행을포함하는平方米×N행렬입니다。

  • D2는거리로구성된平方米×1벡터이고,D2 (k)는 관측값ZJ (k,:)간의거리입니다。

CategoricalPredictors“所有”로지정한경우디폴트거리측정법은“汉明”입니다。그렇지않은경우디폴트거리측정법은“欧几里得”입니다。

정의는거리측정법항목을참조하십시오。

예:“距离”,“闵可夫斯基”

데이터형:字符|字符串|function_handle

거리가중치함수로,“DistanceWeight”와함께다음` ` `에나와있는값중하나또는함수핸들이쉼` ` ` `로구분되어지정됩니다。

설명
“平等” 가중치없음
“逆” 가중치:1/거리
“squaredinverse” 가중치:1/거리2
@fcn fcn은음이아닌거리로구성된행렬을받아음이아닌거리가중치를포함하는동일한크기의행렬을반환하는함수입니다。예를들어,“squaredinverse”@ (d) d。^ (2)와동일합니다。

예:“DistanceWeight”、“逆”

데이터형:字符|字符串|function_handle

민코프스키거리지수로,“指数”와함께양의스칼라값이쉼@ @로구분되어지정됩니다。이marketing수는“距离”闵可夫斯基的경우에만유효합니다。

예:“指数”,3

데이터형:|

동순위포함플래그로,“IncludeTies”와 함께K번째로작은거리와거리값이같은모든이웃을预测가포함하는지여부를나타내는논리값이쉼@ @로구분되어지정됩니다。IncludeTies真正的化学式경우预测는이러한이웃을모두포함합니다。그렇지않은경우预测는 정확히K개이웃을사용합니다。

예:“IncludeTies”,真的

데이터형:逻辑

최근접이웃탐색방법으로,“NSMethod”와 함께“kdtree”또는“详尽”가쉼@ @로구분되어지정됩니다。

  • “kdtree”- - - - - -kD -트리를생성하고이를사용하여최근접이웃을찾습니다。“kdtree”는거리측정법이다음중하나경우에만유효합니다。

    • “欧几里得”

    • “cityblock”

    • 闵可夫斯基的

    • “chebychev”

  • “详尽”-완전탐색알고리즘을사용합니다。새점xnew의클래스를예측할때X의모든점에서xnew까지의거리값을계산하여최근접이웃을찾습니다。

X10개이하의열을갖고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,…}입니다。

  • 资源描述을제공하는경우,PredictorNames를사용하여훈련에사용할예측변수를선택할수있습니다。즉,fitcknn함수는PredictorNames의예측변수와이에대한응답변수만을훈련중에사용합니다。

    • PredictorNamesTbl.Properties.VariableNames의부분집합이어야하므로응답변수의이름은포함할수없습니다。

    • 기본적으로,PredictorNames는모든예측변수의이름을포함합니다。

    • PredictorNames公式중하나만사용하여훈련에사용할예측변수를지정하는것이좋습니다。

예:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)

데이터형:字符串|细胞

각클래스의사전확률로,“之前”와함께다음` ` `에나와있는값이쉼` ` ` `로구분되어지정됩니다。

설명
“经验” 클래스사전확률은Y의클래스상대빈도입니다。
“统一” 모든클래스사전확률은1/ k와같습니다。여기서k는클래스개수입니다。
숫자형벡터 각소는클래스사전확률입니다。Mdl.ClassNames에따라소의순서를지정하거나一会이름-값쌍의通讯录수를사용하여순서를지정합니다。소프트웨어는합이1이되도록소를정규화합니다。
구조체

다음과같은두개의필드를갖는구조체年代입니다。

  • S.ClassNames는클래스이름을Y와같은유형의변수로포함합니다。

  • S.ClassProbs는대응되는사전확률로구성된벡터를포함합니다。소프트웨어는합이1이되도록소를정규화합니다。

权重之前모두에대한값을설정하면합이각클래스의사전확률값이되도록가중치가다시정규화됩니다。

예:“前”、“制服”

데이터형:字符|字符串|||结构体

응답변수이름으로,문자형벡터또는字符串형스칼라로지정됩니다。

  • Y를제공하는경우,ResponseName을사용하여응답변수의이름을지정할수있습니다。

  • ResponseVarName또는公式를제공하는경우에는ResponseName을사용할수없습니다。

예:“ResponseName”、“反应”

데이터형:字符|字符串

거리척도로,“规模”과 함께X의열개수와동일한길이,의음이아닌스칼라값으로구성된벡터가쉼표로구분되어지정됩니다。X와쿼리점간의각좌@ @의차이는规模의대응되는소만큼스케일링됩니다。이marketing수는“距离”“seuclidean”경우에만유효합니다。

“标准化”“规模”또는“浸”와동시에지정할수없습니다。

데이터형:|

점수변환방식으로,문자형벡터,字符串형스칼라또는함수핸들로지정됩니다。

다음` ` ` `에는사용가능한문자형벡터와string형스칼라가` ` ` ` `약되어있습니다。

설명
“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”、“分对数”

데이터형:字符|字符串|function_handle

예측변수를준화하는플래그로,“标准化”와 함께真正的1)또는(0))가쉼@로구분되어지정됩니다。

“标准化”,真的를설정하면예측변수데이터의각열(X)이열평균과@준편차를기준으로정규화됩니다。

범주형예측변수를표준화하지않으며,모든예측변수가범주형일경우오류를발생시킵니다。

“标准化”,1“规模”또는“浸”와동시에지정할수없습니다。

예측변수데이터를@ @준화하는것이좋습니다。

예:“标准化”,真的

데이터형:逻辑

관측값가중치로,“重量”와함께양수값으로구성된숫자형벡터나资源描述에포함된변수의이름이쉼@ @로구분되어지정됩니다。소프트웨어는X또는资源描述의각행에있는관측값에이에대응하는权重의값을함께사용하여가중치를적용합니다。权重의 크기는X또는资源描述의행개수와일치해야합니다。

입력데이터를테이블资源描述로지정하는경우,权重资源描述에서숫자형벡터를포함하는변수의이름일수있습니다。이경우,权重를문자형벡터또는字符串형스칼라로지정해야합니다。예를들어,가중벡터W资源描述。W로저장된경우,이를' W '로지정하십시오。그렇지않은경우,소프트웨어는모델을훈련시킬때W를 포함한资源描述의모든열을예측변수또는응답변수로처리합니다。

소프트웨어는权重의총합이각클래스의사전확률의값이되도록정규화합니다。

기본적으로,权重(n, 1)입니다。여기서nX또는资源描述에포함된관측값개수입니다。

데이터형:||字符|字符串

교차검옵션

모두 축소

교차검플래그로,“Crossval”과 함께“上”또는“关闭”가쉼@ @로구분되어지정됩니다。

“上”을지정하면10겹교차검을구현합니다。

이교차검설정을재정의하려면CVPartition坚持KFoldLeaveout이름-값쌍의通讯录수중하나를사용하십시오。교차검증된모델을생성하려면한번에하나의교차검증이름——값쌍의인수만사용해야합니다。

또는,crossval메서드를사용하여나중에Mdl을교차검하십시오。

예:“Crossval”,“上”

교차검분할로,cvpartition으로생성된cvpartition분할객체로지정됩니다。분할객체는교차검의유형을지정하며훈련세트와검세트의덱싱도지정합니다。

교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:cvp = cvpartition(500,'KFold',5)500개를사용하여관측값에대한5겹교차검증에사용할임의분할을생성한다고가정하겠습니다。그런다음,“CVPartition”,本量利를사용하여교차검된모델을지정할수있습니다。

홀드아웃검에사용할데이터의비율로,범위(0,1)내스칼라값으로지정됩니다。‘坚持’,p를지정하는경우소프트웨어는다음단계를완료합니다。

  1. 데이터의p * 100%를무작위로선택하여검증데이터용으로남겨두고나머지데이터를사용하여모델을훈련시킵니다。

  2. 교차검된모델의训练有素的속성에훈련된간소모델을저장합니다。

교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“坚持”,0.1

데이터형:|

교차검된모델에사용할겹의개수로,1보다큰양의정수값으로지정됩니다。KFold, k를지정하는경우소프트웨어는다음단계를완료합니다。

  1. 데이터를k개세트로임의로분할합니다。

  2. 각세트마다해당세트를검데이터로남겨두고나머지k- 1개의세트를사용하여모델을훈련시킵니다。

  3. 교차검된모델의训练有素的속성에k×1셀형벡터로k개의훈련된간소모델을저장합니다。

교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“KFold”,5

데이터형:|

리브-원-아웃교차검플래그로,“上”또는“关闭”로지정됩니다。“Leaveout”,“上”을지정하는경우,n개(여기서n은모델의NumObservations속성에지정된관측값중누락된관측값을제외한개수임)의관측값각각에대해소프트웨어가다음단계를완료합니다。

  1. 1개의관측값을검증데이터로남겨두고나머지n - 1개관측값을사용하여모델을훈련시킵니다。

  2. 교차검된모델의训练有素的속성에n×1셀형벡터로n개의훈련된간소모델을저장합니다。

교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“Leaveout”,“上”

하이퍼파라미터최적화옵션

모두 축소

최적화할모수로,“OptimizeHyperparameters”와함께다음값중하나가쉼@ @로구분되어지정됩니다。

  • “没有”-최적화하지않습니다。

  • “汽车”- - - - - -{‘距离’,‘NumNeighbors}를사용합니다。

  • “所有”-모든적합한모수를최적화합니다。

  • 적합한모수이름으로구성된字符串형배열또는셀형배열。

  • optimizableVariable객체로구성된벡터。일반적으로hyperparameters의출력값입니다。

최적화는모수를변경하여fitcknn에대한교차검손실(오차)을최소화하려고합니다。이와는다른맥락의교차검손실에대한자세한내용은分类损失항목을참조하십시오。교차검유형과최적화의기타측면을제어하려면HyperparameterOptimizationOptions이름-값쌍을사용하십시오。

참고

“OptimizeHyperparameters”값은다른이름-값通讯录수를사용하여지정하는모든값을재정의합니다。예를 들어“OptimizeHyperparameters”“汽车”로설정하면fitcknn함수는“汽车”옵션에대응되는하이퍼파라미터를최적화하고하이퍼파라미터에대해지정된값을모두무시합니다。

fitcknn에대한적합한모수는다음과같습니다。

  • 距离- - - - - -fitcknn“cityblock”“chebychev”“相关”的余弦“欧几里得”“汉明”“jaccard”“mahalanobis”闵可夫斯基的“seuclidean”“枪兵”중에서탐색을수행합니다。

  • DistanceWeight- - - - - -fitcknn“平等”“逆”“squaredinverse”중에서탐색을수행합니다。

  • 指数- - - - - -fitcknn이기본적으로범위(0.5, 3)에서양의실수값중에서탐색을수행합니다。

  • NumNeighbors- - - - - -fitcknn이기본적으로범위[1,马克斯(2轮(NumObservations / 2)))에서로그스케일링된양의정수값중에서탐색을수행합니다。

  • 标准化- - - - - -fitcknn이값“真正的”“假”중에서탐색을수행합니다。

디폴트가아닌값을가지는optimizableVariable객체로구성된벡터를전달하여디폴트가아닌모수를설정합니다。예를들면다음과같습니다。

负载fisheririsParams =超参数(“fitcknn”量,物种);参数(1)。Range = [1,20];

参数个数OptimizeHyperparameters의값으로전달합니다。

기본적으로,반복표시가명령줄에표시되고,최적화에지정된하이퍼파라미터개수에따라플롯이표시됩니다。최적화와플롯에대해목적함수는오분류율입니다。반복@ @시를제어하려면“HyperparameterOptimizationOptions”이름-값通讯录수에대한详细的필드를설정하십시오。플롯을제어하려면“HyperparameterOptimizationOptions”이름-값通讯录수에대한ShowPlots필드를설정하십시오。

예제는피팅된KNN분류기최적화하기항목을참조하십시오。

예:“汽车”

최적화에사용할옵션으로,구조체로지정됩니다。이marketing수는OptimizeHyperparameters이름-값通讯录수의효과를수정합니다。이구조체에포함된모든필드는선택사항입니다。

필드 이름 디폴트 값
优化器
  • “bayesopt”-베이즈최적화를사용합니다。내부적으로이설정은bayesopt를호출합니다。

  • “gridsearch”-차원당NumGridDivisions개값으로그리드탐색을수행합니다。

  • “randomsearch”- - - - - -MaxObjectiveEvaluations개점중에서무작위로탐색합니다。

“gridsearch”는그리드에서균등한비복원추출을사용하여무작위순서로탐색을수행합니다。최적화를수행한후,명령sortrows (Mdl.HyperparameterOptimizationResults)를사용하여그리드순으로정렬된테이블을얻을수있습니다。

“bayesopt”
AcquisitionFunctionName

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

  • “expected-improvement”

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • “probability-of-improvement”

최적화는목적함수의런타임에종속적이기때문에이름에每秒가포함된획득함수는재현가능한결과를산출하지않습니다。이름에+가포함된획득함수는특정역을과도하게사용하게될경우동작을수정합니다。자세한내용은획득함수유형항목을참조하십시오。

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 목적함수실행의최대횟수입니다。 “bayesopt”“randomsearch”의 경우30.이고,“gridsearch”의경우그리드전체입니다。
MaxTime

시간제한으로,양의실수형스칼라로지정됩니다。시간제한은초단위이며,抽搐toc으로측정됩니다。MaxTime은함수계산을중단시키지않으므로실행시간은MaxTime을초과할수있습니다。

NumGridDivisions “gridsearch”의경우,각차원의값개수입니다。이값은각차원에대한값의개수를제공하는양의정수로구성된벡터또는모든차원에적용되는스칼라일수있습니다。이필드는범주형변수의경우무시됩니다。 10
ShowPlots 플롯@ @시여부를나타내는논리값입니다。真正的경우,이필드는반복횟수에대해최선의관측된목적함수값을플로팅합니다。베이즈최적화를사용하는경우(优化器“bayesopt”임),이필드는최선의추정된목적함수값도플로팅합니다。최선의관측된목적함수값과최선의추정된목적함수값은각각반복@ @시의BestSoFar(观察)열과BestSoFar (estim)。열의값에대응됩니다。Mdl。HyperparameterOptimizationResults의 속성ObjectiveMinimumTraceEstimatedObjectiveMinimumTrace에서이러한값을확할수있습니다。문제에베이즈최적화를위한하나또는두개의최적화모수가있는경우,ShowPlots는이모수에대해서도목적함수의모델을플로팅합니다。 真正的
SaveIntermediateResults 优化器“bayesopt”경우결과를저장할지여부를나타내는논리값입니다。真正的경우,이필드는각반복마다“BayesoptResults”라는이름의작업공간변수를덮어씁니다。변수는BayesianOptimization객체입니다。
详细的

명령줄에通讯录시되는내용:

  • 0-반복` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

  • 1-반복시

  • 2-추가정보와함께반복시

자세한내용은bayesopt详细的이름-값通讯录수및예제베이즈최적화를사용하여분류기피팅최적화하기를참조하십시오。

1
UseParallel 베이즈최적화를병렬로실행할지여부를나타내는논리값으로,并行计算工具箱™가필요합니다。병렬시간재현이불가능하기때문에,병렬베이즈최적화에서반드시재현가능한결과를산출하지는않습니다。자세한내용은并行贝叶斯优化항목을참조하십시오。
重新分区

매반복시교차검을다시분할할지여부를나타내는논리값입니다。이필드의값이경우,최적화함수는최적화에단일분할을사용합니다。

真正的로설정할경우,분할잡음이고려되므로일반적으로가장견고한결과가제공됩니다。그러나,真正的에서좋은결과를생성하려면적어도두배더많은횟수의함수실행이필합니다。

다음과같은3개옵션중하나만사용합니다。
CVPartition cvpartition으로생성되는cvpartition객체 교차검필드를지정하지않을경우“Kfold”,5
坚持 홀드아웃비율을나타내는범위(0,1)내 스칼라
Kfold 1보다큰정수

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

데이터형:结构体

출력marketing수

모두 축소

훈련된k-최근접이웃분류모델로,ClassificationKNN모델객체또는ClassificationPartitionedModel교차검된모델객체로반환됩니다。

이름-값쌍의通讯录수KFold坚持, CrossVal또는CVPartition중어느하나라도설정하면,MdlClassificationPartitionedModel교차검된모델객체입니다。그렇지않은경우MdlClassificationKNN모델객체입니다。

Mdl의속성을참조하려면점@ @기법을사용하십시오。예를들어,Mdl。D我stance를입력하여명령창에거리측정법을@ @시할수있습니다。

세부 정보

모두 축소

예측

ClassificationKNN은다음과같은절차를사용하여점xnew의분류를예측합니다。

  1. 훈련 세트X에서xnew에가장근접한NumNeighbors개점을찾습니다。

  2. 이최근접점에대한NumNeighbors개응답변수값Y를찾습니다。

  3. Y의값중에서최대사후확률을갖는분류레이블ynew를할당합니다。

자세한내용은预测도움말문서에서后验概率항목을참조하십시오。

모델을훈련시킨후에는새데이터에대한레이블을예측하는C / c++코드를생성할수있습니다。C/ c++코드를생성하려면MATLAB编码器™가필합니다。자세한내용은代码生成简介항목을참조하십시오。

알고리즘

  • nan또는<定义>는누락관측값을나타냅니다。다음은데이터세트또는가중치가누락관측값을포함하는경우fitcknn의동작에대한설명입니다。

    • Y의값또는가중치가누락된경우fitcknnY와가중치로부터그러한값을제거하고,데이터로부터X의대응하는행을제거합니다。합이1이되도록가중치를다시정규화합니다。

    • 예측변수를指导书준화하도록지정하거나(“标准化”,1) @ @준화된유클리드거리를스케일없이지정하면(“距离”、“seuclidean”),fitcknn은평균과@ @준편차를계산하기전에개별예측변수에서누락관측값을제거합니다。다시말해서,각예측변수에대해“omitnan”옵션을사용하여的意思是性病를구현합니다。

    • 공분산행렬없이마할라노비스거리(“距离”、“mahalanbois”)를지정할경우fitcknn은하나이상의누락값을포함하는X의행을제거합니다。다시말해서,예측변수행렬X에 대해“omitrows”옵션을사용하여를구현합니다。

  • “标准化”,真的를설정했다고가정하겠습니다。

    • 之前또는权重이름-값쌍의通讯录수도지정하면fitcknn이대응되는가중평균과가중` ` `준편차를사용하여예측변수를` ` ` `준화합니다。특히,fitcknn은다음을사용하여예측변수j를준화합니다。

      • x j x j μ j σ j

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

        xjk는예측변수j(열)의관측값k(행)입니다。

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

    • “距离”、“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

대안

fitcknn은다중클래스KNN분류기를훈련시킬수있지만,fitcecoc를사용하여다중클래스학습문제를일련의KNN이진학습기로축소할수있습니다。

확장 기능

버전 내역

R2014a에개발됨