首页 > 教育学习 > 为什么 > 你同意「数据比算法重要」这个说法吗?

你同意「数据比算法重要」这个说法吗?
2012-01-19 18:58:20   来源:   点击:

    你同意「数据比算法重要」这个说法吗?观点来自这里:anand.typepad.com/datawock...作者说谷歌的强不是强在 PageRank 算法,而在于它是第一个在排名时把链接——而不只是文字和标题——考虑进去的。又以自己教的数据挖掘课为例。他让学生以 Netflix 用户对一万八千多部电影的打分为基础数据,写程序为她们推荐别的电影。其中有组学生的算法较优,另外一组学生算法一般,但使用了外部数据——IMDB 对电影类型的归类。结果第二组的结果胜过了第一组。

    25 个答案

    • 答案 1:

      虽然不能这么绝对的判断一定谁比谁重要,但在实际应用中很多时候的确是数据更加重要。有几方面的原因:

        在很多问题中,算法的『好坏』在没有大量有效数据的支撑下是没有意义的。换句话说,很多算法得到的结果的质量完全取决于其和真实数据的拟合程度。如果没有足够的数据支撑、检验,设计算法几乎等于闭门造车。

        很多算法会有一堆可调参数。这些参数的选择并没有什么标准可依,无非是扔给大量数据,看参数的变化会带来什么样的结果的变化。大量、有效的数据成为优化这类算法的唯一可行方法。

        更极端的例子是,算法本身很简单,程序的完善全靠数据训练。比如神经网络。

        对于很多成熟的算法,优化算法的增量改善通常远小于增大输入数据(这是个经济性的考虑)。

      比如问题中举例的 Google。在它之前的搜索引擎已经把基于网页内容的索引算法做得很好了,要想有更大的改善需要换思路。PageRank 算法的采用大大增加了输入的数据量,而且链接数据本身对于网页排名相当关键(当然他们也做了大量算法的优化)。【插话:在这样的思想指导下,Google 想要插手社交网络或微博也不足为奇了吧?实时搜索、排名没有真人的互动怎么可能。】Netflix 挑战赛的例子中,Netflix 本身的推荐算法也是优化到极致了。再从算法本身去找改进之处,投入产出比太低。引文中的学生仅仅是加入了 IMDB 数据库关于电影分类(从而更加明确观众的偏好)就能带来比复杂算法更加显著的改善,试想如果他们能拿到 Rotten Tomatoes 的数据会怎样?When people are equally smart, big data wins.这个结论的悲摧之处在于,在类似行业中,今后小的创业公司想要打败巨头就不那么容易。要么要改变思路,要么要改变策略。指望靠小聪明扳倒大象会很成问题。当然这也不是绝对的。比如典型的反例(算法比数据重要)是 Google 刚被批准收购的 ITA Software。这家牛 B 烘烘(估计是现存最大的 Lisp shop)的公司的机票搜索引擎驱动着世界各大航空公司、票务中介的后台系统。它的数据来自一个各大航空公司授权的公司,其他竞争者也可以花钱(虽然不便宜)买到同样的数据。但它的牛 B 之处在于能从同样的数据里比别人更快挖出更好的结果。
    • 答案 2:

      我强烈同意数据比算法重要!虽然我们可以打官腔说这两个同样重要,但如果是一个资深的机器学习和数据挖掘研究人员,绝对不会掩饰他们对数据的渴望,当然对他们来说设计好的算法是很容易的,但好的数据却是不容易拿到的。
    • 答案 3:

      数据比算法更重要,这是有一定道理的,但是在拿它当信条之前,必须知道在什么场景下它有道理。所有的格言都一样,是对态度简短有力的描述,但因为简短,就不可能全面。比如“成功在于坚持”,当然有道理,但不加分析地事事坚持,就很没道理了。数据比算法更重要,它的意义在于告诉我们,在试图设计更复杂的算法去提高性能之前,先看看有没有办法收集更多的、质量更高的数据,因为这往往是提高性能更简洁有效的手段。另外,除了先验知识外,算法能达到的最佳性能,受限于数据所提供的有用信息容量,当算法性能接近这个容量时,不管你再怎么改进算法,基本都没有意义了,唯一的手段就是去获得更多有用的数据。但要注意的是,这句话的意思决不是说算法没有用,或者没有必要去研究算法,好的算法之所以好就在于它能充分地利用数据,如果你的算法根本就不能有效利用数据,获取再多的数据也是徒劳。具体到Anand Rajaraman的帖子,我记得Netflix Prize获奖团队主要成员Yehuda Koren有一个评论:在他们的实验里,IMDB的数据根本没用。因为IMDB的数据主要能用来描述item-item关系,如果Netflix Prize竞赛中这方面数据稀疏,那IMDB的数据就是很好的补充。但是Netflix Prize竞赛中,item数量只有不到两万,提供的数据已经足够构建item-item关系,根本用不着IMDB的数据。Netflix Prize竞赛中数据的不足主要在于user-item关系得不到充分描述,因为user数量太大了(50万?)。刚才看了看帖子,没有找到这条评论,可能是在别人转述的帖子上Yehuda Koren做了评论。
    • 答案 4:

      程序 = 数据结构 + 算法,数据结构用来干啥的,装数据的呀。 数据能干啥?数据是信息的源泉,没有足够的数据,就没有信息,信息技术没有信息啥都没有。 算法能干啥?把数据中信息提取出来,不经过提取,数据还是数据,变不成有用的信息。 这俩不是并列的关系,而是一体的,如何能说谁重要呢?脑子重要还是心脏重要,你给我说说。 此外,数据的好坏如何衡量?不是越多越好,当然数据越多往往所蕴含的信息越大,这个容易看得出来;算法的好坏如何衡量?不是越复杂约好,能从海量的垃圾中找到有用的信息的算法就是好的算法,虽然不这么复杂,不是所有的人都能看到这点。 我最想说的是什么?如果不是事不关己的旁观者,数据往往是自己能拿到最多的数据,然后根据自己的这些数据去找最合适的算法。
    • 答案 5:

      我认为算法和数据不能割裂开来看。宽泛一点说,考虑采用什么样的数据也是算法设计中的一部分。
    • 答案 6:

      严格角度讲,数据重要,算法也重要。但是,我觉得大多数情况下,数据更加重要。第一,算法对于整个研究领域而言是相对透明的,你能想到的方法别人也可以想到,一般成熟的算法都是已经提出来两三年的,是业界公认的;第二,数据往往更加事倍功半,算法改进很难(如果已经有一定基础的话),但是,如果能得到优质数据,一旦数据量达到原来数倍甚至更多的增加,发现效果会得到十分明显的改善;第三,优质的数据往往能为算法提供方向,甚至直接驱动需求;机器学习领域常出现这样的情况,在一个数据集上得到的结论往往在一个更大更复杂的数据集上变得不同(有人做过实验,采用一种公认很差的算法能在一些曾经被使用的比较toy的数据集上取得比好算法差不多甚至更好的效果),所以,好的接近实际应用的数据集才能告诉什么是真正好的算法;而对实际数据分析的结果往往会改变我们固有的对主要问题的观念,就是你觉得重要的不一定重要,你没注意的反而是影响问题的最重要因素。第四,好算法常有而优质数据不常有;看论文总是可以看到更多更好的idea,但是优质数据(比如淘宝)却是可遇而不可求;
    • 答案 7:

      数据可以直接卖钱,算法要等算出数据才能卖钱。
    • 答案 8:

      还是不要这么比较吧,意义不大。具体问题要具体分析。虽然我这说了和没说一样,我只是不同意这样做这样的比较。
    • 答案 9:

      借用一个比方,要做鱼香肉丝,算法是菜谱,数据是里脊胡萝卜。没有菜谱,做出来的可能是锅包肉或溜肉段,但做不出来锅包肉;反过来,没有原料肯定不行,原料多了,存在进一步改良菜谱的可能,锅包肉有了新的口味。理解了二者的关系就足够了,非要分清谁更重要,图什么呢?
    • 答案 10:

      算法和数据是一件事的多个面,您举的例子里,我看到的主要评价标准就是“数据挖掘结果的有效性”这一点。而从其中拆分出的“算法 和 数据 孰轻孰重”的问题似乎是要在一元标准上建立两个主次标准,我认为这样做只会让这件事更糊涂。 如果想知道现在的时间,最好只看一个表。对于做事来说,就是只选择一个参照系来做评判,即使所选择的参照系(“表”)不太准,你也能得到一个比较清晰的结论。如果再拆分出更多的“表”来评价这件事,不仅把问题复杂化了,也增加了很多无效的思考工作。在很多领域其实都会出现这种现象,比如有的老板认为绩效需要考勤作为基础,为了提高绩效而抓员工的考勤,从而制定出考勤+绩效的双重考核标准,这样看起来很科学,实际上更多只是徒增了管理成本,我认为这是费力不讨好的。
    • 答案 11:

      LZ的问题就好像 厨艺和食材哪个重要。。
    • 答案 12:

      巧妇难为无米之炊,没有数据,再牛b的算法也是没有意义的。
    • 答案 13:

      想起了以前看过的一篇论文,在big data的数据集,简单算法也可以达到比较理想的效果
    • 答案 14:

      对于同一算法f,性能如下递增f(x) 数据:xf(x+) 海量数据:x+f(x*) 好的衍生数据:x*f(x+*) 海量好的衍生数据:x+*选择什么算法f,看问题复杂性和效率的重要与否。不过当有海量好的衍生数据,好的算法带来的改善不会太明显。另外,挖掘出好的数据(feature engineering,mining...)是一个费时费力试错的工作,非常依赖与你的洞察力和采用的算法。
    • 答案 15:

      实际应用中,算法为数据服务。现在看来,数据为王是一个大势。很多领域,因为数据量的问题,已经渐渐变成大企业才能玩得转的了。
    • 答案 16:

      问题类似 好的食材重要,还是好厨具重要?看似都重要,不过说实话,好食材比好厨具稀缺多了。不过对于大数据集,研究的组合有无限多种,先确定要自己要分析什么比较重要。
    • 答案 17:

      算法就那么多,数据却不是想要就能有的,于是这个说法在多数情况下就成立了。要是能无条件获得到互联网的任意数据就无敌了...
    • 答案 18:

      一个是雪中送炭,一个是锦上添花。没有诸葛亮,只有一群臭皮匠难成大器;有了诸葛亮,却不能充分发挥其才能,也是白瞎
    • 答案 19:

      没有绝对的东西,要看在什么条件下
    • 答案 20:

      在一堆繁杂的数据面前,好的算法尤为重要,没有算法,你压根不知道这一堆是啥东西!
    • 答案 21:

      让人啼笑皆非的描述,因为算法,其实是处理数据的(广义的)。 存在两个过程,数据的表述和数据的处理(流动),这从来就不是谁重要谁不重要的问题,而是缺了谁,就没法运行的问题。
    • 答案 22:

      我认为这两者不能直接比较,并且这两者的比较没有意义。只是可能来说,在不同阶段数据显得更重要,而另外的阶段如何做好算法则是更重要了。
    • 答案 23:

      在数据挖掘领域当然是数据更重要。在解决大部分工程性问题的时候,数据结构往往比算法分析更实用。因此似乎很容易得出数据比算法重要的结论,但算法更多体现的是一种思想,是一种思考并解决问题的方法,数据结构的选择更是这种思想的体现。
    • 答案 24:

      很显然这种说法是不科学的。
    • 答案 25:

      不同意这么绝对的说法. 算法必须有数据才能执行, 问题是没了算法数据就是垃圾

相关热词搜索:

上一篇:PHP如何上传1G以上的文件?
下一篇:一男同学刚当爹,送啥礼物好?