当前位置: 首页 > 科技观察

想从事数据科学工作,你有编码技能吗?

时间:2023-03-15 16:44:12 科技观察

让我们从这个故事开始:“那是一个星期五的晚上。我记得很清楚,和父母一起去度假。这是他们第一次来班加罗尔,我本来打算带他们四处参观的。工作已经完成,通常周五晚上也不会太忙。但是在我下班的时候,对方突然发来邮件让我要一份很久以前的报告。一年前不再提交这份报告。虽然不开心,但是跑标准代码也不算太麻烦。该死!我错了,整理了一个晚上……”这跟我们的话题有什么关系呢?机智的你应该已经猜到了吧~现在每个企业都把数据科学作为每个阶段的关键杠杆决策周期,启用重要的业务策略。但是数据科学的难点在哪里?数据分析师、业务分析师或数据科学家如何工作?来源:unsplash所有数据科学问题都可以分为两个,一组“活动”和一组几个步骤“绝对是”最佳操作程序”。“活动”包括数据收集、数据清理、数据整理、假设检验、模型开发、验证等。如果您在分析行业工作过,您可能熟悉这些术语。但是“最佳实践”很少为人所知,也没有被很多人实践过。事实上,它最强调项目管理、构建库、文件管理、通信和代码维护。作为数据科学家,你必须确保你遵守“3C's”:一致性(consistency)、沟通(communication)、消费(consumption)工作必须一致,与利益相关者沟通业务细节,最重要的是你是被消耗。“今天的公司正在寻找能够创建可供多个团队使用的解决方案的数据科学家。它就像一个产品,每个人都可以使用的产品。这不仅可以节省资金,还可以避免将资金浪费在解决不同领域的类似问题上。商务活动,省时省力。”数据科学中的编码与软件开发有很大的不同,你不仅需要知道如何去做,还需要了解很多数据和业务内容。今天我要讲的是“一致性”以及如何做在编码中做到这一点。在MuSigmaBusinessSolutions工作了三年,以及迄今为止我遇到的所有挑战,给了我很多很棒的经验。以下五点将简要说明什么是“数学+业务+数据+technology=datascience”,让你的技能大大提升!1.代码可读性好吗?被大家评论过的格式好的代码就是天堂。它有助于轻松修补错误并确保顺利完成QA。每个数据科学团队都遵循“同行质量检查(QC,PeerQualityCheck)”的理念,以确保数据能够准确输出。在提交最终结果之前让您的同行审核您的最终结果是一种很好的做法。可读代码包括:项目名称、代码用途、版本、作者姓名、创建日期、完成日期、最后修改时间、每个代码片段在执行业务之前都有一行描述(通过这些代码准确获取)后做了哪些修改规则信息或使用的过滤系统),每两个代码片段之间有适当的间距,留出足够的距离以合理地使用常规命名的表。不要将其命名为“CreateForm”,您可以将其替换为“CreateFormCustomer-Pages-Overview”。这使表格更加直观,而无需遍历所有剩余的代码片段。2、代码是否有可重用的模块大多数时候,我们会根据当前的业务问题使用相似的模式和不同的过滤器来处理数据集,或者使用同一张表来简要描述业务问题中的各种情况。例如,现在你手上有一个客户数据集,信息包括客户ID、交易ID、交货日期、产品类型和销售数据。您被告知要找到占每种产品销售额80%的顶级客户。通常会创建、复制和粘贴一组专用代码以使用另一个过滤器。一个好的编码员会从用户的角度创建一个模块,输入产品类型和销售价格字段,并得到想要的结果。可以在所有平台上创建可重复使用的模块,避免冗余代码行和轻松的质量控制。3、输入的密码可以恢复吗?Anyinputrecoverable是指无论是什么类型的输入,都可以输出结果。代码实践中最难的问题就是还原输入,实现代码的复用。分析师可能会收到来自不同利益相关者的数据请求,并理想地编写满足各种业务请求的代码。例如,电子设备和化妆品公司的销售主管想知道各自客户信息对应的产品消费记录。分析师过去常常在笔记本电脑或平板电脑上工作,知道所有电子产品名称都是小写的。但要核实化妆品信息,可能需要先过滤所有产品,然后再查看客户数据中与化妆品相关的交易。但实际上,在product列中使用UPPER()可以避免不必要的检查。在现实世界中,考虑到所有可控异常,很难使每个输入代码都可恢复。4、输出结果是否经得起数据和业务的例行检查。准确的数据传输是项目成功的关键。许多业务决策都是基于报告的数据,一个小错误可能会产生巨大影响。如果让你根据客户交易量找到前100名忠实客户,公司会根据你推荐的结果为这些人提供30%的折扣。这个想法是为了找到忠实的客户并引导他们购买更多的产品。通过更低的价格导致更高的交易量。然而,许多人没有意识到的是,大多数公司使用的数据集并不是绝对真实的,需要经过处理才能使用。例如,客户付款时,操作可能不成功,但系统也会记录下来。最后,在计算交易金额时,应去除此类错误信息,否则每个客户的交易金额预算将不准确。难点在于识别异常信息。以下是编码过程中必须做的检查:掌握指向性能的关键指标有助于实现每个步骤的数据聚合。在上面的例子中,所有的客户交易都是这个领头羊。根据该公司的年度报告,将发现近12,000名客户在该网站上购买了产品。但是查询数据时,只有8000条消费者信息。数据准确吗?仔细检查代码或与利益相关者合作解决数据问题。在做任何事情之前必须检查数据集的级别。根据是单一系列还是复合系列来划分,可以识别数据库或表中的异常信息。有助于识别重复条目并防止重复计算。无论您是添加一个还是多个表,请确保您处于同一级别。请务必跟踪显示所有加入信息之前和之后的记录数。这将有助于识别多个数据图或重复计算的信息。快速对数据集进行描述性统计。这将有助于找出数据分布和所有可能的缺失值。图源:unsplash5。异常处理指南异常处理听上去和输入码恢复很像,但操作起来完全不同。问大家几个问题:你认为一个公司的客户数据有多少条记录?是上面显示的20252条记录吗?别开玩笑了!所有客户数据中每个产品的交易记录可以有数百万条。SQR、R、Python或Alteryx中的查询可能需要几个小时。试想一下,如果你需要查询不同产品的表,你如何处理突发情况?请务必检查查询时间。由于并发使用,多个用户同时查询同一个数据集,因此查询大型数据集通常需要比预期更长的时间。需要保证代码运行到一定程度后能够自动停止执行。所有的编程语言都允许设置异常执行,下面的代码片段在查询失败后也会停止执行。这样,当出现情况或错误时,可以立即采取必要的纠正措施,而不是等待整个代码执行完毕。来源:unsplash“我的手机突然震动,时间是早上8:00。我花了五个小时来寻找不匹配的号码。虽然我是一年前这样做的,但我几乎不记得任何使用业务规则。每一步流程不完善,质控数据不够,导致问题更难发现,现在也算是意识到了良好编码习惯的重要性。”这个“令人痛心”的故事,足以引起大家注意良好的编码习惯了吗~