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

五指山市网站建设_网站建设公司_响应式网站_seo优化

医疗机械网站怎么做,企业网页设计网站案例,wordpress第三方登录,网页怎么制作评价指标 Recall 名称#xff1a; 召回率#xff08;真阳性率#xff09; 意义#xff1a;在推荐系统中#xff0c;我们只关心正确推荐的有多少#xff0c;也就是用户真实喜欢的#xff0c;并不会关心推荐错的#xff0c;所以我们用召回率#xff0c;而不是准确率 召回率真阳性率 意义在推荐系统中我们只关心正确推荐的有多少也就是用户真实喜欢的并不会关心推荐错的所以我们用召回率而不是准确率 理解这个前提混淆矩阵 混淆矩阵 详细的可以自己去了解 Recall TP / (TP FN) 也就是你所有预测为True的里面到底有多少是真实值 Recalln指的是推荐的前n个的召回率有多少 代码实现比较简单 ROC(AUC) 名称 Curve曲线 AUC是ROC下面的面积意义ROC的效果是看AUC的面积大小决定的; 如果AUC等于1那么就是预测全部正确要明白这个必须知道混淆矩阵。 ROC的横坐标是FP纵坐标是TP一般而言TP要大于FP所以曲线是一个凸函数而且AUC0.5 AUC的面积越大说明效果更好 def confusion_marix(predict_label, true_label):true_lable true_labelTP, TN, FP, FN 0,0,0,0for predict, true in zip(predict_label, true_lable):if predict true 1:TP 1elif predict true 0:TN 1 # 怎么写 先写后面的 N和P再写前面预测正确还是错误elif predict 1 and true 0: # 预测为1但是真实的是0所以是错误的PFP 1else: # predict 0 and true 1: # 预测为0但是真实的是1所以是错误的NFN 1ACC (TP TN) / (len(true_lable))TPR TP / (TP FN) # 召回率PPV FP / (TP FP) # 精准率F1 2 / (1 / TPR 1 / PPV)return ACC, TPR, PPV, F1NGCGNormalized Discounted Cummulative Gain 名称归一化折损累计增益 意义在搜索和推荐任务中系统常返回一个item列表。如何衡量这个返回的列表是否优秀呢可以用于评价基于打分/评分的个性推荐系统。 要理解这个得从点点了解开始 相关性是人工打标签上去的不要问为什么 NDCG G-CG-DCG-NDCG G Gain 表示列表中每一个item的相关性分数 CG Cumulative Gain表示对K个item的相关性进行累加 DCG Discounted Cumulative Gain考虑排序顺序的因素使得排名靠前的item增益更高对排名靠后的item进行log折损。 如果相关性分数r(i)只有01两种取值时DCGK有另一种表达。其实就是如果算法返回的排序列表中的item出现在真实交互列表中时分子加1否则跳过。 NDCG Normalized Discounted Cumulative Gain DCG能够对一个用户的推荐列表进行评价如果用该指标评价某个推荐算法需要对所有用户的推荐列表进行评价由于用户真实列表长度不同不同用户之间的DCG相比没有意义。 所以要对不同用户的指标进行归一化自然的想法就是计算每个用户真实列表(指的是groudtruth)的DCG分数用IDCG表示然后用每个用户的DCG与IDCG之比作为每个用户归一化后的分值最后对每个用户取平均得到最终的分值即NDCG。 #codingutf-8import numpy as np# 复现求和运算的公式# 有求和运算的K一般是传入的list的长度 # 单元素一般是先处理求和符号右边的 # 多元素生成列表 # 然后最后再聚合np.sum# 1. 得到一个用户的DCG评分 # 这种是相关性分数是连续的 def getDCG_list(scores):return np.sum([np.divide(score, np.log2(1i)) for i, score in enumerate(scores)]) # 这种相关性分数是0和1 def getDCG2_list(scores):return np.sum([np.divide(2 ** score - 1, np.log2(1i)) for i, score in enumerate(scores, start1)])# 但是其实np里面所有的加减乘除都是传播的单个元素之间分别操作 所以不用遍历 def getDCG(relavance):return np.divide(relavance, np.log2(1 np.arange(1, len(relavance) 1)))def getDCG2(scores): # 如果相关性只有0和1用这个return np.divide(2 ** scores - 1, np.log2(1 np.arange(1, scores.shape[0] 1)))# 2. DCG / IDCG 所有真实列表的全部 def getNDCG(predict_list, true_list, true_relavance, true_rel_dict):# 结果为1的原因是因为代码里相关性得分的定义是只要出现在真实列表中就为1推荐问题里这么设置是比较常见的preict_relavance np.asarray([true_rel_dict.get(it, 1.0) for it in predict_list], dtypenp.float32) # 获得precit的分数idcg getDCG(true_relavance)dcg getDCG(preict_relavance)# if dcg 0.0:# return 0.0ndcg dcg / idcgreturn ndcg predict_list [3, 2, 1] # 预测结果 true_list [1, 2, 3] # 真实的结果 true_relavance [i for i in range(3, 0, -1)] true_rel_dict {it: r for it, r in zip(true_list, true_relavance)} # 定义相关性字典方便predict_item查找相应的分数 a getNDCG(predict_list, true_list, true_relavance, true_rel_dict) print(a)Hit(Hit Ratio) 名称击中率意义在top-K推荐中HR是一种常用的衡量召回率的指标而且只是在测试为用户推荐的items是不是在用户的真实集合中并不在乎先后顺序计算公式为 # codingutf-8# HRK 表示模型推荐的top-K中有几个被推荐了 # 可以发现是永远小于1的而且应该是增长的 不用质疑错没错就是这么定义的 def hit(pred_items, gt_items): # 这里指的是一个用户的预测! 不在乎排序 只要推荐了就行hititems [pred_item for pred_item in pred_items if pred_item in gt_items]hr len(hititems) / len(gt_items)return hr, hititems# 加入hit5 pred_items [3, 4, 2, 100, 1000] gt_items [1, 2, 3, 4, 5, 6, 7, 8] hr, hititems hit(pred_items, gt_items) print(hr)MAPMean Average Precision 所有用户的平均命中率AP MAP意义 仅仅是准确率召回率或者是HR是不行的还得看你的推荐顺序比如搜索引擎里的推荐TOPK是不是把命中的的排序到前面而未命中的排序到了后面这里只有命中和非命中的顺序之分而没有区分具体的每个item的顺序 比如【命中命中未命中未命中未命中】和【未命中未命中未命中命中命中】显然它们的准确率都是2/5但是第一个更好。 注意 预测的items只要在gt中有那么就是命中了我们关系的是命中的顺序而不是精确的物品2在gt中是第一个那么预测的物品2也必须是第一个。 先看AP一个用户的 KKK表示推荐列表的长度 UUU表示的用户数量 mmm用户实际选择的物品数 nnn是给用户推荐的项目数 P(k)P(k)P(k)指的是截止到第k个有多少项目命中 如预测的第一个排名命中了截止到第一个命中率是1/1 第二个排名没有命中那么就是0 第三个排名命中了截止到第三个有两个命中命中率就是2/3 rel(k)rel(k)rel(k)指的是排名第k的项目是不是被用户实际选择是为1不是为0 所以对于推荐列表【命中命中未命中未命中未命中】假设该用户在测试集中实际选择了3个项目则 def AP(pred_items, gt_items):cu_hits 0 # 累计命中cu_precision 0 # 累加命中率for i, pred_item in enumerate(pred_items, start1):if pred_item in gt_items:cu_hits 1cu_precision cu_hits / i # 每步一算if cu_hits 0:return cu_precision / len(gt_items)else:return 0pred_items [3, 4, 2, 100, 1000] gt_items [1, 2, 3, 4, 5, 6, 7, 8] AP AP(pred_items, gt_items) print(AP)MRRMean Reciprocal Rank 名称平均倒数排序意义 要查询的结果值在返回的结果中的排名。是一个国际上通用的对搜索算法进行评价的机制。仅仅是排名 可以用在序列推荐中 正确检索结果值在检索结果中的排名来评估检索系统的性能 假如检索三次的结果如下需要的结果cattorusvirus分别排在3,2,1的话排在results的第三个结果就是1/3排在第二个则是1/2 注意分母不是所有的结果的个数而是排名 def MRR(pred_items, gt_items):rank 0for pred_item in pred_items:if pred_item in pred_items:rank gt_items.index(pred_item) 1rank 1/rankreturn rankpred_items [3, 4, 2, 100, 1000] gt_items [1, 2, 3, 4, 5, 6, 7, 8] MRR MRR(pred_items, gt_items) print(MRR)ILS 意义ILS 衡量推荐列表多样性的指标计算公式 如果S(bi,bj)S(b_i, b_j)S(bi​,bj​)计算的是iii和jjj两个物品的相似性如果推荐列表中的物品越不相似ILS越小那么推荐结果的多样性越好。 coverage 推荐系统能够推荐出来的物品占总物品集合的比例。 热门排行榜的推荐覆盖率是很低的 因为热门物品占总体物品是很低的一部分
http://www.ihoyoo.com/news/95887.html

相关文章:

  • 搞个app要多少钱免费seo教程
  • 株洲市荷塘区城乡建设局网站长沙快速排名优化
  • 同江佳木斯网站建设微信网页版怎么下载
  • WordPress 布局 企业网站产品推广软文500字
  • 无锡网站建设价格低青岛城市建设投资建设集团网站
  • 用html制作个人网站源代码网站 简约
  • 互诺科技做网站怎么样单纯的文章网站怎么做
  • 网站建设佰金手指科杰二八河北网上注册公司流程
  • 上海教育网站官网宣传册设计与制作合同
  • 网站企划设计公司一个网站的优化怎么做
  • 网站设计建设制作百度投放广告收费标准
  • 休闲农庄网站做电商哪几个设计网站比较好
  • 陕西网站制作公司排名保定免费网站建站模板
  • 常熟公司做网站网络营销的理念
  • 佛山网站建设优化企业河源哪里做网站
  • 移动网站怎么做优化北京网站案例
  • 建设银行网站缺点网站的设计 改版 更新
  • 常州网站建设外包公司企业宣传片脚本
  • 山东网架公司seo行业岗位
  • 如何做好网站seo做网站没有成本的方法
  • wordpress主题tag标签页面代码手机端网站优化排名seo推广
  • 房产网站建设五莲做网站
  • 四川纵川建设机械有限公司网站江苏省备案网站
  • 做资讯网站需要什么资质wordpress内部跳转链接
  • 怎么看网站是否被收录网站建设公司青岛
  • 怎么在vps上做网站用网站名查询网址
  • 做购票系统网站做游戏女角色去衣的网站
  • 上海网站建设网页制云南网站建设c3sales
  • 做网站难度大吗网站如何搬家
  • 南宁有名的网络公司网站如何进行优化