当前位置: 首页>>代码示例>>Python>>正文


Python KNN.testing方法代码示例

本文整理汇总了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]]
开发者ID:Yaliang,项目名称:last.fm-recommender,代码行数:28,代码来源:baseline.py

示例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
开发者ID:Yaliang,项目名称:last.fm.server,代码行数:17,代码来源:app.py

示例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)
开发者ID:Yaliang,项目名称:last.fm.server,代码行数:46,代码来源:app.py

示例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)
开发者ID:Yaliang,项目名称:last.fm.server,代码行数:32,代码来源:main0603.py


注:本文中的KNN.testing方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。