Input data, specified as a numeric matrix. Rows of X correspond to observations, and columns correspond to variables.
Y — Query points
numeric matrix
Query points, specified as a numeric matrix. Rows of Y correspond to observations, and columns correspond to variables. Y must have the same number of columns as X.
MATLAB knnsearch語法
Idx = knnsearch(X,Y)
Idx = knnsearch(X,Y,Name,Value)
[Idx,D] = knnsearch(___)
說明
Idx = knnsearch(X,Y) 為Y中的每個查詢點在X中找到最近的鄰居,並在列向量Idx中返回最近的鄰居的索引。 Idx與Y具有相同的行數。X為訓練點集,Y為目標點集。
Idx = knnsearch(X,Y,Name,Value) 返回具有使用一個或多個名稱-值對引數指定的其他選項的Idx。 例如,您可以指定要搜尋的最近鄰居的數量以及搜尋中使用的距離度量。
[Idx,D] = knnsearch(___) 另外,使用前面語法中的任何輸入引數返回矩陣D。 D包含Y中每個觀測值與X中相應最接近觀測值之間的距離。
例子
根據年齡和體重,在醫院資料集中找到與Y型患者最相似的患者。
load hospital;
X = [hospital.Age hospital.Weight];
Y = [20 162; 30 169; 40 168; 50 170; 60 171]; % New patients
1
2
3
1
2
3
在X和Y之間執行knnsearch查詢最近鄰居的索引。
Idx = knnsearch(X,Y);
1
1
在X中找到年齡和體重最接近Y的患者。
X(Idx,:)
ans = 5×2
25 171
25 171
39 164
49 170
50 172
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
使用不同的距離量度查詢k最近鄰:
首先使用Minkowski距離度量,然後使用Chebychev距離度量,找到X中與Y的每個點最近的10個鄰居。
load fisheriris
X = meas(:,3:4); % Measurements of original flowers
Y = [5 1.45;6 2;2.75 .75]; % New flower data
1
2
3
1
2
3
使用Minkowski和Chebychev距離度量在X和查詢點Y之間執行knnsearch。
[mIdx,mD] = knnsearch(X,Y,'K',10,'Distance','minkowski','P',5);
[cIdx,cD] = knnsearch(X,Y,'K',10,'Distance','chebychev');
1
2
1
2
視覺化兩個最近鄰居搜尋的結果。 繪製訓練資料。 用標記X繪製查詢點。使用圓圈表示Minkowski最近的鄰居。 使用五角星表示Chebychev最近的鄰居。
gscatter(X(:,1),X(:,2),species)
line(Y(:,1),Y(:,2),'Marker','x','Color','k',...
'Markersize',10,'Linewidth',2,'Linestyle','none')
line(X(mIdx,1),X(mIdx,2),'Color',[.5 .5 .5],'Marker','o',...
'Linestyle','none','Markersize',10)
line(X(cIdx,1),X(cIdx,2),'Color',[.5 .5 .5],'Marker','p',...
'Linestyle','none','Markersize',10)
legend('setosa','versicolor','virginica','query point',...
'minkowski','chebychev','Location','best')
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
輸入引數
X — Input data
numeric matrix
Input data, specified as a numeric matrix. Rows of X correspond to observations, and columns correspond to variables.
Y — Query points
numeric matrix
Query points, specified as a numeric matrix. Rows of Y correspond to observations, and columns correspond to variables. Y must have the same number of columns as X.