摘要:几周前,作者写了一篇关于旁听Florian Douetteau(FD)采访Olivier Grisel的博文。此篇是采访的第二部分,主要讨论初级数据科学家可以使用的一些技巧和诀窍。

Olivier Grisel(OG)本人在InriaParietal工作,主要研发scikit-learn,使用Python语言编写的最流行的机器学习库之一。OG是机器学习、文本挖掘和自然语言处理领域的专家。大概在几周前,我们的Florian Douetteau (FD)对OG进行了一次访谈,很幸运,我得到这个机会去旁听。

今天,Olivier深入到技术层面进行探讨,他回答了数据科学初学者提出的问题。

不要等待,数据科学从现在开始!

明智地选择大规模

FD:这个问题来自某个机器学习初学者,他不知道该使用哪个框架和算法可以获得更强的扩展能力,你有什么建议呢?

OG:一个很好的规则就是根据你最终必需处理的数据量来抉择,当然还要把未来数据的增量考虑进去。最近,一台配置很好的机器可以有上百G的RAM。当然,原始数据集可能比这更大。一旦你提取了特征并将其转为数值表,你就可以得到更小的数据集,那样你就可以在内存中处理数据并使用scikit-learn运行预测模型。实际上,想要你的系统具有可扩展性,并不意味着你就必须使用MLlib。

大数据基础设施的挑战

FD:人们开始考虑如何管理大量的数据,对于如何得到一个很好的衡量标准,你的建议是什么呢?

OG:在你开始做机器学习之前,从一个基本模型开始很重要。比如,你可以对这些基本模型计算平均值。当你在Spark中做这些基本计算时,你可以看看管道和处理时间,确保在你的模型变得复杂之前,你没有设置一些多余的东西。

我建议他们选择自己数据中的一个子样本,在内存中能装得下,这样就可以使用所有可用的算法来做比较机器学习的分析结果,甚至是那些永远不能部署到整个集群的算法。你要记住,MLlib是通过限制它的算法面板来达到可扩展性功能。这表示它们如今的库并不像R或Python包那样多。子样本总归还是好的,回到小数据世界能确保你遵循正确的方法。

事实上,你也应该这样做,这样你就可以确保当你向你的样本添加更多的数据时,实际上你是在提高你的模型性能。这有利于检查。

将工作分析流程从一种语言(如Python)复制到另一种(如R或Scale),也是个不错的想法。像Data Science Studio这种工具,它使得在同一个数据上使用不同的编程语言设计两个管道变得更加容易。有些操作可能在另一些框架上表现的更自然或者更加高效,而且做这种管道转变训练是建立实践直觉的快速方式。一旦你的两个管道产生了一致的输出,那么你可以去请教经验丰富的同事或者专家朋友来帮你快速地检查下代码。他(她)应该知道如何使你的代码更加高效或更加精简并且避免语法错误。

FD:你可以给出一些你或者你的团队使用scikit-learn运行大数据集的例子么?

OG:这真的取决于我们正在研究和试验中的模型。当样本上升到数以万计的时候,一些模型就会失效。我们团队研究的数据集大概有百万兆字节,但是他们做了大量的预处理和降维操作。

对于缺乏经验的用户,这一点真的必须考虑。如果他们研究的数据集真的足够大,他们可能自然而然地选择使用Spark。但这种方法最终可能会以效率较低而失败告终。如果他们多给予一点思考,原本使用Spark需要消耗CPU几个小时来计算的任务,在笔记本上使用scikit-learn可能5分钟就完成了。实际上每种新的技术都是一把双刃剑。

Python VS R

FD:对于数据科学初学者而言,应该如何选择学习哪种语言和框架呢,你有好的建议么?

OG:个人认为,你必须根据你的喜好来选择,如果你身边有这方面的专家,你还可以依据他的情况而定。在数据科学中,交流可以让你学到更多的知识。如果你去参加聚会或者与其他人报名参加Kaggle比赛,那么你一定要抓住与专家互动交流的机会,这真的很重要。与他们相互交流学习的技巧和诀窍是学习数据科学很好的方式。

之后,将分析思路用另一个框架来表达就更加容易了。如果你掌握了一种语言,这种学习语言的方法是一样的。这一点最重要。这对于像Data Science Studio这种工具也是很有用的。你可以用它在一个环境下尝试不同的语言和技术。当你能轻松的比较结果时,将分析思路从一种语言翻译成另一种语言其实很简单,比如Python和R。

原文发布时间为:2015-10-17

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

数据大师Olivier Grisel给志向高远的数据科学家的指引相关推荐

  1. “中国好创意” CCF全国青年大数据创新大赛启动仪式 暨大数据大师论坛议程...

    "中国好创意"CCF全国青年大数据创新大赛启动仪式暨大数据大师论坛议程 一.活动时间 2015年9月19日(周六) 14:00-15:00 启动仪式 15:30-17:30 大数据 ...

  2. 【2020高考同题征文•全国I卷】志向高远,心胸宽阔

    本篇文章参与「2020高考作文同题征文」比赛,选题为全国Ⅰ卷 法国著名的文学家雨果曾说过:"世界上最宽阔的东西是海洋,比海洋更宽阔的是天空,比天空更宽阔的是人的胸怀".这句话正是我 ...

  3. python有什么含金量高的证书排行_光环大数据分享18张含金量最高的大数据证书...

    光环大数据人工智能培训认为,不管你是基础不牢固没有开发经验的小白,还是有工作经验还想不断提升自己的开发者们,对于想在这个行业有发展,并付诸了实际努力的人,在这样一个发展前景下,未来都是有无限可能的.但 ...

  4. 这场大数据+AI Meetup,一次性安排了大数据当下热门话题

    近年来,随着工业界多年的努力以及新兴技术的不断涌现,数据规模庞大的问题已逐步得到解决,而数据处理的时效性.数据价值的挖掘正成为企业及开发者面临的新的巨大挑战.也因此,大数据计算引擎.AI.数据仓库.数 ...

  5. 数据治理(一):为什么要数据治理

    为什么要数据治理 在大数据各个企业数据积累过程中,很多公司都注重了数据的"量",很少有公司关注数据的"质",仿佛只要有了海量的数据就可以解决所有问题.真实的情况 ...

  6. 2021年大数据Kafka(十):kafka生产者数据分发策略

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 生产者数据分发策略 策略一:用户指定了partition 策 ...

  7. 2021年大数据Hadoop(十):HDFS的数据读写流程

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的数据读写流程 ...

  8. 网页开发 与数据联动的图_零基础学习数据可视化pyecharts人物关系图开发

    Pyecharts人物关系图开发 1. Pyecharts版本说明 Pyecharts的版本最新版本为1.7.0版本,此版本跟0.5版本的使用方法不一样了.很多参数方法配置不一样了.Import的内容 ...

  9. 友盟数据—值得手游创业者关注的玩家数据

    友盟数据-值得手游创业者关注的玩家数据 你知道"辣妈"是什么游戏的忠诚玩家吗?你知道"大龄玩家"都喜好怎样的游戏?你知道哪类玩家最"多金"? ...

最新文章

  1. 面向对象的一个实例 (银行管理系统)
  2. JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
  3. [C#]委托和事件(详细讲解)
  4. ERROR: Resource shrinker cannot be used for libraries报错Android开发之迁移老项目到Android Studio3.0报错的问题解决方法
  5. 一文教你用java实现出租车计价器设计(附下载源码)
  6. java swing 多个线程,Swing与多线程
  7. React Native开发指南-在原生和React Native间通信
  8. 基于java的打砖块游戏_cocos creator 制作的打砖块游戏
  9. 局域网内数据采集总结(三)
  10. Caffe(13)--(SSRNet模型)Keras转Caffe教程
  11. 【网络技术题库整理5】网络安全技术
  12. 正则匹配emoji字符
  13. 常见视频输出接口类型
  14. coreldraw怎样定数等分_cdr怎样将一个圆形平均划分为三等分?
  15. 让HTML img垂直居中的三种办法:
  16. TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)
  17. oracle 物化视图没效果,Oracle物化视图失效的几种情况及测试
  18. 折叠屏手机阵亡,三星的手机梦会不会被彻底折叠?
  19. css3参考文档,css/css3 中文参考文档手册最新版
  20. java case 多个值_Java switch多值匹配操作详解

热门文章

  1. FTP相关命令(手机FTP服务启动应用)
  2. 哈尔滨工程大学微型计算机原理与接口技术,哈尔滨工程大学微机原理与接口技术第2-3讲.ppt...
  3. 190628 - 解决新版本LastPass没有谷歌套件时打开就闪退的问题.md
  4. Android闹钟设置的解决方案
  5. jmeter(二十二)内存溢出原因及解决方法
  6. 【Bug】解决 java.sql.SQLSyntaxErrorException 异常
  7. 如何在浏览器中增加Jupyter / ipython笔记本的单元格宽度?
  8. 有没有更好的方法在JavaScript中执行可选的函数参数? [重复]
  9. JavaScript中数组交集的最简单代码
  10. php7 扩展 性能测试,php7简单性能测试