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


Python KNN.training方法代码示例

本文整理汇总了Python中KNN.training方法的典型用法代码示例。如果您正苦于以下问题:Python KNN.training方法的具体用法?Python KNN.training怎么用?Python KNN.training使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在KNN的用法示例。


在下文中一共展示了KNN.training方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: crossvalidation

# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import training [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 training [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 training [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: len

# 需要导入模块: import KNN [as 别名]
# 或者: from KNN import training [as 别名]
	# 	# tag = [userID	artistID	tagID	day	month	year]
	# 	if UserManager.has_key(int(tag[0])):
	# 		UserManager[int(tag[0])].insertTag(int(tag[1]),int(tag[2]))



	#train with UserManager, test with TestUserManager
	# counter = 0
	# for userID,user in TestUserManager.iteritems():
	# 	if len(user.ArtistList) == 0:

	# 		counter += 1
	# 	# print userID, len(user.ArtistList)
	# print counter, len(TestUserManager)
	knn = KNN(30)
	knn.training(UserManager, ArtistManager)

	theSameNum = 0
	for userID in TestUserManager:
		favOfOne, neighbors = knn.testingTimeBased(TestUserManager[userID],UserManager, ArtistManager)
		favTruth = TestUserManager[userID].getMostFav().keys()[0]
		if favOfOne == favTruth:
			theSameNum += 1
		print userID, theSameNum, favOfOne

	print 1.0*theSameNum/len(TestUserManager)

	# print favOfOne


开发者ID:Yaliang,项目名称:last.fm-recommender,代码行数:30,代码来源:mainWithTimeStamps.py


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