이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
fitcknn
K -최근접이웃분류기피팅
구문
설명
은 테이블Mdl
= fitcknn (资源描述
,ResponseVarName
)资源描述
에포함된입력변수(예측변수,특징또는특성이라고도함)와출력값(응답변수)资源描述。ResponseVarName
을기반으로하여k-최근접이웃분류모델을반환합니다。
예제
k-최근접이웃분류기훈련시키기
피셔(费雪)의붓꽃데이터에사용할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];
민코프스키측정법을사용하여k-최근접이웃분류기훈련시키기
피셔(费雪)의붓꽃데이터세트를불러옵니다。
负载fisheririsX = meas;Y =物种;
X
는150개붓꽃에대한4개의꽃잎측정값을포함하는숫자형행렬입니다。Y
는이에대응되는붓꽃종을포함하는문자형벡터로구성된셀형배열입니다。
민코프스키측정법을사용하여3-최근접이웃분류기를훈련시킵니다。민코프스키측정법을사용하려면완전탐색기를사용해야합니다。비범주형예측변수데이터는@ @준화하는것이좋습니다。
Mdl = fitcknn(X,Y,“NumNeighbors”3,...“NSMethod”,“详尽”,“距离”,闵可夫斯基的,...“标准化”1);
Mdl
은ClassificationKNN
분류기입니다。
작업공간창에서Mdl
을두번클릭하여Mdl
의속성을살펴볼수있습니다。이렇게하면변수편집기가열립니다。
사용자지정거리측정법을사용하여k-최근접이웃분류기훈련시키기
카이제곱거리를사용하여k-최근접이웃분류기를훈련시킵니다。
피셔(费雪)의붓꽃데이터세트를불러옵니다。
负载fisheririsX = meas;%预测Y =物种;%响应
j차원 점x와z간의카이제곱거리는다음과같습니다。
여기서 는 차원j와연결된가중치입니다。
카이제곱거리함수를지정합니다。거리함수는다음과같아야합니다。
X
의한행,예를들어,x
와 행렬Z
를받습니다。x
를Z
의각행과비교합니다。길이가 化学式벡터
D
를반환합니다。여기서 는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겹교차검을사용하여KNN분류기를교차검합니다。분류오차를추정합니다。
rng (1);%用于再现性CVKNNMdl = crossval(KNNMdl);classError = kfoldLoss(CVKNNMdl)
classError = 0.0600
CVKNNMdl
은ClassificationPartitionedModel
분류기입니다。
이분류기를다른가중치부여방식을사용하는분류기와비교합니다。
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
두번째가중치부여방식은@ @본외성능이더좋은분류기를생성합니다。
피팅된KNN분류기최적화하기
이예제에서는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 |
__________________________________________________________ 优化完成。最大目标达到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 ~ x1 + x2 + x3”
형식의문자형벡터나字符串형스칼라로지정됩니다。이형식에서Y
는응답변수를나타내고,x1
,x2
,x3
은예측변수를나타냅니다。
资源描述
의일부변수를모델훈련에사용할예측변수로지정하려면식을사용하십시오。사용자가식을지정하면资源描述
의변수중해당公式
에@ @시되지않은변수는사용되지않습니다。
식에포함되는변수이름은资源描述
에포함된변수이름(Tbl.Properties.VariableNames
)이면서동시에유효한matlab®식별자여야합니다。isvarname
함수를사용하여资源描述
에포함된변수이름을확할수있습니다。변수이름이유효하지않으면matlab.lang.makeValidName
함수를사용하여변수이름을변환할수있습니다。
데이터형:字符
|字符串
Y
- - - - - -클래스레이블
分类형배열|문자형배열|字符串형배열|논리형벡터|숫자형벡터|문자형벡터로구성된셀형배열
클래스레이블로,直言형배열,문자형배열,字符串형배열,논리형벡터,숫자형벡터또는문자형벡터로구성된셀형배열로지정됩니다。Y
의각행은이에대응되는X
행의분류를나타냅니다。
Y
의南
,”
(빈문자형벡터),""
(빈string형),< >失踪
,<定义>
값은누락값으로간주됩니다。따라서누락응답변수가있는관측값은훈련에사용하지않습니다。
데이터형:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
X
- - - - - -예측변수데이터
숫자형행렬
예측변수데이터로,숫자형행렬로지정됩니다。
각행은하나의관측값(발생건또는예라고도함)에대응되고,각열은하나의예측변수(특징이라고도함)에대응됩니다。
Y
의 길이와X
의행개수는동일해야합니다。
X
에나오는순서로예측변수의이름을지정하려면PredictorNames
이름-값쌍의通讯录수를사용하십시오。
데이터형:双
|单
이름-값通讯录수
예:“NumNeighbors”3“NSMethod”、“穷举”,“距离”,“闵可夫斯基”
는최근접이웃탐색방법과민코프스키측정법을사용하여3 -최근접이웃을위한분류기를지정합니다。
선택적으로名称,值
수가쉼로구분되어지정됩니다。여기서的名字
은수이름이고价值
는대응값입니다。的名字
은따옴。Name1, Value1,…,的家
과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。
참고
교차검이름-값수는“OptimizeHyperparameters”
이름-값通讯录수와함께사용할수없습니다。“OptimizeHyperparameters”
에대한교차검을수정하려면“HyperparameterOptimizationOptions”
이름-값通讯录수를사용해야만합니다。
BreakTies
- - - - - -우선순위결정(打破领带)알고리즘
“最小”
(디폴트값)|“最近的”
|“随机”
여러클래스가동일한최소비용을갖는경우预测
방법이사용하는우선순위결정알고리즘으로,“BreakTies”
와함께다음중하나가쉼@ @로구분되어지정됩니다。
“最小”
-동점그룹중에서가장작은덱스를사용합니다。“最近的”
-동점그룹중에서최근접이웃을갖는클래스를사용합니다。“随机”
-동점그룹중에서무작위로하나를선택하는우선순위판별법을사용합니다。
기본적으로,총K
개최근접이웃이주어졌을때서로같은개수의최근접이웃점을가지는복수의클래스가존재하면동순위(领带)가발생합니다。
예:“BreakTies”,“最近”
BucketSize
- - - - - -노드에포함된데이터점의최대개수
50
(디폴트값)|양의정수값
kD -트리의리프노드에포함된데이터점의최대개수로,“BucketSize”
와함께양의정수값이쉼@ @로구분되어지정됩니다。이marketing수는NSMethod
가“kdtree”
경우에만유효합니다。
예:“BucketSize”,40岁
데이터형:单
|双
CategoricalPredictors
- - - - - -범주형예측변수를나타내는플래그
[]
|“所有”
범주형예측변수를나타내는플래그로,“CategoricalPredictors”
와함께다음중하나가쉼@ @로구분되어지정됩니다。
“所有”
-모든예측변수가범주형변수입니다。[]
-범주형변수예측변수가없습니다。
fitcknn
의예측변수데이터는모두연속형이거나모두범주형이어야합니다。
예측변수데이터가테이블(
资源描述
)내에있는경우,변수가논리형벡터,直言형벡터,문자형배열,字符串형배열또는문자형벡터로구성된셀형배열이면fitcknn
함수는그변수를범주형변수라고가정합니다。资源描述
에연속된값과범주형값이모두포함된경우,“CategoricalPredictors”
의값을지정해야합니다。그러면fitcknn
함수가모든예측변수를연속형변수로처리할지범주형변수로처리할지결정할수있습니다。예측변수데이터가행렬(
X
)이면fitcknn
함수는모든예측변수를연속형변수라고가정합니다。X
에포함된모든예측변수를범주형으로식별하려면“CategoricalPredictors”
를“所有”
로지정하십시오。
CategoricalPredictors
를“所有”
로설정할경우디폴트距离
는“汉明”
입니다。
예:“CategoricalPredictors”、“所有”
一会
- - - - - -훈련에사용할클래스의이름
分类형배열|문자형배열|字符串형배열|논리형벡터|숫자형벡터|문자형벡터로구성된셀형배열
훈련에사용할클래스의이름으로,直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열로지정됩니다。一会
는资源描述
의응답변수또는Y
와같은데이터형이어야합니다。
一会
가문자형배열경우,각소는배열의각행에대응되어야합니다。
一会
를사용하여다음을수행할수있습니다。
훈련중의클래스순서를지정합니다。
입력수차원또는출력수차원의순서를지정합니다。이순서는클래스순서와일치합니다。예를들어,
一会
를사용하여成本
차원의순서나预测
로반환되는분류점수의열순서를지정할수있습니다。훈련에사용할클래스의일부를선택합니다。예를들어,
Y
에포함된모든고유한클래스이름의집합이(“a”、“b”、“c”)
라고가정해보겠습니다。클래스“一个”
와“c”
의관측값만사용하여모델을훈련시키려면“类名”,(“a”、“c”)
를지정하십시오。
一会
의디폴트값은资源描述
의응답변수또는Y
에포함된모든고유한클래스이름의집합입니다。
예:“类名”,(“b”,“g”)
데이터형:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
成本
- - - - - -오분류비용
정사각행렬|구조체
점의오분류비용으로,“成本”
와함께다음중하나가쉼@ @로구분되어지정됩니다。
디폴트값은我~ = j
化学式경우成本(i, j) = 1
이고,我=我
化学式경우成本(i, j) = 0
입니다。
데이터형:单
|双
|结构体
浸
- - - - - -공분산행렬
X (X, omitrows)
(디폴트값)|스칼라값으로구성된양의정부호행렬
공분산행렬로,“浸”
와함께마할라노비스거리를계산할때의공분산행렬을나타내는스칼라값으로구성된양의정부호행렬이쉼표로구분되어지정됩니다。이marketing수는“距离”
가“mahalanobis”
경우에만유효합니다。
“标准化”
를“规模”
또는“浸”
와동시에지정할수없습니다。
데이터형:单
|双
距离
- - - - - -거리측정법
“cityblock”
|“chebychev”
|“相关”
|的余弦
|“欧几里得”
|“汉明”
|함수 핸들|……
거리측정법으로,“距离”
와함께유효한거리측정법이름또는함수핸들이쉼@ @로구분되어지정됩니다。허용되는거리측정법이름은선택한이웃탐색방법에따라달라집니다(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에서관측값간` ` ` `본스피어만의순위상관계수를뺀값입니다(일련의값으로처리됨)。 |
@ |
거리함수핸들입니다。 函数D2 = distfun(ZI,ZJ)距离计算%...
|
CategoricalPredictors
를“所有”
로지정한경우디폴트거리측정법은“汉明”
입니다。그렇지않은경우디폴트거리측정법은“欧几里得”
입니다。
정의는거리측정법항목을참조하십시오。
예:“距离”,“闵可夫斯基”
데이터형:字符
|字符串
|function_handle
DistanceWeight
- - - - - -거리가중치함수
“平等”
(디폴트값)|“逆”
|“squaredinverse”
|함수 핸들
거리가중치함수로,“DistanceWeight”
와함께다음` ` `에나와있는값중하나또는함수핸들이쉼` ` ` `로구분되어지정됩니다。
값 | 설명 |
---|---|
“平等” |
가중치없음 |
“逆” |
가중치:1/거리 |
“squaredinverse” |
가중치:1/거리2 |
@ |
fcn 은음이아닌거리로구성된행렬을받아음이아닌거리가중치를포함하는동일한크기의행렬을반환하는함수입니다。예를들어,“squaredinverse” 는@ (d) d。^ (2) 와동일합니다。 |
예:“DistanceWeight”、“逆”
데이터형:字符
|字符串
|function_handle
指数
- - - - - -민코프스키거리지수
2
(디폴트값)|양의스칼라값
민코프스키거리지수로,“指数”
와함께양의스칼라값이쉼@ @로구분되어지정됩니다。이marketing수는“距离”
가闵可夫斯基的
경우에만유효합니다。
예:“指数”,3
데이터형:单
|双
IncludeTies
- - - - - -동순위포함플래그
假
(디폴트값)|真正的
동순위포함플래그로,“IncludeTies”
와 함께K
번째로작은거리와거리값이같은모든이웃을预测
가포함하는지여부를나타내는논리값이쉼@ @로구분되어지정됩니다。IncludeTies
가真正的
化学式경우预测
는이러한이웃을모두포함합니다。그렇지않은경우预测
는 정확히K
개이웃을사용합니다。
예:“IncludeTies”,真的
데이터형:逻辑
NSMethod
- - - - - -최근접이웃탐색방법
“kdtree”
|“详尽”
최근접이웃탐색방법으로,“NSMethod”
와 함께“kdtree”
또는“详尽”
가쉼@ @로구분되어지정됩니다。
“kdtree”
- - - - - -kD -트리를생성하고이를사용하여최근접이웃을찾습니다。“kdtree”
는거리측정법이다음중하나경우에만유효합니다。“欧几里得”
“cityblock”
闵可夫斯基的
“chebychev”
“详尽”
-완전탐색알고리즘을사용합니다。새점xnew
의클래스를예측할때X
의모든점에서xnew
까지의거리값을계산하여최근접이웃을찾습니다。
X
가10
개이하의열을갖고X
가희소행렬이나gpuArray
가아니며거리측정법이“kdtree”
유형경우디폴트값은“kdtree”
이고그렇지않은경우“详尽”
입니다。
예:“NSMethod”、“详尽”
NumNeighbors
- - - - - -찾을최근접이웃의개수
1
(디폴트값)|양의정수값
PredictorNames
- - - - - -예측변수이름
고유한이름으로구성된字符串형배열|고유한문자형벡터로구성된셀형배열
예측변수이름으로,고유한이름으로구성형된字符串배열또는고유한문자형벡터로구성된셀형배열로지정됩니다。PredictorNames
의기능은훈련데이터를어떤방식으로제공하느냐에따라달라집니다。
X
와Y
를제공하는경우,PredictorNames
를사용하여X
의예측변수에이름을할당할수있습니다。PredictorNames
의이름의순서는X
의열순서와일치해야합니다。즉,PredictorNames {1}
은X (: 1)
의이름이고,PredictorNames {2}
는X (:, 2)
의이름이되는식입니다。또한,大小(X, 2)
와元素个数(PredictorNames)
는같아야합니다。기본적으로
PredictorNames
는{x1, x2,…}
입니다。
资源描述
을제공하는경우,PredictorNames
를사용하여훈련에사용할예측변수를선택할수있습니다。즉,fitcknn
함수는PredictorNames
의예측변수와이에대한응답변수만을훈련중에사용합니다。PredictorNames
는Tbl.Properties.VariableNames
의부분집합이어야하므로응답변수의이름은포함할수없습니다。기본적으로,
PredictorNames
는모든예측변수의이름을포함합니다。PredictorNames
와公式
중하나만사용하여훈련에사용할예측변수를지정하는것이좋습니다。
예:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)
데이터형:字符串
|细胞
之前
- - - - - -사전 확률
“经验”
(디폴트값)|“统一”
|스칼라값으로구성된벡터|구조체
각클래스의사전확률로,“之前”
와함께다음` ` `에나와있는값이쉼` ` ` `로구분되어지정됩니다。
값 | 설명 |
---|---|
“经验” |
클래스사전확률은Y 의클래스상대빈도입니다。 |
“统一” |
모든클래스사전확률은1/ k와같습니다。여기서k는클래스개수입니다。 |
숫자형벡터 | 각소는클래스사전확률입니다。Mdl .ClassNames 에따라소의순서를지정하거나一会 이름-값쌍의通讯录수를사용하여순서를지정합니다。소프트웨어는합이1 이되도록소를정규화합니다。 |
구조체 | 다음과같은두개의필드를갖는구조체
|
权重
및之前
모두에대한값을설정하면합이각클래스의사전확률값이되도록가중치가다시정규화됩니다。
예:“前”、“制服”
데이터형:字符
|字符串
|单
|双
|结构体
ResponseName
- - - - - -응답변수이름
“Y”
(디폴트값)|문자형벡터|字符串형스칼라
응답변수이름으로,문자형벡터또는字符串형스칼라로지정됩니다。
Y
를제공하는경우,ResponseName
을사용하여응답변수의이름을지정할수있습니다。ResponseVarName
또는公式
를제공하는경우에는ResponseName
을사용할수없습니다。
예:“ResponseName”、“反应”
데이터형:字符
|字符串
规模
- - - - - -거리 척도
性病(X, omitnan)
(디폴트값)|음이아닌스칼라값으로구성된벡터
거리척도로,“规模”
과 함께X
의열개수와동일한길이,의음이아닌스칼라값으로구성된벡터가쉼표로구분되어지정됩니다。X
와쿼리점간의각좌@ @의차이는规模
의대응되는소만큼스케일링됩니다。이marketing수는“距离”
가“seuclidean”
경우에만유효합니다。
“标准化”
를“规模”
또는“浸”
와동시에지정할수없습니다。
데이터형:单
|双
ScoreTransform
- - - - - -점수변환방식
“没有”
(디폴트값)|“doublelogit”
|“invlogit”
|“ismax”
|“分对数”
|함수 핸들|……
점수변환방식으로,문자형벡터,字符串형스칼라또는함수핸들로지정됩니다。
다음` ` ` `에는사용가능한문자형벡터와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)n
은X
또는资源描述
에포함된관측값개수입니다。
데이터형:双
|单
|字符
|字符串
CVPartition
- - - - - -교차검분할
[]
(디폴트값)|cvpartition
분할 객체
교차검분할로,cvpartition
으로생성된cvpartition
분할객체로지정됩니다。분할객체는교차검의유형을지정하며훈련세트와검세트의덱싱도지정합니다。
교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition
,坚持
,KFold
,Leaveout
예:cvp = cvpartition(500,'KFold',5)
500개를사용하여관측값에대한5겹교차검증에사용할임의분할을생성한다고가정하겠습니다。그런다음,“CVPartition”,本量利
를사용하여교차검된모델을지정할수있습니다。
坚持
- - - - - -홀드아웃검에사용할데이터의비율
(0,1)범위의스칼라값
홀드아웃검에사용할데이터의비율로,범위(0,1)내스칼라값으로지정됩니다。‘坚持’,p
를지정하는경우소프트웨어는다음단계를완료합니다。
데이터의
p * 100
%를무작위로선택하여검증데이터용으로남겨두고나머지데이터를사용하여모델을훈련시킵니다。교차검된모델의
训练有素的
속성에훈련된간소모델을저장합니다。
교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition
,坚持
,KFold
,Leaveout
예:“坚持”,0.1
데이터형:双
|单
KFold
- - - - - -겹의 개수
10
(디폴트값)|1보다큰양의정수값
교차검된모델에사용할겹의개수로,1보다큰양의정수값으로지정됩니다。KFold, k
를지정하는경우소프트웨어는다음단계를완료합니다。
데이터를
k
개세트로임의로분할합니다。각세트마다해당세트를검데이터로남겨두고나머지
k
- 1개의세트를사용하여모델을훈련시킵니다。교차검된모델의
训练有素的
속성에k
×1셀형벡터로k
개의훈련된간소모델을저장합니다。
교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition
,坚持
,KFold
,Leaveout
예:“KFold”,5
데이터형:单
|双
Leaveout
- - - - - -리브-원-아웃(Leave-One-Out)교차검플래그
“关闭”
(디폴트값)|“上”
리브-원-아웃교차검플래그로,“上”
또는“关闭”
로지정됩니다。“Leaveout”,“上”
을지정하는경우,n개(여기서n은모델의NumObservations
속성에지정된관측값중누락된관측값을제외한개수임)의관측값각각에대해소프트웨어가다음단계를완료합니다。
1개의관측값을검증데이터로남겨두고나머지n - 1개관측값을사용하여모델을훈련시킵니다。
교차검된모델의
训练有素的
속성에n×1셀형벡터로n개의훈련된간소모델을저장합니다。
교차검된모델을생성하려면다음4개의이름-값수중하나만지정할수있습니다。CVPartition
,坚持
,KFold
,Leaveout
예:“Leaveout”,“上”
OptimizeHyperparameters
- - - - - -최적화할모수
“没有”
(디폴트값)|“汽车”
|“所有”
|적합한모수이름으로구성된字符串형배열또는셀형배열|optimizableVariable
객체로구성된벡터
최적화할모수로,“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분류기최적화하기항목을참조하십시오。
예:“汽车”
HyperparameterOptimizationOptions
- - - - - -최적화에사용할옵션
구조체
최적화에사용할옵션으로,구조체로지정됩니다。이marketing수는OptimizeHyperparameters
이름-값通讯录수의효과를수정합니다。이구조체에포함된모든필드는선택사항입니다。
필드 이름 | 값 | 디폴트 값 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
최적화는목적함수의런타임에종속적이기때문에이름에 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
목적함수실행의최대횟수입니다。 | “bayesopt” 및“randomsearch” 의 경우30. 이고,“gridsearch” 의경우그리드전체입니다。 |
MaxTime |
시간제한으로,양의실수형스칼라로지정됩니다。시간제한은초단위이며, |
正 |
NumGridDivisions |
“gridsearch” 의경우,각차원의값개수입니다。이값은각차원에대한값의개수를제공하는양의정수로구성된벡터또는모든차원에적용되는스칼라일수있습니다。이필드는범주형변수의경우무시됩니다。 |
10 |
ShowPlots |
플롯@ @시여부를나타내는논리값입니다。真正的 경우,이필드는반복횟수에대해최선의관측된목적함수값을플로팅합니다。베이즈최적화를사용하는경우(优化器 가“bayesopt” 임),이필드는최선의추정된목적함수값도플로팅합니다。최선의관측된목적함수값과최선의추정된목적함수값은각각반복@ @시의BestSoFar(观察) 열과BestSoFar (estim)。 열의값에대응됩니다。Mdl。HyperparameterOptimizationResults 의 속성ObjectiveMinimumTrace 및EstimatedObjectiveMinimumTrace 에서이러한값을확할수있습니다。문제에베이즈최적화를위한하나또는두개의최적화모수가있는경우,ShowPlots 는이모수에대해서도목적함수의모델을플로팅합니다。 |
真正的 |
SaveIntermediateResults |
优化器 가“bayesopt” 경우결과를저장할지여부를나타내는논리값입니다。真正的 경우,이필드는각반복마다“BayesoptResults” 라는이름의작업공간변수를덮어씁니다。변수는BayesianOptimization 객체입니다。 |
假 |
详细的 |
명령줄에通讯录시되는내용:
자세한내용은 |
1 |
UseParallel |
베이즈최적화를병렬로실행할지여부를나타내는논리값으로,并行计算工具箱™가필요합니다。병렬시간재현이불가능하기때문에,병렬베이즈최적화에서반드시재현가능한결과를산출하지는않습니다。자세한내용은并行贝叶斯优化항목을참조하십시오。 | 假 |
重新分区 |
매반복시교차검을다시분할할지여부를나타내는논리값입니다。이필드의값이
|
假 |
다음과같은3개옵션중하나만사용합니다。 | ||
CVPartition |
cvpartition 으로생성되는cvpartition 객체 |
교차검필드를지정하지않을경우“Kfold”,5 |
坚持 |
홀드아웃비율을나타내는범위(0,1) 내 스칼라 |
|
Kfold |
1보다큰정수 |
예:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
데이터형:结构体
출력marketing수
Mdl
—훈련된k—최근접이웃분류모델
ClassificationKNN
모델객체|ClassificationPartitionedModel
교차검된모델객체
훈련된k-최근접이웃분류모델로,ClassificationKNN
모델객체또는ClassificationPartitionedModel
교차검된모델객체로반환됩니다。
이름-값쌍의通讯录수KFold
,坚持
,, CrossVal
또는CVPartition
중어느하나라도설정하면,Mdl
은ClassificationPartitionedModel
교차검된모델객체입니다。그렇지않은경우Mdl
은ClassificationKNN
모델객체입니다。
Mdl
의속성을참조하려면점@ @기법을사용하십시오。예를들어,Mdl。D我stance
를입력하여명령창에거리측정법을@ @시할수있습니다。
세부 정보
팁
모델을훈련시킨후에는새데이터에대한레이블을예측하는C / c++코드를생성할수있습니다。C/ c++코드를생성하려면MATLAB编码器™가필합니다。자세한내용은代码生成简介항목을참조하십시오。
알고리즘
nan
또는<定义>
는누락관측값을나타냅니다。다음은데이터세트또는가중치가누락관측값을포함하는경우fitcknn
의동작에대한설명입니다。Y
의값또는가중치가누락된경우fitcknn
은Y
와가중치로부터그러한값을제거하고,데이터로부터X
의대응하는행을제거합니다。합이1
이되도록가중치를다시정규화합니다。예측변수를指导书준화하도록지정하거나(
“标准化”,1
) @ @준화된유클리드거리를스케일없이지정하면(“距离”、“seuclidean”
),fitcknn
은평균과@ @준편차를계산하기전에개별예측변수에서누락관측값을제거합니다。다시말해서,각예측변수에대해“omitnan”
옵션을사용하여的意思是
과性病
를구현합니다。공분산행렬없이마할라노비스거리(
“距离”、“mahalanbois”
)를지정할경우fitcknn
은하나이상의누락값을포함하는X
의행을제거합니다。다시말해서,예측변수행렬X
에 대해“omitrows”
옵션을사용하여浸
를구현합니다。
“标准化”,真的
를설정했다고가정하겠습니다。规模
을지정하고之前
또는权重
를지정하면관측된거리를가중@ @준편차만큼스케일링합니다。浸
를지정하고之前
또는权重
를지정하면거리에가중공분산행렬을적용합니다。다시말해다음과같습니다。
대안
fitcknn
은다중클래스KNN분류기를훈련시킬수있지만,fitcecoc
를사용하여다중클래스학습문제를일련의KNN이진학습기로축소할수있습니다。
확장 기능
자동병렬지원
并行计算工具箱™를사용해자동병렬계산을실행하여코드실행속도를높일수있습니다。
병렬하이퍼파라미터최적화를수행하려면fitcknn
함수에대한호출에“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
이름-값通讯录수를사용하십시오。
병렬하이퍼파라미터최적화에대한자세한내용은并行贝叶斯优化항목을참조하십시오。
병렬연산에대한일반적내용은자동병렬연산을지원하는matlab함수실행하기(并行计算工具箱)항목을참조하십시오。
Gpu배열
并行计算工具箱™를사용해GPU(그래픽스처리장치)에서실행하여코드실행속도를높일수있습니다。
사용법관련참고및제한사항:
기본적으로
fitcknn
함수는gpuArray
입력수에대해최근접이웃완전탐색알고리즘을사용합니다。이름-값通讯录수
“NSMethod”
를“kdtree”
로지정할수없습니다。이름-값通讯录수
“距离”
를함수핸들로지정할수없습니다。이름-값通讯录수
“IncludeTies”
를真正的
로지정할수없습니다。fitcknn
함수는다음과같은경우에만gpu배열입력수로피팅된분류모델을반환합니다。입력marketing수
X
가gpuArray
입니다。입력marketing수
资源描述
이gpuArray
소를포함합니다。
자세한내용은Gpu에서matlab함수실행하기(并行计算工具箱)항목을참조하십시오。
버전 내역
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。