中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

算法1-KNN算法及其matlab實現是怎樣的

發布時間:2021-11-15 15:31:11 來源:億速云 閱讀:209 作者:柒染 欄目:大數據

算法1-KNN算法及其matlab實現是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、算法概述

1、kNN算法又稱為k近鄰分類(k-nearest neighbor classification)算法。kNN算法則是從訓練集中找到和新數據最接近的k條記錄,然后根據他們的主要分類來決定新數據的類別。該算法涉及3個主要因素:訓練集、距離或相似的衡量、k的大小。


計算步驟如下:

1)算距離:給定測試對象,計算它與訓練集中的每個對象的距離

2)找鄰居:圈定距離最近的k個訓練對象,作為測試對象的近鄰

3)做分類:根據這k個近鄰歸屬的主要類別,來對測試對象分類

2、距離或相似度的衡量

什么是合適的距離衡量?距離越近應該意味著這兩個點屬于一個分類的可能性越大。距離衡量包括歐式距離、夾角余弦等。

3、類別的判定

投票決定:少數服從多數,近鄰中哪個類別的點最多就分為該類。

加權投票法:根據距離的遠近,對近鄰的投票進行加權,距離越近則權重越大(權重為距離平方的倒數)


clear;clc;K=3;trainData = [1.0,2.0;    1.2,0.1;    0.1,1.4;    0.3,3.5];trainClass = [1,1,2,2];testData = [0.5,2.3];
[N,M]=size(trainData);%計算訓練數據集與測試數據之間的歐氏距離distdist=zeros(N,1);for i=1:N    dist(i,:)=norm(trainData(i,:)-testData);end%將dist從小到大進行排序[Y,I]=sort(dist,1);%將訓練數據對應的類別與訓練數據排序結果對應trainClass=trainClass(I);%確定前K個點所在類別的出現頻率classNum=length(unique(trainClass));%取集合中的單值元素的個數labels=zeros(1,classNum);for i=1:K    j=trainClass(i);    labels(j)=labels(j)+1;end%返回前K個點中出現頻率最高的類別作為測試數據的預測分類[~,idx]=max(labels);fprintf('該測試數據屬于類 %d\n',idx);
%% f方法二更簡單labels=trainClass;idx=mode(labels(1:K));%mode函數求眾數fprintf('該測試數據屬于類 %d  ',idx);

看完上述內容,你們掌握算法1-KNN算法及其matlab實現是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高尔夫| 都安| 盱眙县| 遂溪县| 醴陵市| 舞钢市| 南昌县| 成安县| 玉屏| 台州市| 香河县| 雷波县| 泰顺县| 都江堰市| 通榆县| 蓝田县| 蛟河市| 孝昌县| 花垣县| 贵州省| 太白县| 宝鸡市| 克什克腾旗| 南召县| 遂川县| 应城市| 来安县| 成安县| 沙田区| 营山县| 肥东县| 新源县| 通城县| 鄂托克前旗| 论坛| 衡阳市| 望都县| 开封县| 迁西县| 莱芜市| 荔波县|