• 华为云夺得信息检索权威竞赛WSDM Cup 2020金牌,参赛方案全解读
    近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领来自华南理工大学、华中科技大学、江南大学、武汉大学的四位学生组成的联合团队“Xiong团队”,摘得WSDM Cup 2020大赛“论文引用意图识别任务”金牌(Gold Medal)。WSDM被誉为全球信息检索领域最有影响力也最权威的会议之一,会议关注社交网络上的搜索与数据挖掘,尤其关注搜索与数据挖掘模型、算法设计与分析、产业应用和提升准确性与效果的实验分析。今年已经是WSDM的第十三届会议。本文将详细介绍本次获奖的解决方案。1、背景几个世纪以来,社会技术进步的关键在于科学家之间坦诚的学术交流。新发现和新理论在已发表的文章中公开分发和讨论,有影响力的贡献则通常被研究界以引文的形式认可。然而,随着科研经费申请竞争日趋激烈,越来越多的人把学术研究当成一种资源争夺的手段,而不是单纯为了推动知识进步。部分期刊作者“被迫”在特定期刊中引用相关文章,以提高期刊的影响因子,而论文审稿人也只能增加期刊的引用次数或h指数。这些行为是对科学家和技术人员所要求的最高诚信的冒犯,如果放任这种情况发展,可能会破坏公众的信任并阻碍科学技术的未来发展。因此,本次WSDM Cup 2020赛题之一将重点放在识别作者的引文意图:要求参赛者开发一种系统,该系统可以识别学术文章中给定段落的引文意图并检索相关内容。  华为云语音语义创新Lab在自然语言处理领域有着全栈的技术积累,包括自然语言处理基础中的分词、句法解析,自然语言理解中的情感分析、文本分类、语义匹配,自然语言生成,对话机器人,知识图谱等领域。其中和本次比赛最相关的技术是语义匹配技术。Xiong团队通过对赛题任务进行分析,针对该问题制定了一种“整体召回+重排+集成”的方案,该方案以轻量化的文本相似度计算方法(如BM25等)对文章进行召回,然后基于深度学习的预训练语言模型BERT等进行重排,最后通过模型融合进行集成。2、赛题介绍本次比赛将提供一个论文库(约含80万篇论文),同时提供对论文的描述段落,来自论文中对同类研究的介绍。参赛选手需要为描述段落匹配三篇最相关的论文。例子:描述:An efficient implementation based on BERT [1] and graph neural network (GNN) [2] is introduced.相关论文:[1] BERT: Pre-training of deep bidirectional transformers for language understanding.[2] Relational inductive biases, deep learning, and graph networks.评测方案:3、数据分析本次赛题共给出80多万条候选论文,6万多条训练样本和3万多条本测试样本,候选论文包含paper_id,title,abstract,journal,keyword,year这六个字段的信息,训练样本包含description_id,paper_id,description_text这三个字段的信息,而测试数据则给出description_id和description_text两个字段,需要匹配出相应的paper_id。我们对数据中候选论文的title,abstract以及描述文本的长度做了一些统计分析,如图1所示,从图中我们可以看到文本长度都比较长,并且针对我们后续的单模型,我们将模型最大长度从300增加到512后,性能提升了大约1%。图1 候选论文的Title(a),Abstract(b)以及描述文本(c)的长度分布4、整体方案我们方案的整体架构如图2所示,整体方案分为四个部分:数据处理,候选论文的召回,候选论文的重排以及模型融合。图2 整体方案架构(部分图引自[5])4.1 数据处理通过观察数据我们发现,在标题给出的描述语句中,有许多相同的描述文本,但是参考标记的位置却不同。也就是说,在同一篇文章中,不同的句子引用了不同的论文。为此,我们抽取句子中引用标记位置处的语句作为新的描述语句生成候选集。如表1所示,我们选取描述中[[**##**]]之前的句子作为描述关键句。Description   TextExtracted   Key SentenceRat   brain membrane preparation and opioid binding was performed as described   previously by Loukas et al. [[**##**]]. Briefly,   binding was performed in Tris-HCl buffer (10 mM, pH 7.4), in a final volume   of 1.0 ml. The protein concentration was 300 μg/assay.Rat brain   membrane preparation and opioid binding was performed as described previously   by Loukas et al.表1 描述关键句生成4.2候选论文召回如图3所示,我们运用BM25和TF-IDF来进行论文的召回,选取BM25召回的前80篇论文和TF-IDF召回的前20篇论文构成并集组成最终的召回论文。图3 召回示意图4.3候选论文重排在本方案中,我们用BERT模型作为基础模型,BERT是一种能在基于查询的文章重排任务中取得良好性能的语义表示模型。通过观察数据发现,论文主要数据生物医学领域,于是我们聚焦到采用生物医学领域数据训练预训练模型。然后将查询与描述字段以句子对的形式输入进BERT模型进行训练。我们的实验表明,在该任务上,单个的BioBERT的性能要比BERT性能高5个百分点。如图4为BioBERT的结构图。图4 BioBERT结构图 (图引自[6])4.4 模型融合在模型融合的过程中,我们运用了6种共9个经过科学和生物医药语料库训练的预训练模型分别为:BioBERT_v1.1* 3, BioBERT_v1.0_PubMed_PMC * 2, BioBERT_v1.0_PubMed* 1,BioBERT_v1.0_PMC * 1, BioBERT_dish*1,SciBERT* 1。他们的单模型在该任务中的性能如表2所示。表2 单模型性能MethodMAP@3BioBERT_v1.10.394BioBERT_v1.0_PubMed_PMC0.391BioBERT_v1.0_PubMed0.382BioBERT_v1.0_PMC0.380SciBERT0.374BioBERT_dish [10]0.365Blended Model0.407然后我们对单模型输出的概率结果进行blending操作如图5所示,得到最后的模型结果,其比最好的单模型结果提升了1个百分点左右。图5 模型融合5、总结与展望本文主要对比赛中所使用的关键技术进行了介绍,如数据处理,候选论文的召回与重排,模型融合等。在比赛中使用专有领域训练后的预训练模型较通用领域预训练模型效果有较大的提升。由于比赛时间的限制,许多方法还没来得及试验,比如在比赛中由于正负样本不平衡,导致模型训练结果不理想,可以合理的使用上采样或下采样来使样本达到相对平衡,提升模型训练效果。参考文献[1] Yang W, Zhang H, Lin J. Simple applications of BERT for ad hoc document retrieval[J]. arXiv preprint arXiv:1 03.10972, 2019.[2] Gupta V, Chinnakotla M, Shrivastava M. Retrieve and re-rank: A simple and effective IR approach to simple question answering over knowledge graphs[C]//Proceedings of the First Workshop on Fact Extraction and VERification (FEVER). 2018: 22-27.[3] Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:18 02.05365, 2018.[4] Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9.[5] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. (2018) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805,.[6] Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, Jaewoo Kang,(2019) BioBERT: a pre-trained biomedical language representation model for biomedical text mining, Bioinformatics,[7] Iz Beltagy, Kyle Lo, Arman Cohan. (2019) SciBERT: A Pretrained Language Model for Scientific Text, arXiv preprint arXiv:1903.10676SciBERT: A Pretrained Language Model for Scientific Text, arXiv preprint arXiv:1903.10676, 2019.[8] Nogueira R, Cho K.(2019) Passage Re-ranking with BERT. arXiv preprint arXiv:1901.04085.[9] Alsentzer E, Murphy J R, Boag W, et al. Publicly available clinical BERT embeddings[J]. arXiv preprint arXiv:1904.03323, 2019.
  • 华为云夺得信息检索权威竞赛WSDM Cup 2020金牌,参赛方案全解读
    近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领来自华南理工大学、华中科技大学、江南大学、武汉大学的四位学生组成的联合团队“Xiong团队”,摘得WSDM Cup 2020大赛“论文引用意图识别任务”金牌(Gold Medal)。WSDM被誉为全球信息检索领域最有影响力也最权威的会议之一,会议关注社交网络上的搜索与数据挖掘,尤其关注搜索与数据挖掘模型、算法设计与分析、产业应用和提升准确性与效果的实验分析。今年已经是WSDM的第十三届会议。本文将详细介绍本次获奖的解决方案。1、背景几个世纪以来,社会技术进步的关键在于科学家之间坦诚的学术交流。新发现和新理论在已发表的文章中公开分发和讨论,有影响力的贡献则通常被研究界以引文的形式认可。然而,随着科研经费申请竞争日趋激烈,越来越多的人把学术研究当成一种资源争夺的手段,而不是单纯为了推动知识进步。部分期刊作者“被迫”在特定期刊中引用相关文章,以提高期刊的影响因子,而论文审稿人也只能增加期刊的引用次数或h指数。这些行为是对科学家和技术人员所要求的最高诚信的冒犯,如果放任这种情况发展,可能会破坏公众的信任并阻碍科学技术的未来发展。因此,本次WSDM Cup 2020赛题之一将重点放在识别作者的引文意图:要求参赛者开发一种系统,该系统可以识别学术文章中给定段落的引文意图并检索相关内容。  华为云语音语义创新Lab在自然语言处理领域有着全栈的技术积累,包括自然语言处理基础中的分词、句法解析,自然语言理解中的情感分析、文本分类、语义匹配,自然语言生成,对话机器人,知识图谱等领域。其中和本次比赛最相关的技术是语义匹配技术。Xiong团队通过对赛题任务进行分析,针对该问题制定了一种“整体召回+重排+集成”的方案,该方案以轻量化的文本相似度计算方法(如BM25等)对文章进行召回,然后基于深度学习的预训练语言模型BERT等进行重排,最后通过模型融合进行集成。2、赛题介绍本次比赛将提供一个论文库(约含80万篇论文),同时提供对论文的描述段落,来自论文中对同类研究的介绍。参赛选手需要为描述段落匹配三篇最相关的论文。例子:描述:An efficient implementation based on BERT [1] and graph neural network (GNN) [2] is introduced.相关论文:[1] BERT: Pre-training of deep bidirectional transformers for language understanding.[2] Relational inductive biases, deep learning, and graph networks.评测方案:3、数据分析本次赛题共给出80多万条候选论文,6万多条训练样本和3万多条本测试样本,候选论文包含paper_id,title,abstract,journal,keyword,year这六个字段的信息,训练样本包含description_id,paper_id,description_text这三个字段的信息,而测试数据则给出description_id和description_text两个字段,需要匹配出相应的paper_id。我们对数据中候选论文的title,abstract以及描述文本的长度做了一些统计分析,如图1所示,从图中我们可以看到文本长度都比较长,并且针对我们后续的单模型,我们将模型最大长度从300增加到512后,性能提升了大约1%。图1 候选论文的Title(a),Abstract(b)以及描述文本(c)的长度分布4、整体方案我们方案的整体架构如图2所示,整体方案分为四个部分:数据处理,候选论文的召回,候选论文的重排以及模型融合。图2 整体方案架构(部分图引自[5])4.1 数据处理通过观察数据我们发现,在标题给出的描述语句中,有许多相同的描述文本,但是参考标记的位置却不同。也就是说,在同一篇文章中,不同的句子引用了不同的论文。为此,我们抽取句子中引用标记位置处的语句作为新的描述语句生成候选集。如表1所示,我们选取描述中[[**##**]]之前的句子作为描述关键句。Description   TextExtracted   Key SentenceRat   brain membrane preparation and opioid binding was performed as described   previously by Loukas et al. [[**##**]]. Briefly,   binding was performed in Tris-HCl buffer (10 mM, pH 7.4), in a final volume   of 1.0 ml. The protein concentration was 300 μg/assay.Rat brain   membrane preparation and opioid binding was performed as described previously   by Loukas et al.表1 描述关键句生成4.2候选论文召回如图3所示,我们运用BM25和TF-IDF来进行论文的召回,选取BM25召回的前80篇论文和TF-IDF召回的前20篇论文构成并集组成最终的召回论文。图3 召回示意图4.3候选论文重排在本方案中,我们用BERT模型作为基础模型,BERT是一种能在基于查询的文章重排任务中取得良好性能的语义表示模型。通过观察数据发现,论文主要数据生物医学领域,于是我们聚焦到采用生物医学领域数据训练预训练模型。然后将查询与描述字段以句子对的形式输入进BERT模型进行训练。我们的实验表明,在该任务上,单个的BioBERT的性能要比BERT性能高5个百分点。如图4为BioBERT的结构图。图4 BioBERT结构图 (图引自[6])4.4 模型融合在模型融合的过程中,我们运用了6种共9个经过科学和生物医药语料库训练的预训练模型分别为:BioBERT_v1.1* 3, BioBERT_v1.0_PubMed_PMC * 2, BioBERT_v1.0_PubMed* 1,BioBERT_v1.0_PMC * 1, BioBERT_dish*1,SciBERT* 1。他们的单模型在该任务中的性能如表2所示。表2 单模型性能MethodMAP@3BioBERT_v1.10.394BioBERT_v1.0_PubMed_PMC0.391BioBERT_v1.0_PubMed0.382BioBERT_v1.0_PMC0.380SciBERT0.374BioBERT_dish [10]0.365Blended Model0.407然后我们对单模型输出的概率结果进行blending操作如图5所示,得到最后的模型结果,其比最好的单模型结果提升了1个百分点左右。图5 模型融合5、总结与展望本文主要对比赛中所使用的关键技术进行了介绍,如数据处理,候选论文的召回与重排,模型融合等。在比赛中使用专有领域训练后的预训练模型较通用领域预训练模型效果有较大的提升。由于比赛时间的限制,许多方法还没来得及试验,比如在比赛中由于正负样本不平衡,导致模型训练结果不理想,可以合理的使用上采样或下采样来使样本达到相对平衡,提升模型训练效果。参考文献[1] Yang W, Zhang H, Lin J. Simple applications of BERT for ad hoc document retrieval[J]. arXiv preprint arXiv:1 03.10972, 2019.[2] Gupta V, Chinnakotla M, Shrivastava M. Retrieve and re-rank: A simple and effective IR approach to simple question answering over knowledge graphs[C]//Proceedings of the First Workshop on Fact Extraction and VERification (FEVER). 2018: 22-27.[3] Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:18 02.05365, 2018.[4] Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9.[5] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. (2018) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805,.[6] Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, Jaewoo Kang,(2019) BioBERT: a pre-trained biomedical language representation model for biomedical text mining, Bioinformatics,[7] Iz Beltagy, Kyle Lo, Arman Cohan. (2019) SciBERT: A Pretrained Language Model for Scientific Text, arXiv preprint arXiv:1903.10676SciBERT: A Pretrained Language Model for Scientific Text, arXiv preprint arXiv:1903.10676, 2019.[8] Nogueira R, Cho K.(2019) Passage Re-ranking with BERT. arXiv preprint arXiv:1901.04085.[9] Alsentzer E, Murphy J R, Boag W, et al. Publicly available clinical BERT embeddings[J]. arXiv preprint arXiv:1904.03323, 2019.
  • 华为云获DigSci科学数据挖掘大赛冠军
    近日,华为云在文本检索领域取得进展,基于自然语言处理领域的领先技术积累,华为云语音语义创新Lab在DigSci科学数据挖掘大赛上夺冠,精准率超过第二名5个百分点。DigSci科学数据挖掘大赛是清华AMiner、智源实验室、微软联合举办的学术论文搜索匹配大赛,属于语义匹配检索领域,旨在从学术材料中挖掘知识。比赛提供一个约含20万篇论文的论文库,同时提供对论文的文字描述,描述来自论文中对同类研究的介绍,参赛选手需要为描述段落匹配三篇最相关的论文。本次比赛吸引了来自包括清华、北大、浙大、复旦等全国著名高校和企业组成的100多支专业队伍参加。学术论文是人类最前沿的知识载体,通过自然语言处理技术,自动识别一段文本描述最相关的论文,可以在学术搜索、科研知识图谱、科研自动问答系统、科研自动摘要等领域落地。本次比赛的难点在于给定描述段落匹配的一篇论文(正样本),在没有负样本的情况下要求参赛者给出一个描述段落最匹配的三篇论文。参赛者需要从大规模论文库中匹配最相关的论文,涉及到语义表示、语义检索等技术难点。如何缩小搜索范围以及如何确保缩小的搜索范围包含了与描述匹配的论文成为比赛的关键技术。华为云联合武汉大学、重庆邮电大学,凭借华为云语音语义创新Lab在自然语言处理领域深厚的技术积累,采用了候选训练集自动生成、自动特征抽取和选择、深度学习文本匹配算法、模型融合集成等技术。华为云自然语言处理专家提出的候选训练集自动生成技术对模型取得优异结果起到了关键作用。该技术针对一个描述段落,自动从大规模论文库中生成一个候选训练集合,并通过语义表示和语义匹配确保候选集中包含了待匹配论文。同时采样负样本,构建出均衡的正负样本集合用于训练有监督的深度语义匹配模型。华为云获DigSci科学数据挖掘大赛冠军
  • [上云精品] 【国云数据】高校商科类专业要教大数据,实验课程怎么办?
    苏州国云数据科技有限公司国云数据是中国顶级的大数据技术服务运营商,拥有国家自主可控并国际领先大数据技术和产品,旗下有世界领先的大数据操作系统,致力于让人人都能使用数据,专注于帮助一流企业和政府大数据规划和实践,逐步走向国际化的中国大数据民族品牌。国云数据由原阿里巴巴数据部门核心成员于2011年创立,拥有北京、河南、内蒙古等多个子公司与研发中心,拥有百余多项大数据技术著作权和专利。旗下大数据分析平台:有11万企业客户使用,旗下大数据实验平台有100多所高校在使用,同时面向政府的大数据交换共享、分析挖掘、应用服务平台,已在贵州、内蒙、苏州、北京、部委、公安、工业等省和市使用。国云教育是国云数据旗下品牌和垂直事业部,专注于为高校提供大数据分析应用类教学、科研、培训等一体化平台和解决方案,包含大数据分析应用实验平台环境,大数据经管类专业课程开发,大数据师资培训和数据分析技能竞赛等内容。目前已服务包括安徽大学、华东师范大学、哈尔滨商业大学、无锡职业技术学院、武汉职业技术学院等100多家本科和高职院校。国云数据在商科大数据人才培养方面的优势大数据分析应用实训平台介绍大数据分析应用实验列表和商科数据课程体系增值服务:大数据分析比赛增值服务:大数据分析师资培训
  • [产品体验官] 华为云MapReduce产品体验及评测-from lily-广州-数据挖掘
         首先非常感谢华为提供机会参与到华为MapReduce产品体验及评测,但是由于时间紧,评测的不够仔细,只能粗浅的说说自己的一些想法,欢迎拍砖。          体验《使用Spark实现车联网车主驾驶行为分析》。1.操作体验:是否能够顺畅的创建集群,提交作业,跑组件的样例程序顺畅度:用户体验:文档操作和视频都需要在新版的首页中迭代啦,例如登录“公有云管理控制台”,在首页搜索框中按关键词搜索和下拉菜单中都没有找到公有云管理控制台路径。再仔细看视频的操作路径也是需要迭代的。最后通过搜索“统一身份认证服务”才行。IAM配置明明已经配置好了,在购买接入通道的时候还是需要委托2.性能:您在体验过程中使用了哪些组件,跟自己搭建CDH,或者用过友商的对标组件相比,性能如何?暂无比较3.功能特性:对比体验官用过的其他大数据平台,是否有哪些功能需要补齐或加强?提高连贯性。在日常的工作中,特别是这种傻瓜式的好产品,需要提供一站式操作页面。例如我在做这个例子的时候,需要打开无数个窗口,操作连贯性不是特别好数据存储和处理只是前期工作,如何将处理后的数据,连惯的在系统中进行下一步的分析挖掘和可视化提供动态的可视化组件,例如一键生成大屏4.满意度及推荐度:当自己的项目或是公司有大数据应用的需求时,是否愿意自己使用或推荐身边的同事朋友使用华为云MRS服务?什么原因促使你做出这个结论?愿意老板信任华为等国内企业的云,公司硬件设备为华为华为技术功底扎实,可靠PS:论坛有个bug,最后几行我设置的明明是绿色字体,最后发表出来是黑色字体
  • [产品体验官] 华为云开源软件镜像站体验
        华为云开源软件镜像系统包含了很多常用的软件,如Atom、Electron等常用工具软件,CentOS、Debian、Fedora等系统镜像。本次测评主要针对语言类开发组建测评,包括Maven、SBT、PHP、NuGet、NPM。        一、Maven镜像软件使用体验测评:常用语言类镜像软件在首页就能找到,可见推荐算法非常智能且高效,提高用户查找软件的速度;通过分类搜索,极大的提高了不同需求用户查找软件的速度;虽然网速只有1M,但是网业响应速度非常快。建议:分类比较粗略,如果一款软件可以对应多个标签,那么用户通过选择标签来快速查找需要的软件镜像。        二、STB镜像软件使用体验同样是在官网,在搜索栏输入SBT,可以很快搜索出SBT软件镜像,搜索速度非常快。sbt全称为Simple build tool,是Scala的标准构建工具。点击SBT进入下载页面。从图中可以看出,网业显示中的STB的仓库配置文件中没有定义通信协议地址。在下载文件中定义了HTTP通信协议,如下图所示。体验:       建议尽量通过下载配置文件的方式下载镜像软件。建议:       修改网业页面的STB配置文件问题。        三、PHP镜像软件体验在官网上搜索php就可以找到对应的语言镜像软件,搜索速度十分快,如下图所示。如上图所示,可以通过两种方式下载该软件:在终端通过命令行下载,或是在IDE中配置json文件来下载软件。如果需要安装composer软件可以从窗口下面的相关网址找到该软件的下载地址,使用非常方便,设计非常人性化。        四、NPM镜像软件体验    在华为云镜像的主页搜索NPM会搜索到下面三个软件镜像,io.js\NPM\NPM-Sotfware. 体验:显然,搜索引擎不但可以按软件名字进行搜索,同时还可以在软件介绍中匹配关键字,找到相关的软件,用户搜索非常方便!每一款软件下面都有更新时间,实时提醒用户该软件的更新情况,对于一些频繁更新的软件来说,这样的设置非常人性化!建议:虽然有点赞效果,但是并没有意见反馈留言板,并不能很好的了解用户对该软件的好评与建议。从相关网站网址中可以看到,推送的各种相关软件,有Js\Python\Selenium等,这些软件的相关度非常高,可以很好的涵盖数据分析、数据挖掘、数据可视化等岗位需求。这些软件无一例外都是官网的软件,能否换成华为云镜像软件呢?从相关网站网址中可以看到,推送的各种相关软件,有Js\Python\Selenium等,这些软件的相关度非常高,可以很好的涵盖数据分析、数据挖掘、数据可视化等岗位需求。这些软件无一例外都是官网的软件,能否换成华为云镜像软件呢?
  • 清华大学基于华为云高性能计算解决方案完成癌症基因组学大数据分析项目
    清华大学基于华为云高性能计算解决方案完成癌症基因组学大数据分析项目 近期,清华大学生命科学学院杨雪瑞课题组基于华为云HPC基因组学大数据分析解决方案,完成了二十余种癌症的转录调控网络构建。华为云针对项目的大规模计算需求进行了个性化配置,极大的减少计算时间,从海量癌症多组学数据中挖掘基因转录调控通路,向揭示癌症发生发展机制又迈进了一大步。 该项目主要是为了探索在癌症进程中,转录因子(TFs)、靶基因(target genes)、长链非编码RNA(lncRNAs)三者之间的调控关系,构建转录调控网络;并基于该网络揭示癌症的发生发展机制,同时比较不同癌症中转录调控网络的异同。近年来,随着基因测序数据的不断积累和壮大,长链非编码RNA(lncRNAs)不断被发现并且执行了重要的生物学功能。因此在传统的转录因子和靶基因的调控关系中加入长链非编码RNA的因素,构建新型的转录调控网络,为探索癌症的发生过程和调控机制提供了新的可能。 基于华为云成熟的HPC解决方案,为该项目提供了极具针对性的资源配置优化,实现了大规模计算资源的合理分配,不仅实现了高效率计算,还节省了30%以上的时间成本。 当前华为云HPC基因测序方案,可提供基于FPGA测序加速的基因测序主机、基于超高IO块存储构建的lustre集群,以及超高上传下载性能的OBS browser工具和120TB大容量传送立方数据快递服务。相比传统基因测序流程可缩短5倍的测序时间,综合成本可降低40%。 清华大学生命科学学院有着悠久的历史,在科学研究、学科建设和人才培养方面都有着强大的优势,已发展成为我国最具特色和最有影响力的生命科学科研和教学基地之一。以基因组学为重要研究内容之一的计算生物学是学院的重要发展方向,而相关研究的深入也对高性能计算资源提出了大量迫切的需求。 测序行业的持续繁荣和测序数据的快速增长对平台的计算能力以及数据安全都提出了更大的挑战。未来,随着测序技术的不断发展,华为云将联合科研伙伴一起不断推动基因行业的发展和进步。
  • 分享:我的第一次数据科学家实习经历
    「数据科学家」可谓是近几年的一大热门职位,很多学习了数学、信息、计算机相关专业的同学都对它表示跃跃欲试。Admond Lee 学习了物理专业,曾参加瑞典欧洲核子研究中心(CERN)的物理夏令营,而今他也走上了数据科学家的道路。近期他撰文回忆了自己的数据科学家实习经历,编译如下。[/backcolor]Admond Lee:[/backcolor]在写本文时,正是我在 Quantum Invention 做数据科学家实习生的倒数第二天。此刻,我坐在笔记本电脑屏幕前,再回想起过去几个月的学习历程,非常艰辛但充满成就感。[/backcolor]旅程总有终点,但问题长存[/backcolor]––––你学到了什么?这就是你想要的吗?[/backcolor]作为一个搞物理的人,请原谅我总是问正确的问题,以适当的回答来寻求真理。[/backcolor]事实上,作为一个数据科学家,提出正确的问题毫无疑问是重要的(后面将会解释…)[/backcolor]给你们大致介绍下,这篇文章主要分为三个部分(实习前、实习期间和实习后)来讲述我的实习旅程的经历。根据你的目前的学习阶段可跳转到任意部分。让旅程开始吧![/backcolor]谢谢您!当我在 Medium 上发表的第一篇文章时,我情绪高涨。因为其受到了非常多人的大力支持,甚至因其特色而发表在了 towardsdatascience.com 。这真的成为我继续与更多的人分享我的学习经验的动力,仅仅是因为学习乐趣,帮助他人变得更好![/backcolor]实习之前[/backcolor]我仍然清楚地记得,在 2017 年 11 月我的期末考试结束后,我开始阅读课本,《统计机器学习入门—R语言的应用》。这是我在基本和统计层面上第一次接触到机器学习。[/backcolor]一旦我掌握了这些概念,我就开始学习一门流行的课程,那就是吴恩达在慕课上教的《机器学习》课程。一开始课程内容并没有大家预想的那么容易,但是吴恩达却一直能抓住大家的注意力,尽管许多概念都很复杂,但都能被他简化以便于理解消化,似乎没有其他人能做到。我想这就是我真正学会机器学习的原因。我敢打赌,试一试你就会知道机器学习这个热门词汇并不像听起来那么复杂。[/backcolor]同时,我还学习了人工智能的另一个重点领域––––深度学习。回顾一下,这个看似外来用语其究竟是什么含义,请看神经网络的解释以及神经网络可用来计算任何函数。好了,如果读完了推荐的文章之后,还像我一样,总是需要某种可视化以了解事物是如何工作的,那就请点击这里,按「播放」按钮,坐下来,放松,观察神经网络是如何用来做分类和回归的。很酷,不是吗?[/backcolor]所有的阅读、学习和作业都为我 2017 年 12 月的实习做好了准备。[/backcolor]实习期间[/backcolor]我申请的 Quantum Invention 公司致力于利用其集成的移动性应用套件、企业物流与分析平台向消费者、企业和政府提供移动性情报。而我是第一个加入 R&D 和分析团队的数据科学家实习生。[/backcolor]在接下来的几天里,我认识了许多同事,了解到各种行业术语,以及正在进行的令人兴奋的项目。实习过程中我最喜欢的一点是信任和自由,作为实习生我可以自由选择我感兴趣的项目并全力以赴![/backcolor]令我惊讶的是,我意识到我是第一个开始这个项目的人,因为以前没有人这么做过。当没有人做过某事时,就需要研究,这是我感激的地方,尽管带有不确定性和困难。为什么?仅仅因为我有机会体验从零开始进行数据科学工作的整个流程(如果不是全部)。[/backcolor]请允许我列出我所经历过的这些工作流程,因为这些建立了我的数据科学基础。我希望你在某一天发现它有用。[/backcolor]1. 了解商业问题[/backcolor]所选择的项目是短期高速公路行驶时间预测。看起来似乎非常简单,然而就像我说的,问正确的问题对于数据科学家来说是非常重要的。在项目最终确定之前,提出了很多问题来真正理解真实的商业问题,包括数据来源、项目的最终目标(甚至在我离开之后)等。从本质上讲,我们的目标是预测未来几分钟在新加坡高速公路的行驶时间且要比当前的基线估计更准确。[/backcolor]2. 采集数据[/backcolor]在新项目的激励下,我开始从数据库和同事那里收集数据(基本上是在办公室四处走动,询问数据源的问题)。收集正确的数据类似于从各种不同的数据网站中提取数据然后进行数据预处理的情况。这是非常重要的,它能影响你在后期构建的模型的准确性。[/backcolor]3. 数据预处理[/backcolor]真实世界的数据是脏的。我们不能指望数据像 Kaggle 提供的那样格式整洁且没有噪声。因此,数据预处理(其他人可能称之为数据整理或数据清理)是非常重要的,以至于我不得不多次强调它有的重要性。它是最重要的一个阶段,因为它可以占据整个工作流的 40% 到 70% 的时间,只是为了清理数据以供你的模型使用。[/backcolor]我喜欢数据科学的一件事是你必须对你自己诚实。当你不知道你还不知道什么的时候,你就会开始觉得数据预处理已经足够干净,并准备把它用在你的模型上,此时就存在着用错误数据试图建立正确模型的风险。[/backcolor]换句话说,总是不断质疑自己,用你拥有的领域知识判断数据在技术上是否是正确的,请严格而仔细地检验数据,以检查在整个数据集中任何其他的离群值,缺失或不一致的数据。[/backcolor]有一次,我喂给模型的数据是错误的,只是因为在预处理步骤中的一个简单错误,在犯了这个错误后我特别小心。[/backcolor]4. 建立模型[/backcolor]经过研究,我提出了支持向量回归(SVR)、多层感知器(MLP)、长短期记忆网络(LSTM)和状态空间神经网络(SSNN)四种模型并用在我的项目中。此处不详细展开,你可以在许多网站上找到每个模型的详细解释的资料。[/backcolor]对于一个像我这种仍在学习慕客课程以及教科书的人看来,从头开始构建各种不同的模型是一个陡峭的学习路线。幸运的是,Scikit-learn 和 Keras(采用 Tensorflow 作为后端)算是我的一个救星,因为它们很容易让你快速学习模型原型且是采用 Python 实现的。此外,我还学会了如何优化模型及使用各种各样的技术微调每个模型的超参数。[/backcolor]5. 模型的评价[/backcolor]为了评估每个模型的性能,我主要使用以下的一些度量:[/backcolor][*]平均绝对误差(MAE)[*]均方误差(MSE)[*]决定系数(R2)在这个阶段,上述步骤 3 - 5 被重复(互换)直到确定最佳模型能够超过基线模型的估计精度。[/backcolor]实习之后[/backcolor]嗯,实习已经印证加强了我对数据科学的热情,我很感激我的实习工作,其确实为我将来工作带来了一些动力。在研究和开发阶段,与不同的利益相关者交谈所需的沟通技巧、用数据来解决商业问题的好奇心和热情等等方面都提高了我对此领域的兴趣。[/backcolor]数据科学行业仍然很年轻,它的工作描述对我们这样的求职者来说可能显得模糊不清。不具备所有需要的技能是非常正常的,因为大多数工作描述是理想化的,以符合他们的最佳期望。[/backcolor]当有疑问时,只要从慕课、书籍和文章(我现在还在做的)中学习基本原理,然后通过你自己的个人项目或实习来运用你所学到的东西。要有耐心。学习之旅需要时间。津津有味地去开始你的学习旅程吧。因为…[/backcolor]旅程总有终点,但问题长存[/backcolor]–––– 你学到了什么?这就是你想要的吗?[/backcolor]
  • Web开发与数据科学家:谁在统治Python世界?
    2017年末,Python软件基金会与JetBrains网站一起开展了Python开发人员调查,目的是确定最新趋势,并深入了解Python开发世界今日的样子。根据结果显示,每5个Python开发人员就有4个将Python作为第一编程语言,所有使用Python作为其主要语言的开发人员中又有一半在使用JavaScript。使用Python作为辅助编程语言的开发人员更喜欢将其与JavaScript(46%),C / C ++(42%),Java(41%)和C#(24%)一起使用。Web开发人员与数据科学家:谁在统治Python世界?“你用Python做什么?”这个问题的答案非常有趣。 事实证明,数据分析和web开发是最广泛的用途。1、使用Python进行数据分析和机器学习的占24%;2、使用Python进行数据分析和web开发的同样占24%;数据分析和机器学习的结合并不是什么新鲜事,但是和web开发相结合还是蛮令人惊讶的。可以肯定地说,从DevOps到机器学习和数据科学,Python无处不在。著名的编程网站Stack Overflow似乎也同意这一看法:Python是增长最快的编程语言。如果将数据分析和机器学习统称为数据科学,那么,使用Python进行web开发和数据科学的比例接近1:1。结果:Web开发人员和数据科学家一起统治着Python世界。Python一起使用的最流行的技术是什么?结果显示,与Python一起使用的最流行技术是Jupyter Notebook,其次是Docker和Anaconda。此外,接近70%的受访者使用AWS,其次是GAE,Heroku和DigitalOcean。最后,PyCharm的两个版本是Python开发中最流行的工具,其次是Sublime,Vim,IDLE,Atom和VS Code。本文转自:IT168网站
  • 大佬 Python 对阵新秀 Julia ,谁能问鼎机器学习和数据科学?
    在数据科学领域,你最常用的编程语言是哪种?对此,不同职业背景下的开发者答案各尽不同,一般来说,Python 和 R 语言是需要重点掌握的,但是如今有一枝独秀悄然而至,其创作理念是像 Python 一样通用、像 R 语言一样适用于统计、像 Perl 一样适用于字符串处理、像线性代数 Matlab 一样强大、像 Shell 一样擅长粘合程序,且可以像 C 语言一样高效,它的名字叫做——Julia。如今,在面对 Python 俨然已成为数据科学和机器学习领域的中流砥柱的窘境之下,Julia 以何种优势与之抗衡,接下来,本文将带你一探究竟。在 Python 涵盖的众多领域中,数据分析应当是应用最广同时最为重要的。Python 通过加载大量的库、工具和应用程序,使得科学计算和数据分析工作变得快速便捷。Julia 语言(https://julialang.org/) 专门针对科学计算、机器学习、数据挖掘、大规模线性代数、分布式和并行计算,在 Julia 的使用者眼里,Python 不够快也不够方便。此消彼长,当它擅长某一项工作时,肯定会忽略其他部分。Julia 语言简介Julia 由一个四人组成的团队于 2009 年创建,在 2012 年正式对外发布,旨在解决用于科学计算和数据处理的编程语言(比如 Python)和应用程序的缺陷。团队成员追求完美和极致,他们表示:我们需要一个开放源码且拥有自由许可证的语言。我们希望兼具 C 语言的速度与 Ruby 的动态性。我们希望编程语言具有同像性,既有 Lisp 这样真正的宏,又有 Matlab 这样带有明显的、为人熟知的数学符号。我们希望它像 Python 一样可以用于一般编程,又像 R 语言一样适用于统计学,能够像 Perl 那样自然地用于字符串处理,就可以像 Matlab 那样强力支持线性代数,此外还能像 shell 一样做程序的粘合剂。它能够让初学者轻松入门,又能给资深开发者提供高级特性。我们希望它具有很强的交互性,同时又属于编译型语言。为了实现这些想法,Julia 遵循了如下策略:为了更快的速度,定义为编译型语言,而不是解释型。Julia 使用 LLVM 编译器框架进行即时编译(JIT)。在某些情况下,Julia 可以接近甚至达到 C 语言的速度。采用直接但有用的语法。Julia 语法的简洁程度可以与 Python 媲美,虽然简洁,但是表现力很强。动态类型。你可以指定变量的类型,如“无符号的32位整数”。但是,你也可以创建类型的层次结构以允许处理特定类型变量,例如编写一个接受整数的函数,通常不指定整数长度。最后如果在特定的上下文中不需要,你可以不用完全输入。可以调用 Python、C 和 Fortran 编写的库。Julia 可以直接调用 C 语言和 Fortran 编写的外部库。也可以通过 PyCall 库与 Python 代码进行交互,此外, Python 和 Julia 之间的数据可以共享。元编程。Julia 程序可以生成其他的 Julia 程序,甚至可以修改自己的代码,就像 Lisp 这样的语言一样。Julia 相比 Python 的优势Julia 从一开始就是为科学和数值计算而设计的。因此,Julia 在此领域具有众多优点也就不足为奇。它的优点如下:速度更快。Julia 的 JIT 编译和类型声明意味着它可以比“纯粹的”、未被优化的 Python 快几个数量级。虽然 Python 可以通过 PyPy 或者 Cython 等方式进行速度优化,但 Julia 从设计之初就具有天然的速度优势。友好的数学语法。Julia 的主要目标受众是科学计算语言和 Matlab、R、Mathematica、Octave 等环境的用户。Julia 的数学运算语法看起来更像计算机世界之外的普通数学公式,它使得非程序员很容易掌握。自动内存管理。像 Python 一样,Julia 不需要用户太多关注分配和释放内存的细节,它提供了一些针对垃圾回收的手动控制方法。这样的好处在于,假设你从 Python 转投 Julia,你依然可以享有 Python 一样的便利。并行性。只有充分利用机器上可用的全部资源(特别是多核),数学和科学计算领域才能够蓬勃发展。Python 和 Julia 都支持并行运算。但是,在并行计算方面,Julia 的语法比 Python 更简单,这样就降低了并行运算的使用门槛,使其能够得到更广泛的应用。Python 相比 Julia 的优势Python 是一种易于学习的通用计算语言,已经发展成为科学计算领域的主力军。Python 之所以能够在数据科学领域占据重要地位,得益于它的下列优势:Julia 数组索引从 1 开始。Julia 的这个特性表面上看问题不大,但是我们不能排除它潜在的风险。在大多数语言中,包括 Python 和 C 语言,数组的第一个元素通常用 0 来访问,例如,string[0] 表示 Python 字符串中的第一个字符。但是 Julia 则使用 1 作为数组中的第一个元素,它这样做的原因是为了迎合一些数学和科学应用(比如Mathematica)的用户。虽然默认情况下 Julia 采用1索引,但是可以通过其他手段(https://docs.julialang.org/en/latest/devdocs/offset-arrays/) 让其支持 0 索引,毕竟用 1 作为第一个元素索引的方式违背程序员的编程习惯。Julia 还很年轻。Julia 语言自2009年以来一直处在开发阶段,并且一路上增减了多种功能。尽管开发者一直宣称开发接近尾声(https://github.com/JuliaLang/julia/milestone/4),但实际上它仍然没有发布1.0版本。Python 拥有更丰富的第三方软件包。Python 数量庞大且实用的第三方软件包是它能够吸引大量开发者的杀手锏。而年轻的 Julia 语言的生态系统稍显薄弱,它使用了很多现有的 C 和 Python 库,但是开发 Julia 自己软件包的任务依然迫在眉睫。Python 具有庞大的社区优势。如果编程语言没有一个强大、活跃的社区支持,那么它的根基是不扎实的。Python 现在正拥有着一个强大的社区。虽然 Julia 的社区发展迅猛,但是和 Python 社区的规模相比依然不值一提。总结一个是经过 8 年开发的新秀 Julia,一个是圈内公认的标榜 Python,两种编程语言在数据科学领域各有千秋,综合以上的优劣对比,你会更倾向选择哪种编程语言入门呢?
  • 【消息通知服务】应用场景系列(一)流式数据分析demo
    问题描述: 需要做IP分析,从而拦截一定规则的用户。假定是满足阈值。 正常的玩法: 简单讲就是先存储再分析 首先nginx首先将ip存到本地日志,然后做一份共享的日志汇总。 其次开发一个应用,拉取数据并分析。 最后生成封禁列表,再给回nginx。 这里面汇总这一步是存到磁盘的,时效性保证来说相对不会太好,那么我们可不可以考虑用SMN呢,做流式的数据分析? 我们日志数据量较小,每一条最多几百k,如果需要实时性更好的推送模式可以参考以下玩法。集成SMN的玩法 SMN服务的主题模式本质上是一种推送模式的消息队列,只是因为队列资源有限所以其topic是逻辑的,不过在使用时可认为消息队列。 1:为啥用SMN与函数服务 使用SMN服务的好处降低汇总的工作量、减少通知步骤的开发,提高效率。 并且SMN服务已经与函数服务集成,当一批日志消息推到函数服务后,立马生成示例并执行。减少了分析的开发,仅关注于函数算法开发。 流式处理,提高实时性。 2:怎么玩 首先还是要存储到本地log的 其次将log推送到SMN服务的某个主题中 再次SMN推到函数服务,并输出结果 函数服务分析的玩法 用cache做原子+1, 并设置过期时间,防止影响正常用户的ip。 3:进阶版玩法 如果项目中存在多模块,每个模块服务器生成日志格式不同的问题就不能玩了吗? 别走,请再看一点。 可以先做一道日志格式统一。利用SMN服务支持多个源的特点推至不同的主题,然后到函数服务统一转格式在转到SMN的另一个主题下。 其次SMN将格式统一的日志消息发送到函数服务。 最后在分析。都是实时性较高的玩法哦!
  • 七大网红编程语言,总有你想学的那一款
    如果让你选择一种语言,你觉得Python和中文,哪个对于未来更重要?最近,一直以高素质实习生项目闻名的高盛集团发布了一份《2017高盛调查报告》,针对全球2500名在高盛的夏季实习生调查, 当问到你认为“哪个语言在未来会更重要”时,在被调查的全球2500名80、90后优秀年轻人中,72%选了Python。Python所代表的数据科学分析能力和编程能力正成为年轻人乃至整个世界最看好的热门或者说必备技能。而除了Python,数据科学领域还有大把语言可以选择,如何基于自己的需要选择一门最适合自己的编程语言开始学习呢?本篇文章将详细对比解析数据科学领域最热门的几大“网红”编程语言:R,Python,SQL,Java, Scala,Matlab,JavaScript,Ruby,并从优缺点、适用领域几个方向让你迅速了解自己最需要哪一款。数据科学结合了高大上的统计、数量分析理论与实打实的编程能力,是一个让人想想就有点小激动的工作领域。面对众多编程语言,胸怀大志的数据科学家们在术业有专攻之前难免会有乱花渐欲迷人眼之感。尽管不同选择之间没有高低对错,但是有几点是必须要考虑清楚的。你在数据科学家这条路上能走多远取决于很多因素,具体包括:深度在高级数据科学的世界中,老调重弹是没有前途的。选定语言后,努力把各种包和模型都吃透。决定你掌握程度的首要因素是你能接触到哪些特定领域的包。顶级数据科学家必须既是全面编程小能手,也是鼓捣数字神队友。数据科学日常工作的很大一部分都围绕着获取、加工原始数据或“数据清理”,而那些牛逼闪闪的各种机器学习包在这里都毫无用武之地。数量商用数据科学的步伐通常是快到飞起,因此出活儿快的好处简直数不清。这也使得技术部门能够悄悄地争取一席之地,而只有靠谱的做法才能让把工时降到最低。质量代码效果最大化有时具有举足轻重的意义,尤其是处理大批量关键数据的时候。编译语言在速度上往往远超解释语言;无独有偶,静态类型语言的故障率也远低于动态类型语言。显而易见,质的提升是以量的减少为代价的。从某种意义上讲,我们可以画出这样一对轴线(广度-深度;数量-质量)。下面列出的每种语言都可以在上述范围内找到自己的位置。心里有谱之后,我们一起来看看这些数据科学语言中的“网红”。下面的内容仅是本人及朋友、同事在研究和个人使用中总结出的数家之言,绝不是什么标准答案。排序基本上是按照“网红”程度来的,嘿喂狗~1. R语言(1) 简介R语言以老前辈S语言直系后裔的身份,于1995年闪亮登场,此后一路高歌猛进,从成功走向成功。该项目目前采用的语言包括C、Fortran和R,得到了统计计算R联盟(R Foundation for Statistical Computing)的支持。(2) 证书免费哒!(3) 优点· 开源数据包质量过硬、领域明确、范围广泛。几乎所有你能想到的数量、统计应用都能找到相应的R包,比如神经网络、非线性回归、系统进化、进阶绘图等。· 基础安装内置的统计功能和方法非常全面。此外,R语言尤其适合处理矩阵代数。· 核心优势之一就是利用ggplot2等各种R语言库能够实现数据视觉化。(4) 缺点· 质量。R语言比较慢,这是板上钉钉的。· 领域特定。R语言在统计和数据科学领域如鱼得水,但是在通用编程上就有些力不从心了。· 不走寻常路。R语言的一些“小脾气”可能会让擅长其他语言的程序猿阴沟里翻船。举个栗子,采用多赋值运算从1开始索引,非传统数据结构。(5) 小结:本职岗位的尖兵R语言功能强大,在众多统计和数据可视化应用中表现出众;开源更是带来了大批活跃的贡献者。最近一个时期R语言的走红彰显了它在“本职工作”上的优异表现。2. Python语言(1) 简介1991年,经Guido van Rossum(吉多·范罗苏姆)推出后,Python就成为了通用语言中的大热门,在数据科学社区中得到了广泛应用。目前使用的主流版本是3.6和2.7。(2) 证书免费哒!(3) 优点· 极受欢迎的主流通用编程语言,模型种类多、适用范围广,有众多社区支持。· 许多在线服务都提供Python API。· 上手简单。低门槛使其成为菜鸟程序猿的理想“初恋”。· Pandas、scikit-learn和Tensorflow等包使Python在高级机器学习应用中也有很强的存在感。(4) 缺点· 型别安全:作为一个动态类型语言,Python时时刻刻求关注。类型错误(比如向心心念念期待着Integer的方法传递了一个String)差不多是家常便饭了。· 对于特定的统计、数据分析问题,R包“海纳百川”式的涵盖范围使其在面对Python时有那么一丢丢优势;但是谈到通用语言,Python总能给你更快、更安全的选择。(5) 小结:哪里需要哪里搬的好手Python是数据科学语言的上佳之选,对象绝不仅限于初学者。很多数据科学流程都围绕着ETL(抽取-转换-加载)展开,这与Python的通用性简直是天作之合。诸如谷歌Tensorflow等库更使得Python在机器学习领域大出风头。3. SQL语言(1) 简介结构化查询语言(SQL)是关系数据库的定义者、管理者和查询者。虽然自1974年面世后历经多次实现,但核心原则从未改变。(2) 证书看情况-有些实现是免费的,有些受版权保护。(3) 优点· 在关系数据库的查询、升级和操作上效率极高。· 声明语法的使用让SQL通常都具有极强的可读性,比如“SELECT name FROM usersWHERE age > 18”的意义就十分明确清晰。· SQL应用范围广泛,因此熟悉该语言还是很有用的。程序猿们利用诸如SQLAlchemy等模块可以直接把SQL整合到其他语言中。(4) 缺点· SQL的分析能力十分有限-除了求和、计数和求平均数,你也没啥能选的。· 具有命令式语言背景的程序猿可能需要一段时间来掌握SQL的声明语法。· SQL具有众多实现,比如PostgreSQL、SQLite和MariaDB等。这些实现的差异之大使得互操作性成为了一个颇为棘手的问题。(5) 小结:高效的经典款与其作为高级分析工具,SQL在数据处理上表现得更加得心应手。然而,数据科学工作的大头都依赖于ETL,SQL的长盛不衰和简明高效恰恰证明这是一门值得现代数据科学家了解掌握的有用语言。4. Java语言(1) 简介Java是在Java虚拟机上运行的一门非常受欢迎的通用语言。这个抽象计算系统能够实现跨平台的无缝移植。目前有甲骨文公司支持该语言。(2) 证书第八版-免费哒!旧版本受版权保护。(3) 优点· 无处不在。很多现代系统和应用都建立在Java后台上。它能够将数据科学的各种方法直接与现有的代码库整合;功能强大,你值得拥有。· 强型别。需要确保型别安全时,Java单刀直入的风格对于那些至关重要的大数据应用而言简直是无价之宝。· 作为一种高质量、通用型编译语言,Java非常适合编写高效的ETL产品代码和计算强大度的机器学习算法。(4) 缺点· Java冗长的代码并不适合专门分析和更为细致的统计应用。R和Python等动态类型语言的输出显然更胜一筹。· 与R等领域明确的语言相比,Java并没有太多适用于高级统计方法的的库。(5) 小结:数据科学的有力竞争者把Java作为数据科学首选语言能够带来不少益处。将数据科学产品代码与现有代码库直接无缝整合的能力是众多公司梦寐以求的;你会发现,Java在此方面和型别安全上的优异表现是货真价实的加分项。然而,面对其它语言时,你也不得不面对没有各类统计特定包可用的现状。尽管如此,Java仍然值得拥有-尤其是你已经掌握了R和/或Python的情况下。5. Scala(1) 简介由Martin Odersky开发,并于2004年发布,Scala是一种在JVM上运行的语言。 它是一种多范式语言,融合了面向对象和函数式编程。集群计算框架Apache Spark就是用Scala编写的。(2) 证书免费!(3) 优点· Scala + Spark =高性能集群计算。 Scala是使用大容量数据集的人的理想语言选择。· 多范式:Scala兼容面向对象和函数式编程,这使得Scala的程序员们两种范例都可用。· Scala被编译为Java字节码并在JVM上运行。 这使得其具有了与 Java语言本身的互操作性,使Scala成为非常强大的通用语言,同时也非常适合数据科学。(4) 缺点· 对于初学者来说Scala并不是一个简单的编程语言来起步和运行。 你最好的选择是下载sbt并使用特定的Scala插件设置Eclipse或IntelliJ等IDE。· 其语法和类型系统通常被认为是比较复杂的。这为来自动态语言(如Python)的用户提供了一个陡峭的学习曲线。(5) 结论:完美,适合大数据当使用集群计算来处理大数据时,Scala + Spark是非常棒的解决方案。 如果你有Java和其他静态类语言的经验,你也将会非常欣赏Scala的性能。然而,如果你的应用程序无法用来处理一定量的数据,这恰恰证明了Scala增加的复杂性,你可能会发现使用其他语言(如R或Python)的效率要高得多。6. Julia(1) 简介5年前发布的Julia在数值计算领域让人印象深刻。由于几家主要机构(多为金融行业)的早日采用,其形象得到了提升。(2) 证书免费!(3) 优点· Julia是一种JIT(“准时”)的编译语言,可以提供良好的性能。 它还提供像Python一样简单、 动态类型和脚本功能的解释性编程语言。· Julia是专为数值分析而设计的。它也能够进行通用编程。· 可读性。 该语言的许多用户将此视为其主要优点。(4) 缺点· 成熟性。 作为一种新的语言,一些Julia的用户在使用程序包时经历了不稳定。但其核心语言本身据悉是足够稳定,可运用的。· 程序包数量有限是语言处于新生阶段和开发社群较小的另一个后果。不像建立很长时间的R和Python,Julia目前在软件包上还没有太多的选择性。(5) 结论:它是未来Julia的主要问题目前并不能过分苛责。作为最近开发的语言,它不像Python和R这些竞品那样成熟和生产就绪。但是,如果你愿意耐心等待,那么在未来几年里,我们有充分的理由去密切关注Julia的进一步发展。7. MATLAB(1) 简介MATLAB是在学界和业界广泛使用的一种老牌数值计算语言。 它是由MathWorks公司开发和许可的,MathWorks成立于1984年,主营该软件的商业化。(2) 证书专有的 - 定价根据用途而有所不同。(3) 优点· 专为数值计算而设计。MATLAB非常适合具有复杂数学要求的定量应用,如信号处理,傅里叶变换,矩阵代数和图像处理。· 数据可视化。 MATLAB有一些很好的内置绘图功能。· MATLAB通常被作为诸如物理,工程和应用数学等量化类专业的本科课程的一部分。因此,它在这些领域得到了广泛应用。(4) 缺点· 专利许可。 根据用途(学术,个人或企业),你可能需要支付昂贵的许可证费用。 有免费的备选方案如Octave。 这是你需要认真考虑的问题。· MATLAB不是通用编程的明显选择。(5) 结论:最适合数学需求高的应用MATLAB在整个业界和学界的许多定量和数值研究领域的广泛应用使其成为了数据科学的重要选择。其明确的应用场景是当你的应用程序或日常角色需要大量的高级数学功能时,的确,MATLAB是专为此而设计的。8. 其他编程语言还有一些数据科学家可能会也可能不会感兴趣的其他主流语言。本节提供了一个快速的概述...当然有充足的论证空间!C++C ++并不是数据科学的常见选择,尽管它具有运行速度快的性能和广泛的主流流行度。其简单的原因可能是生产力与性能的问题。正如一个Quora用户所说:“如果你正在编写代码进行一些可能只运行一次的专项分析,你是愿意花30分钟的时间编写一个将在10秒内运行的程序,还是在10分钟内编写一个将运行1分钟的程序?”这个小伙伴抓到了重点。然而,对于重要的生产级别性能而言,C ++将是实现在低级别机器学习算法优化的绝佳选择。结论:不服务于日常工作,但如果性能表现是至关重要的...JavaScript随着近年来Node.js的兴起,JavaScript越来越成为重要的服务器端语言。然而,它在数据科学和机器学习领域的使用已十分有限(不过可查看brain.js和synaptic.js!)。它具有以下缺点:(1) 入局太晚(Node.js只有8岁!),意味着...很少有相关的数据科学库和模块可用。 这意味着没有引起真正的主流兴趣或动力。(2) 性能方面,Node.js很快。 但JavaScript作为一种语言并不是没有它的槽点。Node’s的优势在于异步I / O,其被广泛使用,且存在于可编译为JavaScript的语言中。 因此,可以想象,数据科学的有用框架和实时ETL处理可以结合在一起。关键问题是这是否会提供些新的特别之处。结论:JavaScript距成为重要的数据科学语言还有很长的路要走PerlPerl被称为“编程语言的瑞士**”,得名于其作为通用脚本语言的多功能性。它与Python有很多共同之处,同样是一种动态类型的脚本语言。但是,在数据科学领域,它还没有像Python一样的人气。这看起来有点难以置信,尤其是如果你知道它在定量领域如生物信息学中的应用。 Perl在数据科学方面有几个关键的缺点。它不是很突出,它的语法是不友好的。数据科学专用程序库的开发并不像生物信息学那样有大的进展。在任何领域,势头都是关键。结论:一个有用的通用脚本语言,但它并不能给你的数据科学简历带来真正的优势RubyRuby是另一种通用的动态类型的解释语言。然而,它并没有在数据科学得到像Python一样的应用。这似乎是令人惊讶的,但可能是Python在学术界的主导地位和正面反馈效应的结果。 使用Python的人越多,开发的模块和框架就越多,从而越来越多的人会转而使用Python。SciRuby项目的存在是为了将如矩阵代数这样的科学计算功能引入到Ruby中。但是目前来看,Python还是领先的。结论: 对于数据科学来说目前还不是一个明显的选择,但对简历也没什么坏处总结好了,现在你有了一个数据科学领域编程语言选择的快速指南。然而,选择最合适语言的关键是,你要了解你使用需求的一般性与特殊性,以及你个人偏爱的基于性能与生产力平衡的开发风格。我一般使用R,Python和SQL,因为我目前的角色主要侧重于开发已有数据的流水线和ETL流程。这些语言可以平衡一般性和生产力来完成这项工作,并可以在需要时使用R的高级统计软件包。不过 – 也许你已经有了Java的经验, 或者你可能想使用Scala来处理大数据。 或者,你热衷于参与Julia项目。也许你在大学学过MATLAB,也许你还想给SciRuby一个机会? 或者你有一个完全不同的建议! 如果是这样,请在下面回复 - 我期待着你的声音! 来源:https://medium.freecodecamp.org/which-languages-should-you-learn-for-data-science-e806ba55a81f
  • [公告] 华为机器学习服务(MLS)介绍
    一、 MLS简介 机器学习服务,即MachineLearning Service,简称MLS,是一项数据挖掘分析平台服务,旨在帮助用户通过机器学习技术发现已有数据中的规律,从而创建机器学习模型,并基于机器学习模型处理新的数据,为业务应用生成预测结果。 机器学习服务可降低机器学习使用门槛,提供可视化的操作界面来编排机器学习模型的训练、评估和预测过程,无缝衔接数据分析和预测应用,降低机器学习模型的生命周期管理难度,为用户的数据挖掘分析业务提供易用、高效、高性能的平台服务。二、 应用场景 机器学习服务应用于海量数据挖掘分析场景。[*]欺骗检测保险公司分析投保人的历史行为数据,建立欺骗行为模型,识别出假造事故骗取保险赔偿的投保人。[*]产品推荐根据客户本身属性和行为特征等,预测客户是否愿意办理相关业务,为客户提供个性化的业务推荐。[*]客户分群通过数据挖掘来给客户做科学的分群,依据不同分群的特点制定相应的策略,从而为客户提供适配的产品、制定针对性的营销活动和管理用户,最终提升产品的客户满意度,实现商业价值。[*]异常检测在网络设备运行中,用自动化的网络检测系统,根据流量情况实时分析,预测可疑流量或可能发生故障的设备。[*]预测性维护为设备创建预测模型并提供预见性维护建议和计划,减少故障时间和发生几率,从而提高效率和降低成本。[*]驾驶行为分析通过采集驾驶员不良驾驶习惯(比如:急加速、急转弯、急减速、超速、疲劳驾驶等),通过建模分析驾驶员驾驶习惯优良程度,面向企业车队提供驾驶员评级,约束不良驾驶习惯;面向个人车主,提供驾驶习惯优化建议,降低事故率和降低油耗,对于保险公司,可以用于UBI场景。三、 功能介绍3.1 拖拽式操作 拖拽式操作功能提供可视化的工作流的设计和运行调试能力。用户可以在MLS实例的工作界面通过拖拽和连接的方式组合不同的节点,创建工作流,进行数据处理、模型训练、评估和预测,并以合适的图表将结果可视化输出。3.2 丰富的功能节点 机器学习服务集成丰富的功能节点,支持用户完成数据处理、模型训练、评估和预测的工作流设计和调试。3.3 交互式操作 MLS集成了JupyterNotebook的功能,为用户提供交互式记事本作为机器学习应用的集成开发环境。[*]支持编写python脚本,使用spark 原生算法mllib,进行数据分析、模型构建和应用。[*]为用户提供大量的第三方数据科学计算Python包。3.4 丰富的数据科学计算包 机器学习服务集成丰富的第三方计算包(Python),支持用户完成数据处理、模型训练、评估和预测的数据挖掘流程。
总条数:133 到第
上滑加载中