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

溫馨提示×

溫馨提示×

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

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

分類算法——K-鄰近

發布時間:2020-03-04 19:14:15 來源:網絡 閱讀:587 作者:janwool 欄目:開發技術

   K-鄰近分類方法通過計算待分類目標和訓練樣例之間的距離,選取與待分類目標距離最近的K個訓練樣例,根據K個選取樣例中占多數的類別來確定待分類樣例。距離類型有很多,大致有歐式距離,曼哈頓距離,切比雪夫距離,閩科夫斯基距離,標準化歐式距離,馬氏距離,夾角余弦,漢明距離,相關系數,信息熵等。 

  KNN算法的具體步驟:

1、計算待分類目標與每個訓練樣例之間的距離dist;

2、對dist進行排序,選擇前K個訓練樣例作為K-最鄰近樣例;

3、統計K個訓練樣例中每個類別出現的頻次;

4、選擇出現頻次最大的類別作為待分類目標的類別。

  依據上述流程,給出實現代碼:

from numpy import *
import operator
def knn(x,transet,labels,k,type = 0):
    '''
    k-近鄰算法
    :param x:待分類特征
    :param transet: 已知特征
    :param labels: 特征標簽
    :param k:
    :param type:
        距離類型:0:歐式,1:曼哈頓,2:切比雪夫,3:閩科夫斯基,4:標準化歐式,5:馬氏,6:夾角余弦
                  7:漢明距離,8:杰卡德,9:相關系數,11:信息熵
    :return:
    '''
    distances = zeros_like(labels)
    if type == 0:
        tranSize = shape(transet)
        diffMat = tile(x,(tranSize[0],1)) - transet
        distances = ((diffMat**2).sum(axis=1))**0.5
    #TODO:根據不同的類型計算距離
    sortedIndex = distances.argsort()
    classCount = {}
    for i in labels[sortedIndex[:k]]:
        classCount[i] = classCount.get(i,0) + 1
    sortedClassCount = sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)
    return sortedClassCount;

  KNN算法的優點:理論簡單,實現簡單。

  KNN算法的缺點:1)對K值的選取依賴大,不同的K值選取可能產生不同的結果。可以通過實驗選取分類誤差最小的K值。2)由于需要計算特征的距離,所以需要特征進行量化和標準化。


向AI問一下細節

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

AI

长宁区| 南和县| 铜梁县| 玛多县| 南川市| 永福县| 漳平市| 阿拉善左旗| 天水市| 汕头市| 楚雄市| 灵武市| 平顺县| 溧水县| 上高县| 禹城市| 珠海市| 岳西县| 镇平县| 安庆市| 松滋市| 高青县| 盐城市| 朝阳县| 嘉义县| 江永县| 江阴市| 都兰县| 封丘县| 垣曲县| 西峡县| 和静县| 永安市| 乌鲁木齐市| 万州区| 晋江市| 兴仁县| 泽州县| 宿州市| 隆昌县| 贵州省|