最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python代碼實(shí)現(xiàn)KNN算法

 更新時(shí)間:2017年12月20日 11:19:34   作者:Troublemaker201407  
這篇文章主要為大家詳細(xì)介紹了Python代碼實(shí)現(xiàn)KNN算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

kNN算法是k-近鄰算法的簡(jiǎn)稱(chēng),主要用來(lái)進(jìn)行分類(lèi)實(shí)踐,主要思路如下:

1.存在一個(gè)訓(xùn)練數(shù)據(jù)集,每個(gè)數(shù)據(jù)都有對(duì)應(yīng)的標(biāo)簽,也就是說(shuō),我們知道樣本集中每一數(shù)據(jù)和他對(duì)應(yīng)的類(lèi)別。
2.當(dāng)輸入一個(gè)新數(shù)據(jù)進(jìn)行類(lèi)別或標(biāo)簽判定時(shí),將新數(shù)據(jù)的每個(gè)特征值與訓(xùn)練數(shù)據(jù)集中的每個(gè)數(shù)據(jù)進(jìn)行比較,計(jì)算其到訓(xùn)練數(shù)據(jù)集中每個(gè)點(diǎn)的距離(下列代碼實(shí)現(xiàn)使用的是歐式距離)。
3.然后提取k個(gè)與新數(shù)據(jù)最接近的訓(xùn)練數(shù)據(jù)點(diǎn)所對(duì)應(yīng)的標(biāo)簽或類(lèi)別。
4.出現(xiàn)次數(shù)最多的標(biāo)簽或類(lèi)別,記為當(dāng)前預(yù)測(cè)新數(shù)據(jù)的標(biāo)簽或類(lèi)別。

歐式距離公式為:

distance= sqrt((xA0-XB0)^2+(xA1-XB1)^2+...+(xAn-XBn)^2)(若數(shù)據(jù)有n個(gè)特征項(xiàng))

以下為代碼實(shí)現(xiàn):

#! /usr/bin/python 
#coding=utf-8 
from numpy import * 
import operator 
def createDataSet(): 
  group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])#訓(xùn)練數(shù)據(jù)樣本集合 
  labels = ['A','A','B','B']#訓(xùn)練數(shù)據(jù)對(duì)應(yīng)的類(lèi)別 
  return group,labels 
''''' 
inX:用于分類(lèi)的輸入向量 
dataSet:訓(xùn)練樣本集合 
labels:標(biāo)簽向量 
k:k-近鄰算法中的k 
''' 
def classify0(inX,dataSet,labels,k): 
  dataSetSize = dataSet.shape[0] #獲取數(shù)組的維度,也就是獲取訓(xùn)練樣本的行數(shù)(樣本數(shù)),若獲取列數(shù),則為shape[1] 
  diffMat = tile(inX,(dataSetSize,1)) - dataSet # tile 表示inX在重復(fù)dataSetSize行,重復(fù)1列。為輸入向量與各個(gè)樣本求取歐式距離做準(zhǔn)備。 
  sqDiddMat = diffMat**2 #diffMat是輸入向量與我們訓(xùn)練樣本每個(gè)點(diǎn)相減得到的,**2表示值的結(jié)果取平方。 
  sqDistances = sqDiddMat.sum(axis=1)#默認(rèn)為axis=0,axis=1以后就是將一個(gè)矩陣的每一行向量相加 
  distances = sqDistances**0.5 #對(duì)結(jié)果進(jìn)行開(kāi)平方,得到輸入向量與每個(gè)訓(xùn)練樣本中點(diǎn)的歐式距離 
  sorteDistIndicies = distances.argsort()#將距離結(jié)果按照從小到大排序獲得索引值 
  classcount={} #這是一個(gè)字典,key為類(lèi)別,value為距離最小的前k個(gè)樣本點(diǎn)里面為該類(lèi)別的個(gè)數(shù)。 
  for i in range(k): 
    voteIlabel = labels[sorteDistIndicies[i]]#獲取距離最小的前k個(gè)樣本點(diǎn)對(duì)應(yīng)的label值 
    classcount[voteIlabel] = classcount.get(voteIlabel,0)+1 #如果之前的樣本點(diǎn)label值與與現(xiàn)在的相同,則累計(jì)加1,否則,此次加1 
  sorteClassCount = sorted(classcount.iteritems(),key=operator.itemgetter(1),reverse=True) #針對(duì)calsscount獲取對(duì)象的第1個(gè)域的值進(jìn)行降序排序。也就是說(shuō)根據(jù)類(lèi)別的個(gè)數(shù)從大到小排序。 
  return sorteClassCount[0][0] #返回排序的字典的第一個(gè)元素的key,即分類(lèi)后的類(lèi)別 
 
createDataSet() 
print classify0([0.9,0.9],group,labels,3) 

結(jié)果為:A 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 編寫(xiě)Python爬蟲(chóng)抓取豆瓣電影TOP100及用戶(hù)頭像的方法

    編寫(xiě)Python爬蟲(chóng)抓取豆瓣電影TOP100及用戶(hù)頭像的方法

    這篇文章主要介紹了編寫(xiě)Python爬蟲(chóng)抓取豆瓣電影TOP100及用戶(hù)頭像的方法,用到了Python的urllib和urllib2模塊,需要的朋友可以參考下
    2016-01-01
  • 初學(xué)Python函數(shù)的筆記整理

    初學(xué)Python函數(shù)的筆記整理

    這篇文章主要介紹了初學(xué)Python函數(shù)的整理筆記,包括一些基礎(chǔ)的參數(shù)使用方法以及匿名函數(shù)等特性的使用,需要的朋友可以參考下
    2015-04-04
  • 一文讀懂Python版本管理工具Pyenv使用

    一文讀懂Python版本管理工具Pyenv使用

    在開(kāi)發(fā)Python程序的時(shí)候,有時(shí)候可能需要在不同版本的Python上進(jìn)行測(cè)試。pyenv就是這么一個(gè)管理多版本Python的工具,今天給大家分享Python版本管理工具Pyenv使用,感興趣的朋友一起看看吧
    2021-06-06
  • 如何使用Python提取Chrome瀏覽器保存的密碼

    如何使用Python提取Chrome瀏覽器保存的密碼

    今天小編教大家怎么用Python提取Chrome瀏覽器保存的密碼,在這需要導(dǎo)入一些必要模塊定義一些有用的函數(shù)來(lái)幫助我們?cè)谥骱瘮?shù)中調(diào)用,具體實(shí)例代碼跟隨小編一起學(xué)習(xí)下吧
    2021-06-06
  • 深入理解Javascript中的this關(guān)鍵字

    深入理解Javascript中的this關(guān)鍵字

    這篇文章主要介紹了深入理解Javascript中的this關(guān)鍵字,本文講解了方法調(diào)用模式、函數(shù)調(diào)用模式、構(gòu)造器調(diào)用模式、apply調(diào)用模式 中this的不同之處,需要的朋友可以參考下
    2015-03-03
  • 使用Python進(jìn)行二進(jìn)制文件讀寫(xiě)的簡(jiǎn)單方法(推薦)

    使用Python進(jìn)行二進(jìn)制文件讀寫(xiě)的簡(jiǎn)單方法(推薦)

    下面小編就為大家?guī)?lái)一篇使用Python進(jìn)行二進(jìn)制文件讀寫(xiě)的簡(jiǎn)單方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • 20行Python代碼實(shí)現(xiàn)視頻字符化功能

    20行Python代碼實(shí)現(xiàn)視頻字符化功能

    這篇文章主要介紹了20行Python代碼實(shí)現(xiàn)視頻字符化功能,本文通過(guò)實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python異步編程中asyncio.gather的并發(fā)控制詳解

    Python異步編程中asyncio.gather的并發(fā)控制詳解

    在Python異步編程生態(tài)中,asyncio.gather是并發(fā)任務(wù)調(diào)度的核心工具,本文將通過(guò)實(shí)際場(chǎng)景和代碼示例,展示如何結(jié)合信號(hào)量機(jī)制實(shí)現(xiàn)精準(zhǔn)并發(fā)控制,希望對(duì)大家有所幫助
    2025-03-03
  • Python3.遍歷某文件夾提取特定文件名的實(shí)例

    Python3.遍歷某文件夾提取特定文件名的實(shí)例

    下面小編就為大家分享一篇Python3.遍歷某文件夾提取特定文件名的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python循環(huán)之彩色圓環(huán)實(shí)現(xiàn)示例

    python循環(huán)之彩色圓環(huán)實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了python循環(huán)之彩色圓環(huán)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論

潜江市| 黎城县| 禹城市| 嘉定区| 布尔津县| 江华| 尚志市| 资溪县| 日照市| 会理县| 镇雄县| 天津市| 四平市| 嵊州市| 清徐县| 哈巴河县| 出国| 吴堡县| 蓝田县| 临武县| 杭州市| 响水县| 高清| 临桂县| 晋江市| 论坛| 通山县| 连山| 罗山县| 张家川| 巴楚县| 靖宇县| 高州市| 定西市| 瓦房店市| 沙坪坝区| 清徐县| 高安市| 宜章县| 平武县| 理塘县|