本文整理汇总了Python中KNN.testing方法的典型用法代码示例。如果您正苦于以下问题:Python KNN.testing方法的具体用法?Python KNN.testing怎么用?Python KNN.testing使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KNN
的用法示例。
在下文中一共展示了KNN.testing方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: crossvalidation
# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import testing [as 别名]
def crossvalidation(userManager, artistManager, folders):
"""split data into folders and validate the performance"""
userIDs = userManager.keys()
userFolders = {}
for i in range(folders):
userFolders[i] = []
for userID in userIDs:
i = random.randrange(folders)
userFolders[i].append(userID)
for f in range(folders):
testUserSet, testUserIDList, testUserMostFavourite = splitTrainSet(userManager, 1.0/folders, userFolders[f])
knn = KNN(6)
knn.training(userManager, artistManager)
rightNum = 0
totalNum = len(testUserIDList)
for i in range(len(testUserIDList)):
print i, totalNum,
favOfOne = knn.testing(testUserSet[testUserIDList[i]], userManager, artistManager)
print testUserIDList[i], testUserMostFavourite[testUserIDList[i]].keys()[0], favOfOne
if favOfOne == testUserMostFavourite[testUserIDList[i]].keys()[0]:
rightNum += 1
print "Folder", f, ":"
print "Total:", totalNum
print float(rightNum)/len(testUserIDList)
for i in range(len(testUserIDList)):
userManager[testUserIDList[i]] = testUserSet[testUserIDList[i]]
示例2: testUser
# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import testing [as 别名]
def testUser(testUserID):
if not UserManager.has_key(testUserID):
return "don't has user with userID = "+str(testUserID)
testUserSet, testUserIDList = splitTrainSetWithoutRemoving(TrainUserManager, 0, [testUserID])
knn = KNN(40)
knn.training(TrainUserManager, ArtistManager)
favOfOne, allArtist, allTag = knn.testing(testUserSet[testUserID], UserManager, ArtistManager, True)
realfavOfOne = UserManager[testUserID].getMostFav().keys()[0]
ret = "The most listen artist:\n"+str(ArtistManager[realfavOfOne])+"\n"
ret += "The artist we predict:\n"+str(ArtistManager[favOfOne])
ret = ret.replace("\n","</br>")
# recovery modified TrainUserManager
TrainUserManager[testUserID]=testUserSet[testUserID]
return ret
示例3: buildMockUser
# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import testing [as 别名]
def buildMockUser():
artists = request.form['artists']
artistlist = json.loads(artists)
testUser = User(-100)
missingArtist = []
for artistRecord in artistlist:
artistID = int(artistRecord.keys()[0])
artistWeight = artistRecord.values()[0]
if artistWeight == 0:
artistWeight = 0.0000001
if ArtistManager.has_key(artistID):
testUser.insertArt(artistID, artistWeight)
else:
missingArtist.append(artistID)
knn = KNN(40)
knn.training(UserManager, ArtistManager)
favOfOne, allArtist, allTag = knn.testing(testUser, UserManager, ArtistManager, True)
ret = {'artistID': favOfOne}
if len(missingArtist) > 0:
ret['warning'] = {'missingArtist':missingArtist}
ret['artists'] = []
allArtistLen = len(allArtist)-1
maxArtistMatchWeight = allArtist[-1][1]
for i in range(allArtistLen, max(-1, allArtistLen-10), -1):
artistID = allArtist[i][0]
matchWeight = allArtist[i][1] / maxArtistMatchWeight
artistName = ArtistManager[artistID].Name
topTag = ArtistManager[artistID].getTopTag()
if topTag == -1:
topTagName = ""
else:
topTagName = TagManager[topTag]
ret['artists'].append({'id':artistID, 'name':artistName, 'match':matchWeight, 'tag':topTag, 'tagName':topTagName})
ret['tags'] = []
allTagLen = len(allTag)-1
for i in range(allTagLen, max(-1, allTagLen-10), -1):
tagID = allTag[i][0]
tagWeight = allTag[i][1]
tagName = TagManager[tagID]
ret['tags'].append({'id':tagID, 'name':tagName, 'match':tagWeight})
# dataObj = {'artists-num':len(artistlist)}
return json.dumps(ret)
示例4: splitTrainSet
# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import testing [as 别名]
print 'load time:', endtime - starttime, 's'
# print UserManager
theSameNum = 0
inListenNum = 0
users = UserManager.keys()
for user in users:
# testUserSet, testUserIDList, testUserMostFavourite = splitTrainSet(UserManager, 0, [user])
testUserSet, testUserIDList = splitTrainSetWithoutRemoving(TrainUserManager, 0, [user])
knn = KNN(2)
knn.training(TrainUserManager, ArtistManager)
for i in range(len(testUserIDList)):
testUserID = testUserIDList[i]
favOfOne = knn.testing(testUserSet[testUserID], UserManager, ArtistManager, RemoveListened)
realfavOfOne = UserManager[testUserID].getMostFav().keys()[0]
if favOfOne == realfavOfOne:
theSameNum += 1
if testUserSet[testUserID].ArtistList.has_key(favOfOne):
inListenNum += 1
# recovery modified TrainUserManager
TrainUserManager[testUserID]=testUserSet[testUserID]
# print testUserSet[testUserIDList[i]]
# print testUserMostFavourite[testUserIDList[i]], favOfOne, testUserSet[testUserIDList[i]].ArtistList.pop(favOfOne, "cannot match any one")
print str(user), theSameNum, inListenNum, favOfOne
print theSameNum/len(UserManager)
print inListenNum/len(UserManager)