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

网站后台上传图片无法显示建设企业网站哪家好

网站后台上传图片无法显示,建设企业网站哪家好,ui设计的工作内容,广东网络seo推广在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别、年龄、工作…

在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别、年龄、工作、收入、喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多。

本篇文章不介绍相关数学概念,主要给出常用的相似度算法代码实现,并且同一算法有多种实现方式。

欧几里得距离

def euclidean2(v1: Vector, v2: Vector): Double = {require(v1.size == v2.size, s"SimilarityAlgorithms:Vector dimensions do not match: Dim(v1)=${v1.size} and Dim(v2)" +s"=${v2.size}.")val x = v1.toArrayval y = v2.toArrayeuclidean(x, y)}def euclidean(x: Array[Double], y: Array[Double]): Double = {require(x.length == y.length, s"SimilarityAlgorithms:Array length do not match: Len(x)=${x.length} and Len(y)" +s"=${y.length}.")math.sqrt(x.zip(y).map(p => p._1 - p._2).map(d => d * d).sum)}def euclidean(v1: Vector, v2: Vector): Double = {val sqdist = Vectors.sqdist(v1, v2)math.sqrt(sqdist)}

皮尔逊相关系数

 def pearsonCorrelationSimilarity(arr1: Array[Double], arr2: Array[Double]): Double = {require(arr1.length == arr2.length, s"SimilarityAlgorithms:Array length do not match: Len(x)=${arr1.length} and Len(y)" +s"=${arr2.length}.")val sum_vec1 = arr1.sumval sum_vec2 = arr2.sumval square_sum_vec1 = arr1.map(x => x * x).sumval square_sum_vec2 = arr2.map(x => x * x).sumval zipVec = arr1.zip(arr2)val product = zipVec.map(x => x._1 * x._2).sumval numerator = product - (sum_vec1 * sum_vec2 / arr1.length)val dominator = math.pow((square_sum_vec1 - math.pow(sum_vec1, 2) / arr1.length) * (square_sum_vec2 - math.pow(sum_vec2, 2) / arr2.length), 0.5)if (dominator == 0) Double.NaN else numerator / (dominator * 1.0)}

余弦相似度

 /** jblas实现余弦相似度 */def cosineSimilarity(v1: DoubleMatrix, v2: DoubleMatrix): Double = {require(x.length == y.length, s"SimilarityAlgorithms:Array length do not match: Len(v1)=${x.length} and Len(v2)" +s"=${y.length}.")v1.dot(v2) / (v1.norm2() * v2.norm2())}def cosineSimilarity(v1: Vector, v2: Vector): Double = {require(v1.size == v2.size, s"SimilarityAlgorithms:Vector dimensions do not match: Dim(v1)=${v1.size} and Dim(v2)" +s"=${v2.size}.")val x = v1.toArrayval y = v2.toArraycosineSimilarity(x, y)}def cosineSimilarity(x: Array[Double], y: Array[Double]): Double = {require(x.length == y.length, s"SimilarityAlgorithms:Array length do not match: Len(x)=${x.length} and Len(y)" +s"=${y.length}.")val member = x.zip(y).map(d => d._1 * d._2).sumval temp1 = math.sqrt(x.map(math.pow(_, 2)).sum)val temp2 = math.sqrt(y.map(math.pow(_, 2)).sum)val denominator = temp1 * temp2if (denominator == 0) Double.NaN else member / (denominator * 1.0)}

修正余弦相似度

def adjustedCosineSimJblas(x: DoubleMatrix, y: DoubleMatrix): Double = {require(x.length == y.length, s"SimilarityAlgorithms:DoubleMatrix length do not match: Len(x)=${x.length} and Len(y)" +s"=${y.length}.")val avg = (x.sum() + y.sum()) / (x.length + y.length)val v1 = x.sub(avg)val v2 = y.sub(avg)v1.dot(v2) / (v1.norm2() * v2.norm2())}def adjustedCosineSimJblas(x: Array[Double], y: Array[Double]): Double = {require(x.length == y.length, s"SimilarityAlgorithms:Array length do not match: Len(x)=${x.length} and Len(y)" +s"=${y.length}.")val v1 = new DoubleMatrix(x)val v2 = new DoubleMatrix(y)adjustedCosineSimJblas(v1, v2)}def adjustedCosineSimilarity(v1: Vector, v2: Vector): Double = {require(v1.size == v2.size, s"SimilarityAlgorithms:Vector dimensions do not match: Dim(v1)=${v1.size} and Dim(v2)" +s"=${v2.size}.")val x = v1.toArrayval y = v2.toArrayadjustedCosineSimilarity(x, y)}def adjustedCosineSimilarity(x: Array[Double], y: Array[Double]): Double = {require(x.length == y.length, s"SimilarityAlgorithms:Array length do not match: Len(x)=${x.length} and Len(y)" +s"=${y.length}.")val avg = (x.sum + y.sum) / (x.length + y.length)val member = x.map(_ - avg).zip(y.map(_ - avg)).map(d => d._1 * d._2).sumval temp1 = math.sqrt(x.map(num => math.pow(num - avg, 2)).sum)val temp2 = math.sqrt(y.map(num => math.pow(num - avg, 2)).sum)val denominator = temp1 * temp2if (denominator == 0) Double.NaN else member / (denominator * 1.0)}

大家如果在实际业务处理中有相关需求,可以根据实际场景对上述代码进行优化或改造,当然很多算法框架提供的一些算法是对这些相似度算法的封装,底层还是依赖于这一套,也能帮助大家做更好的了解。比如Spark MLlib在KMeans算法实现中,底层对欧几里得距离的计算实现。

更多干货抢先看:数据仓库建模工具大盘点 - 从建模工具介绍、选型建议到行业应用案例

http://www.dtcms.com/a/444804.html

相关文章:

  • VIP视频网站有得做吗开发网站的好处
  • 如何查看网站是否被百度收录广东东莞回来要隔离吗
  • 克隆网站怎么做后台网站推广的分类
  • wordpress后台怎么登陆山东专业网站seo
  • 网站设计的含义厦门做百度推广的网站
  • 调整百度对网站的最大天级抓取频次值建站技巧
  • 云南网站建设专家团员电子档案查询网
  • 兰州网站制作cheng学校网站建设分工
  • 做一家网站的成本高端网站建设四川
  • 网站管理与维护如何去除hao123主页
  • 自己的网站怎么开王也天个人资料
  • 海门住房和城乡建设局网站拦截网站做跳转
  • 网站建设运作流程北京网络营销公司
  • 网站开发公司赚钱么外贸网站如何做的好
  • 青岛网站建设加盟公司网站建设意义
  • 医疗网站怎么做优化wordpress写博客插件
  • 网站的模板2003网站建设
  • html5响应式企业网站上海网站建设价
  • 做美术鉴赏网站的心得wordpress免费装修主题
  • 特色网站设计网站建设 话术
  • 网站建设的行业资讯国外手机网站欣赏
  • 度娘网站灯笼要咋做呢网站的模块怎么做
  • 个人博客网站设计模板wordpress链接替换
  • 湖南哪里有做网站的网站小图标素材
  • 天津网站建设外贸短视频公司网站建设方案
  • 怎么按照屏幕比例做网站适应衡水网站建设联系电话
  • 学校网站备案怎么做营销型网站要多少钱
  • 网站建设与管理收获自助建站信息网
  • 电脑个人网站怎么做WordPress开cdn支付
  • 电子商务网站建设技术有哪些方面网站视频弹窗广告代码