您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>数值算法/人工智能>

构建机器学习项目档案

大小:0.5 MB 人气: 2017-10-09 需要积分:1

  原文:Building a data science portfolio: Machine learning project

  作者:Vik Paruchuri,开发者,数据科学家,Dataquest.io创始人

  翻译:Alvin 校审:KK4SBB

  责编:周建丁(zhoujd@csdn.net)

  下文仅是一系列关于如何建立数据科学档案(Data Science Portfolio)的文章的一部分。如果你喜欢此篇文章,并且想得到该系列最新的连载文章,可以在页面的底部选择订阅。

  大数据企业在评估新员工的时候会越来越重视他们的档案。原因之一就是档案是判断某人在现实世界的技能的最佳方式。但好的消息是此档案完全在你的的掌控范围内,如果你做了一定的工作,你将得到一份企业青睐的好档案。

  建立优质数据档案的第一步是确定需要展示哪些技能。如下是企业想在你的数据档案里看到的一些基本技能:

  沟通的能力。与他人合作的能力。技术的程度。解释能力的相关数据。动力和主观能动性。

  任何一个优秀的档案是由多个项目组成,每个项目至少包括上述的一到两点。此文是一系列关于如何建立数据科学档案的文章的一部分。在文章中将会讲述到如何在你的数据档案中添加第二个项目,而且将会阐述如何构建一个端对端的机器学习项目。在文章最后,你将会拥有一个通过数据展现你的水平和技术能力的项目。如果你感兴趣一定不能错过此篇文章。

  端对端的项目

  作为一个数据科学的科学家,有时候你会被要求得出一个数据集并且要描述他。在这种情况下,良好的交流过程和连贯的思路变得很重要。比如一些工具例如“Jupyter 记事本”(Jupyter notebook),这个工具在我们这之前的文章中使用过,对我们的帮助很大。这里想说的是,我们期待的成果是一个能总结你的发现成果的演示或者文档。

  然而有些时候,你会被要求创建一个具有操作价值的项目。这个具有操作价值的项目直接影响公司的日常运作,并且使用的时间和操作的人数都会很大。这样的任务可能是用来“创建一个算法来预测我们的客户的流失率”或者“创建一个可以自动标识我们的文章的模型”。在这只能过情况下,叙述故事跟技术能力相比,就显得不是那么重要了。你需要构建并且了解一个数据集,然后创建一组可以处理数据的脚本程序。重要的是这些脚本运行要很快并且尽可能少的使用例如内存的系统资源。常见的是这些脚本程序将运行不止一次,所以需要交付的是实实在在的程序代码而不是一个流程演示。同时这些交付项目往往是需要纳入业务流程的范畴,甚至可能是面向用户的。

  构建端对端项目的主要要素如下:

  理解上下文。研究数据并找出其中细微的差别。创建一个结构良好的项目,所以此项目才能轻松地集成到操作流程里。编写高性能的,运行速度快的,并使用最少系统资源的代码。记录你的程序安装和使用情况,好的记录会反应你的代码质量的好坏,从而方便代码的复用。

  为了有效创建这种类型的项目,我们需要操作多个文件。使用文本编辑器比如Atom,或者集成开发环境比如强烈推荐PyCharm。这些工具可以方便你在文件之间切换并且编辑不同类型的文件,比如markdown文件,Python文件,csv文件等等。还有构建你的项目,所以版本控制变得非常容易操作,同时可以上传到可协作编码工具例如Github。

  构建机器学习项目档案

  这个项目的Github页面

  在这篇文章中,我们将使用我们的编辑工具,比如Pandas和scikit-learn。我们将广泛的利用Pandas的数据框,它可以很容易地阅读和操作Python上的数据表格。

  寻找优秀的数据集

  一个好的端对端数据集项目是很难找到。这就要求数据量需要足够的大,这样才能使得存储器和系统性能发挥作用。它还可能需要在操作上非常有用,例如,在这个数据集中包含录取标准,毕业率数据,并且毕业后的未来收益对于一个美国大学都是将是一个值得称赞的巨大数据档案。但是,当你在考虑这个数据集时,你会清楚地发现它没有足够的差别以建立一个良好的端对端项目。例如,你可以告诉别人他的潜在的未来收益,如果他们去了一个特殊的大学,但是这将没有足够的差别来快速表明其技术水平。你也可以判别是否具有较高入学标准的院校会拥有更多薪资的毕业生,这将比运营更具有故事性。

  当你拥有比千兆字节还要多的数据时,这些内存和性能的限制往往会发挥作用,同时当你需要预测一些事情的时候,其中涉及的运行算法是要超过数据集本身的。

  良好的操作数据使你能够创建一组转换数据的脚本程序,并且即时地回答问题。一个很好的例子就是关于股票价格的数据集。你将能够预测第二天的价格,并将最新的数据反馈给后台作为交易的结果。这将有利于你进行交易甚至可能从中盈利。这不仅仅是讲述一个故事,而是从中获利。

  这里有一些能够找到这样的数据集的好地方:

  /r/datasets,一个拥有数百个有趣的数据集的版块。Google Public Datasets,可以通过谷歌的BigQuery得到的公共数据集。Awesome datasets,一个托管在Github上的数据集列表。

  在查看这些数据集的时候,想想有人会问到跟此数据集相关的问题,并且如果这些问题都是一次性的(“住房价格和标准普尔500指数有什么关联?”)或者是(“你能预测股市吗?”)。这里的关键是找到正在进行的,并需要相同的代码在多次运行的问题中输入不同的数据。

  对于这篇文章的目的而言,我们将看看Fannie Mae贷款数据,Fannie Mae是美国政府赞助的企业,用来从其他贷款人手中购买按揭贷款。然后,它捆绑了这些贷款作为抵押贷款放入证券和转售他人。这使得贷款人有更多的按揭贷款,并且在市场上创造更多的流动性。这在理论上会产生更多的购房交易和更好地贷款条件。虽然从借款人的角度来看,事情保持大致相同。

  Fannie Mae发布了两种类型的数据,一种是获得贷款的数据另一种是贷款表现的数据。在理想情况下,有人从贷款人借钱,然后偿还贷款,直到余额为零。然而,一些借贷人错过了多次付款的机会,这可能会导致他们丧失抵押品的赎回权。当抵押品的赎回权丧失的时候,房子就会被银行没收,因为他们无法按时还款。Fannie Mae错过了对支付贷款的跟踪和哪些贷款被取消了赎回权。此数据每季度出版一次,并且落后当前数据一年,在撰写本文时所用的最新的数据集止于2015年第一季度。

  这些由Fannie Mae出版的采集数据,包含借贷人的信息,比如,信用分数,贷款和家庭的信息,收入信息。当贷款放出后,每季度公布这些信息,包括借款人的取消抵押品赎回权的状态和任何的支付信息。这些贷款可能会包含十几行的情况数据。好消息是这些收获的数据告诉你Fannie Mae 目前正在控制贷款,并且这些数据包含了一系列贷款状态的最新信息。其中一个最新的状态可能告诉我们贷款在一些季度会取消抵押品赎回权。

  

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!