首頁>Club>
7
回覆列表
  • 1 # 早安多美好

    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.

  • 中秋節和大豐收的關聯?
  • 輕乳酪芝士蛋糕的做法8寸?