python算法工程师需要学什么_算法工程师大致是做什么的?

有很多小伙伴可能都对未来的工作内容有所好奇,不知道所谓的算法工程师到底日常在做什么,而我以后能不能胜任?

继续看下来,或许能解开你的疑惑~>_<

下面的内容将通过对比比较接近算法工程师日常工作内容的kaggle比赛和算法工程师真正的日常任务之间,存在的不同侧重点~

你有没有参加过Kaggle比赛?如果你正在学习,或者已经学过机器学习,那么很可能在某些时候你会参加一次。这绝对是将构建模型的技能应用于实践中的好方法,我在学习时花了很多时间在Kaggle比赛上。

如果您以前参加过机器学习竞赛,那么您的工作流程(步骤)可能看起来像我的一样:下载一些数据(可能是一个或几个CSV文件)。

也许做一点数据清理,或者数据集可能已经足够干净了。

执行一些预处理,例如将分类数据转换为数字数据。

通过各种合适的模型运行数据,直到找到最佳模型。

花费很长时间在超参数调整,特征工程和模型选择上,因为一个非常小的改进可能意味着你在排行榜上升几个位置。

结束

但是,如果您正在为实际业务应用程序开发机器学习模型,则该过程将看起来完全不同。我第一次在业务场景中部署模型时,这些差异非常令人惊讶,特别是在工作中的某些阶段花了很多时间。在下面的文章中,我想描述在业务环境中开发模型的过程,并详细讨论这些差异和解释它们存在的原因。在商业案例中,工作流程将有更多的步骤,可能看起来像这样。将业务问题翻译成数据问题。

考虑机器学习模型如何连接到现有的技术栈中。

花费大量时间提取,转换和清理数据。

花费大量时间进行探索性分析,预处理和特征提取。

建立模型。

选择能够以最少的工程量集成到现有技术栈中的最佳模型。

考虑到业务价值,优化模型直到“足够好”。

部署模型。

在生产中监控模型。

必要时重新训练。

构建版本2。

继续,直到模型不再有业务用途。

在本文的其余部分,我将详细介绍每个步骤。

您需要将业务问题翻译成数据问题

在Kaggle比赛中,要解决的问题将在前面明确定义。例如,在最近一项名为“Severstal:钢铁缺陷检测”的竞赛中,您将获得一些准备好的数据,并以数据问题的形式明确说明问题。今天,Severstal使用来自高速摄像机获取的图像推进缺陷检测算法的改善。在本次竞赛中,您将通过对钢板上的表面缺陷进行定位和分类来帮助工程师改进算法。

在实际业务问题中,您不一定会被要求构建特定类型的模型。团队或产品经理更有可能遇到业务问题。这可能看起来像这样,有时甚至可能没有明确定义问题。客户服务团队希望减少业务回复客户电子邮件,实时聊天和电话所需的时间,以便为客户创造更好的体验并提高客户满意度指标。

根据此业务要求,您需要与团队合作,在开始构建实际模型之前,计划并设计此问题的最佳解决方案。

发数据并未“清洗”(不干净的数据)

您使用的数据几乎肯定不会被“清洗”。通常会有缺失的值。日期可能格式错误。值,错误数据和异常值可能存在拼写错误。在你真正建立模型的任何地方之前,很可能花费大量时间来删除错误数据,异常值和处理缺失值。

您可能必须从不同来源中获取数据

同样,您需要的所有数据可能不是来自一个简单的来源。对于数据科学项目,您可能需要从以下任意组合中获取数据:SQL查询(有时跨多个数据库),第三方系统,Web抓取,API或来自合作伙伴的数据。与数据清理类似,这部分通常是项目中非常耗时的部分。

特征选择非常重要

在机器学习竞赛中,您通常会有一个给定的数据集,其中包含可在模型中使用的有限数量的变量。功能选择和工程仍然是必要的,但您首先要选择的变量数量有限。在处理现实问题时,您很可能会访问大量变量。作为数据科学家,您必须选择可能产生良好模型的数据点来解决问题。因此,您需要结合使用探索性数据分析,直觉和领域知识来选择正确的数据来构建模型。

发构建模型占流程中的最小的比重

与花费在选择,提取和清理数据的所有这些时间相比,实际构建模型所花费的时间将非常少。对于特别是模型的版本1,您可能希望将模型用作基线测试,那么您可能在第一个实例中仅花费少量时间进行模型选择和调整。一旦业务价值得到证实,您就可以投入更多时间来优化模型。

调整模型比您想象中要花费更少的时间

在Kaggle比赛中,花费数周时间调整模型以获得模型得分的小幅提升并不罕见。由于这个小小的改进可能会提升你在排行榜上的几个名次。例如,在当前的Severstal 竞赛中,排行榜上位置1和2之间的得分差异目前仅为0.002。绝对值得花时间来提高你的分数,因为它可能会给你带来最高奖金。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个机器算法工程师,以下是一个常见的习路线: 1. 习数基础:机器算法涉及许多数概念,如线性代数、概率论和统计。建议先打好数基础,了解矩阵运算、概率分布和统计推断等内容。 2. 习编程语言:掌握至少一种常用的编程语言,如Python或R。这些语言在机器习领域被广泛应用,具有丰富的库和工具,方便实现和调试算法。 3. 习机器算法习经典的机器算法,如线性回归、逻辑回归、决策树、支持向量机和随机森林等。理解算法的原理、优缺点和适用场景。 4. 掌握深度习框架:习深度习框架,如TensorFlow或PyTorch。深度习在图像识别、语音处理和自然语言处理等领域有广泛应用,掌握相应的框架可以更高效地实现和训练深度神经网络。 5. 数据预处理和特征工程:了解数据清洗、特征提取和特征选择等技术。数据预处理是机器习流程中重要的一环,对数据进行有效处理可以提升模型的性能。 6. 模型评估和调优:习评估机器习模型的方法,如交叉验证、指标选择和超参数调优等。了解常见的模型评估指标,如准确率、精确率、召回率和F1值等。 7. 实践项目:通过实际项目锻炼自己的技能,参与竞赛或者解决实际问题。实践中会面临各种挑战和困难,能够提升自己的解决问题的能力。 8. 持续习和跟进最新研究:机器习领域发展迅速,新的算法和技术不断涌现。保持持续习的态度,关注最新的研究成果和技术趋势,保持自己的竞争力。 以上是一个大致习路线,具体的习内容和深度可以根据个人兴趣和实际需求进行调整。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值