機(jī)器學(xué)習(xí)之K近鄰算法(KNN)

苛求真理的欲望讓我想要了解算法的本質(zhì)民泵,于是我開始了機(jī)械學(xué)習(xí)的算法之旅

from numpy import *  
import operator  
from collections import Counter

#KNN需要測(cè)試集乓旗,訓(xùn)練集,標(biāo)簽和k值
#測(cè)試集:你需要測(cè)試的數(shù)據(jù)
#訓(xùn)練集:給定的標(biāo)準(zhǔn)數(shù)據(jù)
#標(biāo)簽:每個(gè)標(biāo)準(zhǔn)數(shù)據(jù)的類別
#k值 :測(cè)試集和訓(xùn)練集相比較下前K個(gè)最相識(shí)的訓(xùn)練集的值


# 用KNN算法找出測(cè)試集的類別
#1,求出已知類別訓(xùn)練集中的點(diǎn)與當(dāng)前點(diǎn)之間的距離
#2羔挡,對(duì)所求距離以此遞增排序
#3,選取與當(dāng)前點(diǎn)距離最小的k個(gè)點(diǎn)
#4,確定前k個(gè)點(diǎn)所在類別的出現(xiàn)頻率
#5匹颤,返回前k個(gè)點(diǎn)出現(xiàn)頻率最高的類別作為當(dāng)前點(diǎn)的預(yù)測(cè)分類

def kNNClassify(testSet, trainSet, labels, k=3):  
    rows = trainSet.shape[0] #shape[0]得到訓(xùn)練集的行數(shù)

    
    #求距離
    distSet = tile(testSet, (rows, 1)) - trainSet #得到距離矩陣
    distance = sum(distSet ** 2 , axis = 1) ** 0.5 # 求出距離

    #排序     
    #得到排序后數(shù)據(jù)原位置的下標(biāo),排序后位置是不變的 
    #從而使得排序后的結(jié)果和trainSet的標(biāo)簽一一對(duì)應(yīng)
    #然后就可以通過排序結(jié)果反向得到標(biāo)簽值
    sortedDistIndices = argsort(distance) 
    
    
    #選取k個(gè)最小值 
    classCount = Counter()# 保存類別
    
    #記錄k值內(nèi)相同標(biāo)簽出現(xiàn)的次數(shù)
    [classCount.update([labels[sortedDistIndices[i]]]) for i in xrange(k)]
    
    ## 得到出現(xiàn)次數(shù)最多的標(biāo)簽類別 
    return sorted(classCount.iteritems(), key=lambda d:d[1], reverse = True )[0][0]


if __name__ == '__main__':
    
    #然后我們?cè)诿钚兄袦y(cè)試
    trainSet = array([
            [1.0, 0.9], 
            [1.0, 1.0], 
            [0.1, 0.2], 
            [0.0, 0.1]])  
    labels = ['A', 'A', 'B','B'] # 4個(gè)標(biāo)簽,2種類別

    testSet = array([1.2, 1.0])  
    
    label = kNNClassify(testSet, trainSet, labels, k=3)  
    print "輸入:", testSet, "分類: ", label  

    testSet = array([0.1, 0.3])  
    label = kNNClassify(testSet, trainSet, labels, k=3) 
    print "輸入:", testSet, "分類: ", label    
輸入: [ 1.2  1. ] 分類:  A
輸入: [ 0.1  0.3] 分類:  B
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末托猩,一起剝皮案震驚了整個(gè)濱河市印蓖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌京腥,老刑警劉巖赦肃,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡他宛,警方通過查閱死者的電腦和手機(jī)船侧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厅各,“玉大人镜撩,你說我怎么就攤上這事《犹粒” “怎么了琐鲁?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)人灼。 經(jīng)常有香客問我围段,道長(zhǎng),這世上最難降的妖魔是什么投放? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任奈泪,我火速辦了婚禮,結(jié)果婚禮上灸芳,老公的妹妹穿的比我還像新娘涝桅。我一直安慰自己,他們只是感情好烙样,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布冯遂。 她就那樣靜靜地躺著,像睡著了一般谒获。 火紅的嫁衣襯著肌膚如雪蛤肌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天批狱,我揣著相機(jī)與錄音裸准,去河邊找鬼。 笑死赔硫,一個(gè)胖子當(dāng)著我的面吹牛垢乙,可吹牛的內(nèi)容都是我干的帘不。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼啰扛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼历涝!你這毒婦竟也來了攻旦?” 一聲冷哼從身側(cè)響起画株,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤钝腺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后小槐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拇派,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荷辕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年凿跳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了件豌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡控嗜,死狀恐怖茧彤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疆栏,我是刑警寧澤曾掂,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站壁顶,受9級(jí)特大地震影響珠洗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜若专,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一许蓖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧调衰,春花似錦膊爪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至趋箩,卻和暖如春赃额,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叫确。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工爬早, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人启妹。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓筛严,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親饶米。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桨啃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 很偶然的機(jī)會(huì),在網(wǎng)上看到了說是有一個(gè)叫做簡(jiǎn)書的網(wǎng)站檬输,可以在這個(gè)寫寫東西照瘾,我就過來注冊(cè)了,現(xiàn)在也并不是很了解這里...
    你知道我是喵嗎閱讀 200評(píng)論 0 0
  • 這幾天把《里約大冒險(xiǎn)》第一丧慈、二部看完了析命,有種很久沒看過動(dòng)畫片的趕腳了主卫。兒時(shí)記憶特別喜歡在電視上看《貓和老鼠》、《大...
    楊穎__指數(shù)成長(zhǎng)閱讀 340評(píng)論 0 0
  • 君不見長(zhǎng)門咫尺閉阿嬌鹃愤,人生失意無南北簇搅。 嬌,柔嫩软吐,美好可愛瘩将,也為意志脆弱,不能吃苦受累凹耙;過分愛護(hù)姿现,嬌慣驕縱。 只這...
    請(qǐng)動(dòng)心閱讀 930評(píng)論 3 3
  • 很多夫婦都不相信對(duì)方 我問妻子:“你對(duì)丈夫最大的期待是什么肖抱?”然后我又問丈夫备典,請(qǐng)他猜妻子對(duì)他最大的期待。這時(shí)我聽到...
    但雨澤閱讀 973評(píng)論 0 0