[原文链接] 选择是一个技术活 著名鸡汤学家沃.滋基硕德曾说过:选择比努力重要. 我们会遇到很多选择的场景.上哪个大学,学什么专业,去哪家公司,中午吃什么,等等.这些事情,都让选择困难症的我们头很大.那么,有办法能够应对这些问题吗? 答案是:有!而且是科学的办法,而不是“走近科学”的办法.那就是bandit算法! bandit算法来源于人民群众喜闻乐见的赌博学,它要解决的问题是这样的[1]: 一个赌徒,要去摇laohu机,走进赌场一看,一排laohu机,外表一模一样,但是每个laohu机吐钱的概…
在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别.年龄.工作.收入.喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多. 本篇文章不介绍相关数学概念,主要给出常用的相似度算法代码实现,并且同一算法有多种实现方式. 欧几里得距离 def euclidean2(v1: Vector, v2: Vector): Doub…
摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是强化学习中一类重要的问题,由于它定义简洁且有大量的理论分析,因此被广泛应用于新闻推荐,医学试验等实际场景中.随着人类进入大数据时代,用户对自身数据的隐私性日益重视,这对机器学习算法的设计提出了新的挑战.为了在保护隐私的情况下解决 Bandit 这一经典问题,北京大学和华为诺亚方舟实验室联合提出了基于…
转载自:Click Here LCA问题(Lowest Common Ancestors,最近公共祖先问题),是指给定一棵有根树T,给出若干个查询LCA(u, v)(通常查询数量较大),每次求树T中两个顶点u和v的最近公共祖先,即找一个节点,同时是u和v的祖先,并且深度尽可能大(尽可能远离树根).LCA问题有很多解法:线段树.Tarjan算法.跳表.RMQ与LCA互相转化等.本文主要讲解Tarjan算法的原理及详细实现. 一 LCA问题 LCA问题的一般形式:给定一棵有根树,给出若干个查询,每个…
转载,http://blog.csdn.net/gamer_gyt 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 转载请注明出处,谢谢 =====================================================================…
1.      k近邻(k-NearestNeighbor)算法介绍及在推荐系统中的应用 https://zhuanlan.zhihu.com/p/25994179 k近邻(k-NearestNeighbor)算法是一种基本分类和回归方法.分类问题的k近邻法即给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中.(这就类似于现实生活中少数服从多数的思想) 算法注意点:K值选取(过小容易过拟合,过大大大降低预测准确…
转载:http://linbingdong.com/2017/04/17/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E2%80%94%E2%80%94Paxos%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86%E4%B8%8E%E6%8E%A8%E5%AF%BC/ Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上…
对于推荐方法,基于内容 和 基于协同过滤 是目前的主流推荐算法,很多电子商务网站的推荐系统都是基于这两种算法的. 协同过滤 是一种基于相似性来进行推荐的算法,主要分为 基于用户的协同过滤算法 和 基于项目的协同过滤算法,第3种是基于模型(model based)的协同过滤. 协同:通过在线数据找到用户可能喜欢的物品:      过滤:滤掉一些不值得推荐的数据 基于用户的(User based)协同过滤算法: 采用统计计算方式,搜索目标用户的相似用户(通过相似性度量方法计算出最近邻居集合),并根据…
  说明: 本文仅提供关于两个算法的正确性的证明,不涉及对算法的过程描述和实现细节 本人算法菜鸟一枚,提供的证明仅是自己的思路,不保证正确,仅供参考,若有错误,欢迎拍砖指正   -------------------------------------------   Dijkstra算法和Floyd算法用于求解连通图中任意两个顶点之间的最短路径   Dijksra算法从一个顶点v0出发,每次为一个顶点vi确定到达v0的最小路径   Dijkstra算法用distance[i]记录顶点vi到v0…
转载随笔,原贴地址:MCMC和Gibbs Sampling算法 本文是整理网上的几篇博客和论文所得出来的,所有的原文连接都在文末. 在科学研究中,如何生成服从某个概率分布的样本是一个重要的问题.如果样本维度很低,只有一两维,我们可以用反切法,拒绝采样和重要性采样等方法.但是对于高位样本,这些方法就不适用了.这时我们就可以使用一些“高档”的算法,比如Metropolis-Hasting算法和Gibbs Sampling算法. Metropolis-Hasting算法和Gibbs Sampling算…