业界 | 如何成为一名数据科学家?听听来自Netfix的老司机怎么说 大数据

24 篇文章 0 订阅
19 篇文章 0 订阅

在这里插入图片描述

数据科学是什么?数据分析?机器学习?还是数据工程?答案可能有很多,但也许只有直接与某个公司的数据科学家交流,才能了解该公司是如何看待数据科学的。由Netflix举办的第三届聚焦数据科学的WiBD研讨会,为我们所有人了解Netflix的数据科学故事提供了绝佳机会,一起来看看吧!
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习扣群:805127855,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

数据科学是一个非常抽象的概念。有些人认为它是数据分析,也有一些人认为它是机器学习,还有些认为它带有一些数据工程的味道。

业界对数据科学这一概念难以达成一致有很多原因,其中一点就是,现在大范围内的岗位都可能涉及数据科学,并且这些岗位的职责都不尽相同。

此外,不同公司之间的细微差别,甚至是同一公司内部的不同团队之间的细微差别都会导致对数据科学的理解不同。因此,只有直接与某个公司的数据科学家交流才能了解该公司是如何看待数据科学的。

信息不对称是一个令人遗憾的事实,它阻碍了许多人追寻数据科学以及数据工程这一职业的道路。

如果我们投入越多的工作时间来解决这一棘手的问题,那么这一阻碍也就能越早被突破。关于这一点,推荐一个社会教育企业——HasBrain,该企业致力于填补信息缺口并且为想要学习并找到通往数据科学和数据工程道路的人提供帮助。

在这里插入图片描述
HasBrain:

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习扣群:805127855,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

构建数据科学项目

头脑风暴活动

现实世界的数据科学项目与理论上的有何不同,如何构建数据科学项目才能更高效?Becky在研讨会上展示的数据科学项目体系对该问题总结得非常好。

以下是Becky的总结

步骤一:从了解业务问题开始

下面的幻灯片,是Becky就如何定义成功而列出的一系列业务问题。如果你想要很好地证明你的概念,你需要一开始要以一个简单模型作为基准,然后从增量改善(incremental improvement)的角度来评估模型的价值。

否则,你会一直困扰于75%的准确度是否足够好这样的问题。拥有物理学博士学位的Becky也提到,专业学者总是会仔细检查到最后那20%,以确保结果是无懈可击的。所以,如果博士生们想要成为数据科学家,这一点是需要特别注意的。

在这里插入图片描述

步骤二:制定技术计划

除了下面的幻灯片中列出的细节,Becky还强调了沟通的重要性,同时还提出要站在利益相关者的角度思考。因为利益相关者最关心的未必是机器学习的误差测度,所以要学会如何将业务目标转化为价值优化问题,这一点极为关键。

相较于“重新发明轮子”,弄明白和学会使用现有的技术可以为我们节省很多时间。现有的用于监督学习的技术,如预测建模或分类,都有很好的文档记录。

然而,在相对更先进以及更专业的机器学习领域(例如NLP和图像分类),新文章不断地发表,技术不断地更新。因此,即时了解最新和最好的研究论文是数据科学家们需要牢记的黄金准则。

在这里插入图片描述

步骤三:对概念进行初步验证 -> 不断迭代/验证直到成功或是无法再继续 -> 向利益相关者传达结果

如果你对工作流程甚至是数据科学家使用的工具或库还有任何的疑问,都可以参考Becky在项目构建中对“doing the project”这部分的详细描述。

在这里插入图片描述

步骤四:模型产品化

如果一些数据科学家告诉你必须要学会编写产品级代码,那么,他们可能需要独立处理模型产品化,而不是交给机器学习工程师或是软件工程师。

模型产品化本质上就是指不要在现有的模型输出上停滞不前。你的结果输出是产品的一部分,并且会改变用户的实际体验。

你的代码也会成为更大的产品代码库的一部分,例如,如果你归类用户是否会在未来两周内流失,被预测为会流失的用户和被预测为不会流失的用户可能会有不同的用户界面(UI)。

实际上,你是为其他团队创建了一个API来调用你的模型并获得模型输出。你可能需要重构你的代码,此时,只要API没有中断并且终端用户体验是无缝的,你就可以不断地升级模型。

Becky自学了工作中要用到的软件工程方面的知识,学会使代码模块化,以实现可重复性并提高算法效率。甚至有时,可能会参与到软件工程师或是数据工程师的团队中。这不仅取决于工作的复杂性,还取决于服务等级协议(Service Level Agreement, SLA)。例如,如果你的API需要一直处于运行状态,则可能需要更广泛的代码审查或软件工程团队的直接参与。

沟通与问题解决

在这里插入图片描述

在讲述了数据科学项目的构建之后,Becky更多地谈到了有效沟通和解决问题的技巧的重要性。如何向非技术人员的利益相关者们解释复杂的数据科学概念,是获得他们买进支持的重要环节。

Becky将她在攻读物理学博士学位期间学会的一项技能运用于此——将复杂问题分解成小块并逐一解决。类似地,她就将利益相关者的高阶问题(high level question)进行分解,并找出数据科学项目可以提供价值的地方。

如果没有数据科学家的工作经验,想要胜任这部分工作是不容易的,因为包括Kaggle项目在内的大多数实践项目都是从已经定义明确的数据科学问题开始的。Becky谈到,这些软技能其实是从经验中获得的,当然也可以从有效的反馈中学习。

与此同时,她也会阅读一些基础书籍来熟悉商业中的通用概念和术语。另外,许多其他资深的数据科学家们都建议,如果想要进一步发展自己的商业头脑,则需要阅读一些产品管理的书籍和文章。

实践练习

在这里插入图片描述

这个项目使用WDI数据来预测业务启动成本,非常适合初学者。如果你是机器学习新人,或是刚刚完成一些监督学习的网络基础课程,这将会是一个很好的额外练习机会。

现在,让我们回到之前谈论的问题解决和沟通方面,Becky就此提出了一个业务问题:“在不同的国家开展业务都有多难?”她还确立了一个项目目标,即预测在不同国家开展业务的成本。

如果这是一个实际的工作项目,对于开展业务的便利性来说,这些预测成本要如何成为整体评估决策中的一部分,我想,她可能需要与利益相关者就此问题达成一致。

最后,希望这个总结对你有帮助。祝所有数据科学爱好者们好运!并再次感谢Netflix团队的慷慨分享!另有演示的幻灯片和录像可供使用
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习扣群:805127855,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

Spring Cloud Netflix是Spring Cloud生态系统中的一个组件,用于实现微服务架构中的断路器模式。断路器模式是一种用于处理分布式系统中故障的设计模式,它可以防止故障的扩散并提供故障恢复机制。 Spring Cloud Netflix提供了一个名为Hystrix的库,它实现了断路器模式。通过使用Hystrix,开发人员可以将对其他微服务的调用包装在断路器中,当调用失败或超时时,断路器会打开并提供备用响应或错误处理。这样可以避免故障的扩散,并提供更好的用户体验。 使用Spring Cloud Netflix Hystrix,可以通过Spring RestTemplate或Spring Cloud Netflix Feign来实现断路器模式。这些工具可以帮助开发人员轻松地将断路器应用于他们的微服务架构中,提高系统的可靠性和弹性。 以下是一个使用Spring Cloud Netflix Hystrix的示例工程[^2]: ```java // 定义一个服务接口 @FeignClient(name = "example-service", fallback = ExampleServiceFallback.class) public interface ExampleService { @GetMapping("/api/example") String getExampleData(); } // 实现服务接口的降级处理 @Component public class ExampleServiceFallback implements ExampleService { @Override public String getExampleData() { return "Fallback data"; } } // 在需要使用断路器的地方注入服务接口 @RestController public class ExampleController { @Autowired private ExampleService exampleService; @GetMapping("/api/example") public String getExampleData() { return exampleService.getExampleData(); } } ``` 在上述示例中,我们定义了一个名为ExampleService的服务接口,并使用@FeignClient注解将其标记为一个Feign客户端。在接口中,我们定义了一个getExampleData()方法,用于调用名为example-service的微服务的/api/example接口。 如果调用失败或超时,ExampleServiceFallback类将被用作降级处理的实现。在降级处理中,我们可以返回一个备用的响应,例如"Fallback data"。 在ExampleController中,我们注入了ExampleService,并在getExampleData()方法中调用了该服务。如果调用失败或超时,将会返回降级处理的响应。 通过使用Spring Cloud Netflix Hystrix和相关工具,我们可以轻松地实现断路器模式,提高微服务架构的可靠性和弹性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值