亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python實現的knn算法示例

2020-02-15 21:51:43
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現的knn算法。分享給大家供大家參考,具體如下:

代碼參考機器學習實戰那本書:

機器學習實戰 (Peter Harrington著) 中文版

機器學習實戰 (Peter Harrington著) 英文原版[附源代碼]

有興趣你們可以去了解下

具體代碼:

# -*- coding:utf-8 -*-#! python2'''''@author:zhoumeixucreatedate:2015年8月27日'''#np.zeros((4,2))#np.zeros(8).reshape(4,2)#x=np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) np.zeros_like(x)# 最值和排序:最值有np.max(),np.min() 他們都有axis和out(輸出)參數,# 而通過np.argmax(), np.argmin()可以得到取得最大或最小值時的 下標。# 排序通過np.sort(), 而np.argsort()得到的是排序后的數據原來位置的下標# 簡單實現knn算法的基本思路import numpy as npimport operator #運算符操作包from _ctypes import Arrayfrom statsmodels.sandbox.regression.kernridgeregress_class import plt_closealldef createDataSet(): group=np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels=['A','A','B','B'] return group ,labelsgroup,labels=createDataSet()def classify0(inx,dataSet,labels,k): dataSetSize=dataSet.shape[0] diffMat=np.tile(inx,(dataSetSize,1))-dataSet sqDiffMat=diffMat**2 sqDistances=sqDiffMat.sum(axis=1) distances=sqDistances**0.5   #計算距離 python中會自動廣播的形式 sortedDistIndicies=distances.argsort() #排序,得到原來數據的在原來所在的下標 classCount={} for i in range(k):  voteIlabel=labels[sortedDistIndicies[i]] # 計算距離最近的值所在label標簽  classCount[voteIlabel]=classCount.get(voteIlabel,0)+1 # 計算距離最近的值所在label標簽,對前k哥最近數據進行累加 sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True) #排序得到距離k個最近的數所在的標簽 return sortedClassCount[0][0]if __name__=='__main__': print(classify0([0,0],group,labels,4))# 利用knn算法改進約會網站的配對效果def file2matrix(filename): fr=open(filename) arrayOLines=fr.readlines() numberOfLines=len(arrayOLines) returnMat=np.zeros((numberOfLines,3)) classLabelVector=[] index=0 for line in arrayOLines:  line=line.strip()  listFromLine=line.split('/t')  returnMat[index,:]=listFromLine[0:3]  classLabelVector.append(int(listFromLine[-1]))  index+=1 return returnMat ,classLabelVector #生成訓練數據的array和目標arraypath=u'D://Users//zhoumeixu204//Desktop//python語言機器學習//機器學習實戰代碼 python//機器學習實戰代碼//machinelearninginaction//Ch02//'datingDataMat,datingLabels=file2matrix(path+'datingTestSet2.txt')import matplotlibimport matplotlib.pyplot as pltfig=plt.figure()ax=fig.add_subplot(111)ax.scatter(datingDataMat[:,1],datingDataMat[:,2])plt.show()ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*np.array(datingLabels),15*np.array(datingDataMat[:,2]))plt.show()  #生成訓練數據的array和目標arraydef autoNorm(dataset): minVals=dataset.min(0) maxVals=dataset.max(0) ranges=maxVals-minVals normeDataSet=np.zeros(np.shape(dataset)) m=dataset.shape[0] normDataSet=dataset-np.tile(minVals,(m,1)) normDataSet=normDataSet/np.tile(ranges,(m,1)) return normDataSet ,ranges,minValsnormMat,ranges,minVals=autoNorm(datingDataMat)def datingClassTest(): hoRatio=0.1 datingDataMat,datingLabels=file2matrix(path+'datingTestSet2.txt') normMat,ranges,minVals=autoNorm(datingDataMat) m=normMat.shape[0] numTestVecs=int(m*hoRatio) errorCount=0.0 for i in range(numTestVecs):  classifierResult=classify0(normMat[i,:], normMat[numTestVecs:m,:], datingLabels[numTestVecs:m],3)  print "the classifier came back with :%d,the real answer is :%d"/     %(classifierResult,datingLabels[i])  if classifierResult!=datingLabels[i]:   errorCount+=1.0 print "the total error rare is :%f"%(errorCount/float(numTestVecs)) #利用knn算法測試錯誤率if __name__=='__main__': datingClassTest()#利用構建好的模型進行預測def classifyPerson(): resultList=['not at all','in same doses','in large d oses'] percentTats=float(raw_input("percentage if time spent playin cideo games:")) ffMiles=float(raw_input("frequnet fliter miles earned per year:")) iceCream=float(raw_input("liters of ice cream consumed per year:")) datingDataMat,datingLabels=file2matrix(path+'datingTestSet2.txt') normMat,ranges,minVals=autoNorm(datingDataMat) inArr=np.array([ffMiles,percentTats,iceCream]) classifierResult=classify0((inArr-minVals)/ranges,normMat,datingLabels,3) print("you will probably like the person:",resultList[classifierResult-1])if __name__!='__main__': classifyPerson()#利用knn算法進行手寫識別系統驗證path=u'D://Users//zhoumeixu204//Desktop//python語言機器學習//機器學習實戰代碼 python//機器學習實戰代碼//machinelearninginaction//Ch02//'def img2vector(filename): returnVect=np.zeros((1,1024)) fr=open(filename) for i in range(32):  lineStr=fr.readline()  for j in range(32):   returnVect[0,32*i+j]=int(lineStr[j]) return returnVecttestVector=img2vector(path+'testDigits//0_13.txt')print(testVector[0,0:31])import osdef handwritingClassTest(): hwLabels=[] trainingFileList=os.listdir(path+'trainingDigits') m=len(trainingFileList) trainingMat=np.zeros((m,1024)) for i in range(m):  fileNameStr=trainingFileList[i]  fileStr=fileNameStr.split('.')[0]  classNumStr=int(fileStr.split('_')[0])  hwLabels.append(classNumStr)  trainingMat[i,:]=img2vector(path+'trainingDigits//'+fileNameStr) testFileList=os.listdir(path+'testDigits') errorCount=0.0 mTest=len(testFileList) for j in range(mTest):  fileNameStr=testFileList[j]  fileStr=fileNameStr.split('.')[0]  classNumStr=int(fileNameStr.split('_')[0])  classNumStr=int(fileStr.split('_')[0])  vectorUnderTest=img2vector(path+'testDigits//'+fileNameStr)  classifierResult=classify0(vectorUnderTest,trainingMat,hwLabels,3)  print("the classifier canme back with:%d,the real answer is :%d"%(classifierResult,classNumStr))  if classifierResult!=classNumStr:   errorCount+=1.0 print("/nthe total number of errors is :%d"%errorCount) print("/n the total error rate is :%f"%(errorCount/float(mTest)))if __name__=='__main__': handwritingClassTest()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91性高湖久久久久久久久_久久99| 在线播放日韩欧美| 国产精品视频1区| 成人免费在线网址| 午夜精品一区二区三区视频免费看| 国产一区二区三区网站| 91精品国产高清久久久久久| 欧美高清视频在线播放| 精品视频中文字幕| 久久青草福利网站| 国产999精品久久久影片官网| 久久综合电影一区| 亚洲欧洲免费视频| 18性欧美xxxⅹ性满足| 国产丝袜一区二区三区免费视频| 琪琪亚洲精品午夜在线| 色老头一区二区三区| 成人xvideos免费视频| 日韩美女写真福利在线观看| 国产日韩欧美自拍| 日韩欧美国产激情| 黑人与娇小精品av专区| 成人免费视频在线观看超级碰| 日韩av最新在线| 亚洲国产成人久久综合一区| 日韩中文字幕免费| 久久久久久久av| 日av在线播放中文不卡| 精品国产福利视频| 久久影视电视剧免费网站清宫辞电视| 国产精品久久久久久久一区探花| 国产欧美精品一区二区三区介绍| 日韩视频免费在线观看| 中文字幕欧美在线| 91大神福利视频在线| 精品国产精品三级精品av网址| 一区三区二区视频| 国语自产精品视频在线看抢先版图片| 最新国产精品拍自在线播放| 亚洲精品视频久久| 国产精品激情自拍| 欧美一级淫片aaaaaaa视频| 国产日韩一区在线| 国产精品亚洲一区二区三区| 中文.日本.精品| 日韩成人免费视频| 57pao精品| 欧美一级大胆视频| 亚洲欧美视频在线| 久久不射热爱视频精品| 激情久久av一区av二区av三区| 欧美xxxx做受欧美| 精品一区二区三区电影| 91情侣偷在线精品国产| 欧美电影在线观看高清| 亚洲欧美国产日韩天堂区| 国产一区二区三区毛片| 亚洲欧美国产va在线影院| 国产精品久久久久久久久久三级| 久久99精品视频一区97| 黄色精品在线看| 亚洲四色影视在线观看| 中文字幕在线看视频国产欧美在线看完整| 欧洲成人在线观看| 欧美精品一区在线播放| 精品国产欧美一区二区三区成人| 精品国产欧美一区二区五十路| 日韩欧美黄色动漫| 国产精品福利网| 国产精品偷伦免费视频观看的| 国产精品免费在线免费| 国产午夜精品麻豆| 亚洲国产精品va在线看黑人动漫| 国产香蕉精品视频一区二区三区| 国产有码一区二区| 日韩在线视频观看正片免费网站| 国产精品入口夜色视频大尺度| 91精品国产乱码久久久久久蜜臀| 欧美视频裸体精品| 亚洲图片欧洲图片av| 91精品国产高清久久久久久| 精品久久香蕉国产线看观看gif| 国产日本欧美一区二区三区在线| 亚洲精品自拍第一页| 亚洲精品天天看| 欧美黄色成人网| 国产精品嫩草影院一区二区| 视频在线观看一区二区| 久久久精品免费视频| 国产精品爽爽ⅴa在线观看| 国产色视频一区| 亚洲天堂男人天堂| 久久久国产一区二区三区| 国产精品久久久久久久一区探花| 欧美国产第二页| 久久久久久久久久久国产| 欧美性猛交xxxx乱大交蜜桃| 欧美精品激情在线观看| 日本精品中文字幕| 日韩小视频在线| 91国产视频在线播放| 精品久久久久久中文字幕一区奶水| 欧美黄色成人网| 国产成人精品999| 日韩欧美精品中文字幕| 另类少妇人与禽zozz0性伦| 国产精品直播网红| 精品欧美一区二区三区| 最近2019年好看中文字幕视频| 日本久久久久久久久| 亚洲免费视频一区二区| 欧美黄色片视频| 亚洲a∨日韩av高清在线观看| 狠狠躁夜夜躁人人爽天天天天97| 精品无人区太爽高潮在线播放| 国产在线拍揄自揄视频不卡99| 亚洲伊人久久大香线蕉av| 午夜精品蜜臀一区二区三区免费| 亚洲精品自在久久| 久久综合国产精品台湾中文娱乐网| 欧美日韩加勒比精品一区| 日韩中文视频免费在线观看| 国产精品久久久久久av下载红粉| 国产日韩精品在线| 欧美成人激情图片网| 国产欧美在线视频| 91欧美激情另类亚洲| 一区三区二区视频| 久久亚洲国产精品成人av秋霞| 91久久中文字幕| 一区二区三区 在线观看视| 亚洲黄色有码视频| 亚洲人成绝费网站色www| 亚洲一区二区免费| 国产97色在线| 在线成人中文字幕| 91精品综合久久久久久五月天| 色琪琪综合男人的天堂aⅴ视频| 欧美精品日韩www.p站| 国产欧美中文字幕| 久久91亚洲精品中文字幕奶水| 92版电视剧仙鹤神针在线观看| 中文字幕最新精品| 日韩中文字幕在线精品| 欧美中文在线观看| 精品视频在线播放色网色视频| 国产精品午夜一区二区欲梦| 亚洲天堂男人的天堂| 日韩精品亚洲精品| 国产美女精彩久久| 日韩在线播放av| 亚洲自拍偷拍第一页| 国产日韩在线亚洲字幕中文| 久久不射热爱视频精品| 国产亚洲欧美日韩一区二区| 欧美高跟鞋交xxxxhd| 欧美一级在线播放| 日韩视频在线观看免费| 91性高湖久久久久久久久_久久99| xxxxx91麻豆| 日韩成人在线视频网站| 国产精品免费福利| 日韩在线观看免费全集电视剧网站| 久久久久久久香蕉网|