问题可以简化为:已知部分参数,在大量数据中选出"相似"的数据

问题的核心是两个字 "相似" 怎么衡量 ?人可以靠感觉,但计算机只能处理数据。

这样就从"相识" 牵扯出了一个更有趣的话题 "度量"。

笛卡尔有句名言:如果我们能够用语言精确的描述,一个形状或者运动,那么我们也同样可以用数值模式来描述这个形状或者运动,并将其标示成一组方程。

套用在我们程序员身上就是:任何感觉都是一个变量,只要你能用自然语言说明白具体是个啥东西,我总归能写个函数来描述它。

那么我们现在就需要用我们的感觉为"相似"写一个方程,比如:

function similar (a,b){

return x*sizeSimilar(a,b) + y*priceSimilar(a,b) + z*describeSimilar(a,b)

}

当然这个函数的写法很多,取决于你对 "相似"这个概念的理解,这是最考验人观察能力的地方,大学有个竞赛"数学建模" 核心玩的就是它。往往你对世界的观察的越细致,考虑的维度越多,你的函数就越复杂。

在函数里x,y,z就是权重,对于权重的设置,也是一个很有趣的话题。这可能也是题主最关心的,怎么设置权重?我要上图了!

目前的作法方式有很多:

1.直接测量

比如这个

这是一家厂商在去年Epic 中国开发者大会上展示的例子。

他们为了渲染效果更逼近真实,应该用了更复杂的实时光照算法,但更复杂的算法也意味着更多的参数。这些参数该如何设置呢,他们解决方式也很粗暴,买最贵的设备来!在现实世界中测!

2.利用已知数据求解

如果有些量我们没法直接测,但是只要我们写出了方程,总能找到写间接的办法得到我们想要的参数。

这种例子在科学史上很多,大到从伽利略算重力加速度,小到航海员用三角函数计算船行的方向。

我们的数学应用题也大该都是这套思路,列方程,解方程。仅此而已。

简单方程人来解,复杂的可以用Matlab之类的专业数学软件来解。解好参数直接套用的程序里就Ok

用Matlab这种方式来搞参数,可能最后别的同事看你代码时会突然出现一些画风不对的元素:

3.随机猜测

以上说的参数设置方式都很简单,但是!但是!但是!我们程序员要面临的最残酷的现实是!

在这个操蛋的世界里很多问题是没有正确答案的!

如果你不巧遇到了这样的问题,你要果断的告诉产品经理,这个功能做不了!

如果还是让你做,那么你准备好一把刀!

如果准备刀还不行,那么我们还有终极的解决方案!人工智能(全靠蒙)!

真的人工智能算法就是全靠蒙(几乎主流的算法都是建立在统计学的基础上),只不过蒙也要有蒙的套路,不能瞎蒙。小时候学霸们告诉我们:三长一短就选短, 三短一长就选长。两长两短就选B,参差不齐C无敌。现在这帮学霸们都长大了告诉我们:批梯度下降、随机梯度下降、局部加权回归算法、朴素贝叶斯分类、牛顿方法、生成学习算法、感知器算法、Logistic回归/K近邻。反正学霸套路多,具体怎么玩的楼主自己百度吧。

java 权重_java的权重匹配算法技术?相关推荐

  1. java 权重_java实现权重随机算法

    权重随机算法在抽奖,资源调度等系统中应用还是比较广泛的,一个简单的按照权重来随机的实现,权重为几个随机对象(分类)的命中的比例,权重设置越高命中越容易,之和可以不等于100: 简单实现代码如下: im ...

  2. java 抽奖_JAVA基于权重的抽奖

    https://blog.csdn.net/huyuyang6688/article/details/50480687 如有4个元素A.B.C.D,权重分别为1.2.3.4,随机结果中A:B:C:D的 ...

  3. java毕业设计——基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码)——网络新闻分析系统

    基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsoup+HttpClient的网络爬虫技术的网络 ...

  4. java树_Java树

    树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合.把它叫做"树"是因为它 ...

  5. java高深技术总结_一名25K以上的高薪Java程序员总结出的技术以及学习技能

    原标题:一名25K以上的高薪Java程序员总结出的技术以及学习技能 总所周知,Java是目前使用最为广泛的网络编程语言之一. 它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点. 一般 ...

  6. Java后端开发需具备什么技术?这几个部分你需要关注

    Java后端开发需具备什么技术?对于初学Java并且有志于后端开发的同学来说,需要重点关注以下几个部分: Java开发普遍需要: 1.Java基础 2.数据库 MYSQL/SQLServer/Orac ...

  7. Java 正青春:现状与技术趋势报告

    背景 1991 年,James Gosling 带领团队开始了一个叫"Oak"的项目,这个就是 Java 的前身.1995 年,Java1.0 发布."Write onc ...

  8. java学习_Java编程学习难不难 怎样才能快速入门Java

    Java编程学习难不难?怎样才能快速入门Java?对于想要加入IT行业的人来说,Java是一个不错的选择,不仅人才需求大,就业薪资也非常不错.许多人都非常看好Java发展前景,接下来千锋小编就给大家介 ...

  9. php java 架构_JAVA和PHP到底谁才是老大?

    原标题:JAVA和PHP到底谁才是老大? 大家还记得PHP和JAVA的那些梗吗?有一天JAVA说我是世界上最好的语言!!!啦啦啦啦!我是老大,所有的编程语言都给我靠边站,激动!学习了JAVA的孩子们心 ...

  10. 布线问题分支限界法java_大型布线:Java云应用程序缺少的技术

    布线问题分支限界法java 您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳 ...

最新文章

  1. RDKit | 基于RDKit可视化脂溶性在溶解度贡献中的应用
  2. go使用PostgreSQL数据库
  3. 【创业】创业公司股权架构设计注意事项
  4. 建议11: 区别对待==和Equals
  5. 电子路考容易犯错的五大细节
  6. 信息学奥赛一本通(2044:【例5.12】回文字串)
  7. mysql5.7.18压缩包下载_MySQL5.6.30 升级到MySQL5.7.18
  8. 显示器是计算机多媒体的什么设备,多媒体输入设备有哪些
  9. 【夏季养生以心为大】
  10. Tesseract怎么识别中文
  11. 优盘复制进来为空_U盘问题 复制文件夹到U盘后,再打开就成空的了、
  12. 基于单片机的水塔水位检测系统
  13. 悼念贝娜齐尔#183;布托
  14. vue自定以鼠标样式cursor
  15. sfc流程图怎么画_SFC顺序功能图教程
  16. @Pointcut注解表达式介绍
  17. 公平性 机器学习_比较机器学习模型的案例研究公平性
  18. 机械复试面试问题汇总 4
  19. FA固定资产报废不可撤消重建
  20. xp系统无法访问计算机,XP系统打不开网上邻居提示“workgroup无法访问”如何解决...

热门文章

  1. Linux C编程与Shell编程在开发实用工具方面的相同点总结
  2. yamdi 实现添加元数据的注入flv文件,实现Nginx搭建flv视频浏览器上点播拖拽
  3. redis持久化(persistence)
  4. 常用html元素的取值和赋值方法总结
  5. 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
  6. 10个线程同时执行i++操作1000次,如何保证结果是1w
  7. idea maven repositories为空
  8. LooseScan Strategy
  9. 当心DevOps虚假指标
  10. uva 10803(floyd)