查看原文
其他

一个专业选手和业余选手最大的区别不是智商,而是专业选手在解决问题时有一套系统的工作流程和完善的知识体系,使得他每一步的行动不是想到什么就干什么。

一个数据科学家的工作流程简而言之分成以下五个步骤:

一、定义问题

这是最重要也是最关键的一步,就好像任何一个软件开发生命周期的第一步都是要做需求分析。在开始实实在在地coding前,认真地写说明文档绝不是浪费时间。

经常犯的错误是没有理解商业问题,理解业务需求就匆匆开始建模和编码。常见的商业问题可以举几个例子:

做数据分析不是为了做而做,如果任何数据分析不能给公司盈利带来帮助,不能紧贴业务的需求,那都是YY。

通常,我们需要写一个工作陈述。这也是保护自己的一个重要策略。在陈述中我们要清晰地定义自己的问题、目标,现有的数据能让我们做到什么,不能让我们做到什么。即使项目在某种程度上失败了,我们也能避免来自团队其他人的无端指责。

不求有功,但求无过。

二、观察数据

这是绝对不能跳过但大多数人都跳过的一步。

所谓垃圾进,垃圾出。

开始大干特干前,问问自己:

三、数据清洗

现实世界的数据是乱糟糟的。工作中绝大多数时间也花在这个部分。

关于数据清洗可以采取以下这些策略:

在这个阶段需要形成一种对数据视觉上的直觉。那幅图是怎么样的?当然,你心里还要产生各种需要验证的假说。

四、特征工程

特征工程和特征提取是成功建模的基石。它考察你在多大程度上理解商业问题的本质,这个部分其实更考验人对人性、心理、市场和经济学规律的理解。但是重要程度远比你选取哪个机器学习的算法、统计技巧甚至使用哪个优秀的算法重要得多。

这一步做法了,你模型表现能达到的上限也就决定了。

五、建模

建模这一块现在越来越傻瓜化了。很多现成的包也开发的很成熟。

这部分的难点是调参!我们需要不断地在cross validate中,榨干每个模型的所有剩余价值。

六、输出价值

最后,你需要输出你的工作价值。通常你的工作价值分成两种:对人的和对机器的。

对人的就是你需要说服你的上司或者团队同事你的建议是靠得住的,你的发现对公司决策有帮助的。做好这一点的关键是你需要有很强的同理心,站在他人的角度思考问题,毕竟每个人所受的训练不同,所站的立场不同,你对一个产品经理、一个设计师和一个商业分析师讲的三个故事很有可能需要特别定制。

对机器的就是你开发的这套流程(pipeline)能让后来者使用,提升大家的工作效率。这一部分失败原因通常有三个:

七、迭代、迭代再迭代

第一版结果可以糙但是要快,避免更大的投入,然后做无用功。比如你很有可能发现你手里拿到的数据全都是噪声。如果你太追求完美主义,很有可能让自己做无用功。

能自动化尽量自动化,让程序模块化并且易于修改。

apple用户打赏



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存