当前位置: 首页 > news >正文

佛山企业网站建设特色/网上销售培训课程

佛山企业网站建设特色,网上销售培训课程,手机上怎样制作网站,网站日常更新谁做将预测评分矩阵分解为用户特征矩阵和项目特征矩阵,预测评分计算式为: 目标函数为: 根据梯度下降计算,参数更新式为: 该算法的Python代码为: import math import random import matplotlib.pyplot as pl…

将预测评分矩阵分解为用户特征矩阵和项目特征矩阵,预测评分计算式为:
在这里插入图片描述
目标函数为:
在这里插入图片描述
根据梯度下降计算,参数更新式为:
在这里插入图片描述
该算法的Python代码为:

import math
import random
import matplotlib.pyplot as plt# 求平均值
def Average(fileName):fi = open(fileName, 'r')result = 0.0cnt = 0for line in fi:cnt += 1arr = line.split()result += int(arr[2].strip())return result / cnt# 计算矩阵点积
def InerProduct(v1, v2):result = 0for i in range(len(v1)):result += v1[i] * v2[i]return result'''
定义预测评分计算式
参数声明:
av:平均值
bu: 用户评分与用户平均的偏差
bi: 项目评分与项目平均的偏差
pu: 用户特征矩阵
qi: 项目特征矩阵
'''
def PredictScore(av, bu, bi, pu, qi):pScore = av + bu + bi + InerProduct(pu, qi)if pScore < 1:pScore = 1elif pScore > 5:pScore = 5return pScoredef SVD(configureFile, testDataFile, trainDataFile, modelSaveFile):# 从congigure文件中得到用户数、项目数、特征维度、学习率以及正则参数fi = open(configureFile, 'r')line = fi.readline()arr = line.split()averageScore = float(arr[0].strip())userNum = int(arr[1].strip())itemNum = int(arr[2].strip())factorNum = int(arr[3].strip())learnRate = float(arr[4].strip())regularization = float(arr[5].strip())fi.close()# 初始化模型bi = [0.0 for i in range(itemNum)]bu = [0.0 for i in range(userNum)]temp = math.sqrt(factorNum)qi = [[(0.1 * random.random() / temp) for j in range(factorNum)] for i in range(itemNum)]	pu = [[(0.1 * random.random() / temp)  for j in range(factorNum)] for i in range(userNum)]print("initialization end\nstart training\n")# 训练模型s = []rmse = []preRmse = 1000000.0iteration = 1000for step in range(iteration):fi = open(trainDataFile, 'r')	for line in fi:arr = line.split()uid = int(arr[0].strip()) - 1iid = int(arr[1].strip()) - 1score = int(arr[2].strip())			prediction = PredictScore(averageScore, bu[uid], bi[iid], pu[uid], qi[iid])eui = score - prediction# 更新参数bu[uid] += learnRate * (eui - regularization * bu[uid])bi[iid] += learnRate * (eui - regularization * bi[iid])	for k in range(factorNum):temp = pu[uid][k]	#attention here, must save the value of pu before updatingpu[uid][k] += learnRate * (eui * qi[iid][k] - regularization * pu[uid][k])qi[iid][k] += learnRate * (eui * temp - regularization * qi[iid][k])fi.close()learnRate *= 0.9curRmse = Validate(testDataFile, averageScore, bu, bi, pu, qi)print("test_RMSE in step %d: %f" %(step, curRmse))if curRmse >= preRmse:breakelse:preRmse = curRmses.append(step)rmse.append(curRmse)print(s)print(rmse)plt.plot(s, rmse)plt.show()return s, rmse# 验证模型
def Validate(testDataFile, av, bu, bi, pu, qi):cnt = 0rmse = 0.0fi = open(testDataFile, 'r')for line in fi:cnt += 1arr = line.split()uid = int(arr[0].strip()) - 1iid = int(arr[1].strip()) - 1pScore = PredictScore(av, bu[uid], bi[iid], pu[uid], qi[iid])tScore = int(arr[2].strip())rmse += (tScore - pScore) * (tScore - pScore)fi.close()return math.sqrt(rmse / cnt)if __name__ == '__main__':configureFile = 'svd.conf'trainDataFile = 'ml_data\\training.txt'testDataFile = 'ml_data\\test.txt'modelSaveFile = 'svd_model.pkl'resultSaveFile = 'prediction'SVD(configureFile, testDataFile, trainDataFile, modelSaveFile)

http://www.lbrq.cn/news/1473463.html

相关文章:

  • 网站建设及推广销售话术/西安网站seo技术厂家
  • 商城类网站功能/站长统计
  • 深圳css3网站开发多少钱/最新新闻事件今天国内大事
  • 做展厅 参考什么网站/怎么做电商生意
  • 网站后台是怎样制作/qq排名优化网站
  • 做网站开发的公司/无锡seo公司找哪家好
  • PHP套模板做网站/个人网站规划书模板
  • 做网站后台的叫什么/青岛推广优化
  • 成熟交bgmbgmbgm在线/太极seo
  • 黄石商城网站建设/网络游戏推广公司
  • 网站插件代码大全/可以推广赚钱的软件
  • 制作免费制作个人网站怎么做/西地那非片能延时多久每次吃多少
  • 做便民工具网站怎么样/seo优化文章网站
  • 青岛建立网站电话/宣传渠道有哪些
  • wap社区游戏入口/网站优化的意义
  • 做企业云网站的企业邮箱/seo搜索优化专员招聘
  • 产品网站开发计划表/百度推广怎么操作流程
  • 网站建设是属于b2/google付费推广
  • 中山建设局网站首页/怎么在百度免费推广
  • 深圳网站制作开发/上海广告推广
  • 怎么做网站底部版权信息/企业qq邮箱
  • 给别人做的网站要复杂做安全扫描/营销推广48个方法
  • 有没有做软件的外包网站/滁州网站seo
  • 怎么做营销网站/怎么seo关键词优化排名
  • 建设商务网站的经济可行性分析/市场营销四大基本策略
  • 制作网站网站/广州推广seo
  • 天津企业网站策划公司/适合网络营销的产品
  • 类似建E网模型网站建设/湖南网站seo推广
  • 哪家网站做推广好/百度获客平台
  • 自助下单网站怎么做/女教师遭网课入侵直播
  • 移动端WebView调试实战 跨域问题与授权失败的完整排查流程
  • Excel文件解析
  • 另外几种语言挑战100万行字符串文本排序
  • 论文阅读|ArxiV 2024|Mamba进一步研究|VSSD
  • 比特币挖矿的能源消耗和环保问题
  • GitHub使用小记——本地推送、外部拉取和分支重命名