数据?算法-> which is important?
谷歌的强不是强在 PageRank 算法,而在于它是第一个在排名时把链接——而不只是文字和标题——考虑进去的。又以自己教的数据挖掘课为例。他让学生以 Netflix 用户对一万八千多部电影的打分为基础数据,写程序为她们推荐别的电影。其中有组学生的算法较优,另外一组学生算法一般,但使用了外部数据——IMDB 对电影类型的归类。结果第二组的结果胜过了第一组。
那么到底是数据重要还是算法重要呢?

来自Rio的观点:
————————————————————————————————————————————
虽然不能这么绝对的判断一定谁比谁重要,但在实际应用中很多时候的确是数据更加重要。有几方面的原因:
在很多问题中,算法的“好坏”在没有大量有效数据的支撑下是没有意义的。换句话说,很多算法得到的结果的质量完全取决于其和真实数据的拟合程度。如果没有足够的数据支撑、检验,设计算法几乎等于闭门造车。
很多算法会有一堆可调参数。这些参数的选择并没有什么标准可依,无非是扔给大量数据,看参数的变化会带来什么样的结果的变化。大量、有效的数据成为优化这类算法的唯一可行方法。
更极端的例子是,算法本身很简单,程序的完善全靠数据训练。比如神经网络。
对于很多成熟的算法,优化算法的增量改善通常远小于增大输入数据(这是个经济性的考虑)。
比如问题中举例的 Google。在它之前的搜索引擎已经把基于网页内容的索引算法做得很好了,要想有更大的改善需要换思路。PageRank 算法的采用大大增加了输入的数据量,而且链接数据本身对于网页排名相当关键(当然他们也做了大量算法的优化)。【插话:在这样的思想指导下,Google 想要插手社交网络或微博也不足为奇了吧?实时搜索、排名没有真人的互动怎么可能。】
Netflix 挑战赛的例子中,Netflix 本身的推荐算法也是优化到极致了。再从算法本身去找改进之处,投入产出比太低。引文中的学生仅仅是加入了 IMDB 数据库关于电影分类(从而更加明确观众的偏好)就能带来比复杂算法更加显著的改善,试想如果他们能拿到 Rotten Tomatoes 的数据会怎样?
When people are equally smart, big data wins. 这个结论的悲摧之处在于,在类似行业中,今后小的创业公司想要打败巨头就不那么容易。要么要改变思路,要么要改变策略。指望靠小聪明扳倒大象会很成问题。
当然这也不是绝对的。比如典型的反例(算法比数据重要)是 Google 刚被批准收购的 ITA Software。这家牛 B 烘烘(估计是现存最大的 Lisp shop)的公司的机票搜索引擎驱动着世界各大航空公司、票务中介的后台系统。它的数据来自一个各大航空公司授权的公司,其他竞争者也可以花钱(虽然不便 宜)买到同样的数据。但它的牛 B 之处在于能从同样的数据里比别人更快挖出更好的结果。
来自邓毅的观点:
———————————————————————————————————————————
程序 = 数据结构 + 算法,数据结构用来干啥的,装数据的呀。
数据能干啥?数据是信息的源泉,没有足够的数据,就没有信息,信息技术没有信息啥都没有。
算法能干啥?把数据中信息提取出来,不经过提取,数据还是数据,变不成有用的信息。
这俩不是并列的关系,而是一体的,如何能说谁重要呢?脑子重要还是心脏重要,你给我说说。
此外,数据的好坏如何衡量?不是越多越好,当然数据越多往往所蕴含的信息越大,这个容易看得出来;算法的好坏如何衡量?不是越复杂约好,能从海量的垃圾中找到有用的信息的算法就是好的算法,虽然不这么复杂,不是所有的人都能看到这点。
我最想说的是什么?如果不是事不关己的旁观者,数据往往是自己能拿到最多的数据,然后根据自己的这些数据去找最合适的算法。
数据?算法-> which is important?的更多相关文章
- 大数据算法->推荐系统常用算法之基于内容的推荐系统算法
港真,自己一直非常希望做算法工程师,所以自己现在开始对现在常用的大数据算法进行不断地学习,今天了解到的算法,就是我们生活中无处不在的推荐系统算法. 其实,向别人推荐商品是一个很常见的现象,比如我用了一 ...
- 大数据算法设计模式(1) - topN spark实现
topN算法,spark实现 package com.kangaroo.studio.algorithms.topn; import org.apache.spark.api.java.JavaPai ...
- 大数据算法:kNN算法
\一.kNN算法概述 kNN是k-Nearest Neighbour的缩写,这是一种非常简单且易于理解的分类算法.回想我们从小到大在认知事物的过程当中,我们是如何判断一种事物是属于哪种类别的?通常的一 ...
- 滴滴大数据算法大赛Di-Tech2016参赛总结
https://www.jianshu.com/p/4140be00d4e3 题目描述 建模方法 特征工程 我的几次提升方法 从其他队伍那里学习到的提升方法 总结和感想 神经网络方法的一点思考 大数据 ...
- 数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)
九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. ...
- 数据算法 --hadoop/spark数据处理技巧 --(5.移动平均 6. 数据挖掘之购物篮分析MBA)
五.移动平均 多个连续周期的时间序列数据平均值(按相同时间间隔得到的观察值,如每小时一次或每天一次)称为移动平均.之所以称之为移动,是因为随着新的时间序列数据的到来,要不断重新计算这个平均值,由于会删 ...
- 数据算法 --hadoop/spark数据处理技巧 --(1.二次排序问题 2. TopN问题)
一.二次排序问题. MR/hadoop两种方案: 1.让reducer读取和缓存给个定键的所有值(例如,缓存到一个数组数据结构中,)然后对这些值完成一个reducer中排序.这种方法不具有可伸缩性,因 ...
- StartDT_AI_Lab | 开启“数据+算法”定义的新世界
继「数据中台技术汇」栏目推出以来,获得了不少技术极客的喜爱.作为AI驱动的数据中台创导者,深度关注核心算法技术的自研创新.融合探索,故推出全新AI算法栏目「StartDT_AI_Lab」,主要介绍算法 ...
- android 股票数据通过日K获取周K的数据 算法 源码
目前的数据是从新浪接口获取的, http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=sh600000&end ...
随机推荐
- 201709015工作日记--上下文的理解,ASM
1.Android上下文理解 Android上下文对象,在Context中封装一个所谓的“语境”,Activity.Service.Application都继承自Context,所以在这三者创建时都会 ...
- button设置边宽和圆角
UIButton *meifuButton = [UIButton buttonWithType:UIButtonTypeSystem]; [meifuButton setTit ...
- xib创建cell的两种方法
方法一:第一步:[self.collectionView registerNib:[UINib nibWithNibName:@"QGLShareBtnCell" bundle:n ...
- 一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化 ...
- D3_book 7 area
<!-- area的例子csv使用node.js提供的 --> <!DOCTYPE html> <meta charset="utf-8"> & ...
- Internal Server Error - http code 500
Eror Example 1 :
- PHP Functions - arsort()
<?php $characters = array('a','b','c','d','e','f'); arsort($characters); print_r($characters); /* ...
- MAC将 /etc/sudoers文件修改错后的几种解决方法
文件修改错误后难以再次修改的原因: 1.修改此文件必须是root权限 2.此文件出现问题时sudo命令不可用 3.默认情况下MAC系统不启用root用户 解决的方法: 一.启用root用户,使用roo ...
- 你好,Azure DevOps Server 2019;再见,Team Foundation Server
微软正式发布Azure DevOps Server 2019的第一个版本,作为Team Foundation Server (TFS)2018的升级版本和替代产品. 这是目前市面上唯一一款将产品名称冠 ...
- INDEX--创建索引和删除索引时的SCH_M锁
最近有一个困惑,生产服务器上有一表索引建得乱七八糟,经过整理后需要新建几个索引,再删除几个索引,建立索引时使用联机(ONLINE=ON)创建,查看下服务器负载(磁盘和CPU压力均比较低的情况)后就选择 ...