TowardsDataScience 博客中文翻译 2021(十八)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

我对有抱负的数据科学家的 3 条建议

原文:https://towardsdatascience.com/3-suggestions-i-have-for-aspiring-data-scientists-50ef06808aa5?source=collection_archive---------28-----------------------

如果你是从另一个职业进入数据科学,有一些方法可以让这个转变更平稳。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安德鲁·尼尔Unsplash 上拍照

数据科学已经吸引了许多不同行业的大量人员。随着收集和存储数据能力的提高和成本的降低,越来越多的企业投资于数据科学,以在其专业领域表现更好。

由于数据科学仍然是一个成熟的领域,尚未在传统教育体系中得到很好的确立,因此绝大多数数据科学家来自各种职业。

来自不同背景的数据科学家决定在研究生院或职业生涯的某个阶段从事该领域的工作。他们的共同点是面临相似的挑战。

作为一名在 7 年专业工作经验后转行的数据科学家,我想分享 3 条我认为对有志成为数据科学家的人有帮助的建议。

更多地使用数据

机器学习模型或数据应用最重要的部分是数据。数据的质量、相关性和兼容性对于任何数据应用程序都非常重要。

我觉得学习数据科学的流行资源更侧重于建模部分。有很多机器学习算法,其中大多数对于典型的应用程序来说都很好。你不必掌握该领域使用的所有机器学习算法。

尝试不同的算法或超参数可能会改善您的成本函数。然而,在现实生活中,花费数不清的时间来完成这样的任务通常是不可接受的,也是负担不起的。

能够改善模型或应用程序的是数据本身。因此,数据科学家应该掌握用于清理、操作和预处理数据的工具。

根据任务的不同,您可能会处理结构化或非结构化数据。你的目标应该是能够在任何情况下处理数据争论操作。

学习能够处理大数据的工具

数据科学如此受欢迎的原因之一是不断发展的收集、存储和处理数据的工具。访问数据变得越来越容易,越来越便宜。

因此,在典型的应用程序中,我们可能要处理大量的数据。归根结底,更多的数据意味着更强的预测能力和更好的结果。

当我们处理大规模数据时,分布式数据和计算变得更加重要。例如,最流行的数据分析和操作工具 Pandas 并不是你最好的朋友,因为数据变得非常大。

分布式引擎正在成为数据科学生态系统中的主要工具。我建议学习这种允许分布数据和计算的工具。

其中最受欢迎的是 Spark,这是一个用于大规模数据处理的分析引擎。它让您可以将数据和计算分散到集群上,从而实现显著的性能提升。

做一个需要一天以上才能完成的项目

没有工作经验的有志数据科学家面临的最大挑战之一是能够展示他们的技能。很难用几个证书说服招聘人员或招聘经理。

如果你以前没有工作经验,就没有一个简单的方法来展示你的技能。展示你的技能和知识的最强候选人是一个项目。

我绝对不是指你可以在一两天内完成的项目。这样的项目有利于练习,但不足以让你在竞争激烈的就业市场中脱颖而出。

你要找到一个可以用数据解决的问题,设计你的解决方案。问题不必复杂,你也不必提供最佳和最有效的解决方案。

能够框定一个可以用数据解决的问题,比完成这样平凡的项目更有价值。它证明了你的分析思维能力,并清楚地表明你对数据科学有全面的了解。

结论

我转行成为了一名数据科学家。我花了将近两年时间才找到第一份工作。在这期间,我不得不克服许多挑战来达到我的目标。

我在这篇文章中分享的建议在我的旅程开始时会对我有很大帮助。我认为它们将对有抱负的数据科学家或任何想在数据科学领域工作的人有所帮助。

感谢您的阅读。如果您有任何反馈,请告诉我。

我作为一家人工智能初创公司的第一名员工的 3 点心得

原文:https://towardsdatascience.com/3-takeaways-from-my-journey-as-1st-employee-of-an-ai-startup-e2200c4b2a35?source=collection_archive---------20-----------------------

人工智能|创业公司

人工智能创业部门适合你吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由阿尔莫斯·贝托尔德Unsplash 上拍摄

在 AI 公司工作就不一样了。成为第一个员工是神奇的。

从我记事起,我就喜欢数学和物理。我高中成绩最好,总是如鱼得水。正如周围所有人所料,我最终在 2017 年拿到了工程学位。可悲的是,在经历了五年充满怀疑和失败的坎坷之路后,我失恋了。我想要改变,那个夏天我有了一个顿悟:为什么不把我最擅长的和我下一步想做的结合起来呢?人工智能是我的答案。

我有了一个新的目标,并重新下定决心去实现它。我开始在网上学习 AI。我参加课程,阅读论文,学习编码。我花了四个月时间和时间赛跑。像往常一样,有一天我找到了我一直在寻找的职位。一家专注于创新的人工智能初创公司想要一名具有一些人工智能知识的工科毕业生。那是我。我得到了那份工作。然而,这不是普通的工作:我是这家公司的第一名员工,也是唯一一个对人工智能有所了解的人。这将是一次充满挑战的旅程。

作为人工智能初创公司的第一名员工,我将与你分享我在这 3 年的旅程中学到的 3 个教训。这篇文章是为那些在人工智能领域刚刚起步,不知道从快节奏、快速变化的创业环境中期待什么的人准备的。尽情享受吧!

第一名员工——激动人心的工作的缩影

我组成了整个技术部的一半。首席技术官和我一起排除万难。该公司的核心项目涉及实时双向手语翻译器的设计和开发。鉴于连谷歌都没有建造一个,这无疑是雄心勃勃的。我的正式职位是“初级开发人员”我的实际职位是人工智能研究员、ML 工程师、数据工程师、数据科学家,甚至文档人员的混合体。

QED Investors 的联合创始人弗兰克·罗特曼几天前写了这条推文。这与我的经历产生了深刻的共鸣:

有一天我在写数据处理的代码,第二天我在看论文,寻找最适合我们需求的模型。在我与我们的手语专家录制视频的第二天,然后在周末,我必须做一个演示,向潜在客户解释产品如何工作。每天都不一样。这是一次持续的冒险;非常规工作的定义。我喜欢这种感觉。每天早上醒来,我都沐浴在那种不确定的感觉中,混合着一种创新的欲望,带着一种不可阻挡的意志去面对任何挑战。

但不是每个人都一样。有些人喜欢做特定的、定义明确的、不超出其职位界限的任务。他们可能喜欢有创造力,但是选择把那部分导向他们的爱好。日常工作没那么令人兴奋,但更安全。这是公平的,我们更喜欢在我们所做的事情上占优势的感觉,而不是每天感觉自己像一个愚蠢的新手。

弗兰克·罗特曼在他的推特上提到了第一批十名员工。我经历了最极端的情况。我没有同事,没有人可以向我寻求建议,因为我是“专家”然而,我不会用任何其他东西来改变这种体验。我没有安全感,但我觉得自己还活着。这取决于你找到你属于光谱的哪一边。

强大的理论背景的重要性

最近在关于数据科学有一场关于拥有深厚数学知识在机器学习中的作用的辩论。GreekDataGuy——原名 Chris The Data Guy——写了一篇题为“机器学习不需要数学”的文章不久之后,萨雷姆·塞茨回应并捍卫了相反的观点:“你确实需要数学来进行机器学习

GDG 声称在机器学习中,数学被高估了。编码和知道如何处理数据更重要,因为库可以“为你做重活”他支持自上而下的方法:先把手弄脏再学习。相反,Sarem Seitz 认为,强大的数学和理论背景可以给你一个更广泛的工具箱来面对意想不到的问题。你了解你的模型。您可以更快地调试,或者更容易地“发现违反理论的地方”

我站在萨勒姆这边。因为我接受了大量的数学和物理培训,我设法找到了与数据或人工智能无关的问题的工程解决方案——无论如何我都必须解决的问题。尽管如此,如果你问我是否认为数学对人工智能领域所有公司的所有技术职位都同样重要,我的答案是“不”。正如我在上一节中所示,在初创公司工作与在大型传统公司工作是不同的。数学或者其他类型的理论知识的有用程度随着你工作的具体程度而变化。我发现了解数学和工程学非常有帮助,因为我比大多数人面临更广泛的挑战和问题。

这里有一个真实的故事。当我加入这家公司时,他们正试图用一套手镯将符号翻译成文字。这个想法是使用诸如角速度、轨迹和肌肉压力等变量将一组手/臂运动映射到一个“符号类”。经过几个星期的努力,我意识到在我们进行测量的方式上有一个根本性的错误。手镯没有记录一个重要的变量。如果我是一名纯粹的程序员——或者甚至是一名数据科学家——我甚至不会去寻找那个问题。我被告知要使用手镯中的数据,为什么我要怀疑它们是否正常工作?没有一些工程知识,我怎么能解决,甚至理解这样一个问题呢?

不过,我认为这种情况在大公司并不常见。硬件工程师会处理像这样的问题。然而,现在许多科技公司都遵循创业模式。你不知道明天会发现什么。你不知道找到解决方案需要什么工具。事实上,你可能甚至不知道你被问到的问题是否正确。在这些情况下,强大的理论、数学和工程背景可以扭转局面。

工业界还是学术界?单人乐队

只有 4 个月的人工智能知识,我几乎没有资格被称为一个发起者。我或多或少有一些概念,并且知道主要的范例和框架的名字。我当然不准备承担一个几乎无法解决的项目。我很高兴得到了这份工作,但我很清楚,如果我想迎接挑战,我必须非常努力地学习。

然而,令我惊讶的是,我很快意识到我必须向我的老板证明每一分钟的学习。即使对我来说很明显,这是项目成功的一个必要条件,但关系努力-结果对他们来说太间接了,看不到有用性。我必须在学习如何解决问题和实际解决问题以满足老板之间找到平衡。我必须研究科学,开发技术,设计产品。我不得不自己解决冲突和不一致的地方,而不是给不同的团队不同的公司观点

在大公司中,不同的部门对公司持有不同的观点——并有不同的标准来决定什么更重要——因此他们可以各自维护自己的利益。产品设计师认为用户界面应该是重中之重。数据科学家认为,“机器学习模型的好坏取决于它得到的数据”人工智能研究人员坚持使用最先进的算法。如果他们的观点发生冲突,每个团队都会努力获得最多的资源——希望找到一个稳定的平衡。

科学家回答的问题包括:

  • 机器学习还是深度学习?
  • 卷积网络还是递归网络?
  • 每个任务都有一个模型,还是每个任务都有一个模型?

技术人员决定:

  • Python 还是 R?
  • Keras 还是 TensorFlow?
  • 云计算还是内部部署?

以数据为中心的人会问:

  • 同质数据集还是真实数据集?
  • 预先存在的数据库或建立我们自己的?
  • 几节课?每节课有多少个样本?

而产品管理总会抱怨:

  • 系统应该更快。
  • 我们应该让它在手机上运行。
  • 我们应该翻译句子,而不仅仅是单词。

我不得不全盘考虑。我不得不收起自己内心所有冲突的观点,然后解决取舍问题。这就是为什么我不能保持以大学为中心的心态。我必须在学术界和工业界之间找到平衡。在科学和技术之间。准确性和可操作性之间。起初,我和我的老板们有很多矛盾。但随着时间的推移,我开始看到更大的画面。我们应该始终致力于在严格的基础科学的基础上创造最好的技术。然而,每个项目都存在于一个更大的框架中,在这个框架中,其他变量——资源、客户、投资者和期限——都扮演着重要的角色。

外卖食品

科技创业领域充满了有趣的项目。你不需要在谷歌或微软工作来实现你的抱负。然而,创业公司并不是大公司的小型复制品。它本质上是不同的,它的运作方式深深地影响着你要做的工作。

我在一家人工智能初创公司工作了三年,我学到了一些在大型科技公司肯定学不到的东西。更重要的是,我是第一个员工,这为我提供了独特的视角和专业背景,这将使我在整个职业生涯中受益匪浅。

以下是主要要点:

  • 早期创业的员工不会在一个固定的位置上工作。每一天都可能是不同的,是一次冒险。这是非常规工作的定义。如果你讨厌每天做同样的事情,那么快节奏、快速变化的创业环境就是你的归宿。这份工作并不安全,你也不会有安全感,但你会每天都很兴奋,就好像这是你的第一天。
  • 许多从事人工智能的技术人员认为理论/数学背景是一个额外的工具。它有时会有帮助,但如果你没有它就不会那么痛。其他人认为,它可以帮助面对未来的意外问题,所以以防万一还是有好处的。在科技创业领域,这是必须的。你的简历不应该说:“我是全栈程序员。”它应该说:“我有工程、编程、人工智能和数据科学的概念。我知道他们是如何合作的。”
  • 在小型创业公司中,团队的定义并不明确。你必须横向解决公司许多领域的挑战。专业化往往次于一般化。在一家初创公司,最基本的是要全面了解公司和你参与的项目。你必须在项目最科学的一面和你拥有的资源和必需品之间找到平衡。在更大的公司里,每个团体都捍卫自己的利益。在一个小的创业公司,你可能不得不承认双方,自己解决冲突。

跟我一起去未来旅行了解更多关于人工智能、哲学和认知科学的内容!此外,欢迎在评论中提问或在 LinkedInTwitter 上联系!😃

推荐阅读

</5-reasons-why-i-left-the-ai-industry-2c88ea183cdd>

避免决策树过度拟合的 3 个技巧

原文:https://towardsdatascience.com/3-techniques-to-avoid-overfitting-of-decision-trees-1e7d3d985a09?source=collection_archive---------0-----------------------

决策树的预剪枝、后剪枝和集成的实际实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由来自皮克斯拜皮特·林福思拍摄

决策树是一种用于分类和回归任务的非参数监督机器学习方法。过度拟合是一个常见的问题,数据科学家在训练决策树模型时需要处理这个问题。与其他机器学习算法相比,决策树很容易过拟合。

你的决策树是否过拟合?

过度拟合是指模型完全符合训练数据,但无法概括测试中未发现的数据的情况。当模型记忆了训练数据的噪声并且未能捕获重要的模式时,过拟合情况出现。完美匹配的决策树对训练数据表现良好,但对看不见的测试数据表现不佳。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(来源),偏差-方差权衡

如果允许决策树训练到最大强度,模型将会过度拟合训练数据。有多种技术可以防止决策树模型过度拟合。在本文中,我们将讨论 3 种这样的技术。

***Technique to discuss in this article:* Pruning
** Pre-pruning
* Post-pruning*
Ensemble
** Random Forest***

什么是修剪?

默认情况下,决策树模型可以增长到其最大深度。修剪指的是一种删除决策树的部分以防止增长到其全部深度的技术。通过调整决策树模型的超参数,可以修剪树并防止它们过度拟合。

有两种类型的修剪:修剪前和修剪后。现在让我们来讨论对每种修剪技术的深入理解和实际操作。

预修剪:

预修剪技术指的是提前停止决策树的生长。预修剪技术包括在训练流水线之前调整决策树模型的超参数。决策树的超参数包括**max_depth****min_samples_leaf****min_samples_split** 可以被调整,以提前停止树的生长,防止模型过拟合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),AUC-ROC 分数与最大深度

从上面的图中观察到,随着 max_depth 训练的增加,AUC-ROC 分数连续增加,但是在 max depth 的值之后,测试 AUC 分数保持恒定。最佳决策树的最大深度值为 5。进一步增加最大深度值会导致过度拟合问题。

**max_depth****min_samples_leaf****min_samples_split**是决策树算法的其他超参数,它们可以被调整以获得健壮的模型。可以使用 GridSearchCV 技术的 sklearn 实现来为决策树模型找到最佳的超参数集。

(作者代码)

后期修剪:

后剪枝技术允许决策树模型增长到其最大深度,然后移除树分支以防止模型过度拟合。 成本复杂度剪枝(ccp) 是后剪枝技术的一种。在成本复杂性修剪的情况下,可以调整**ccp_alpha** 以获得最佳拟合模型。

Scikit-learn 包附带了使用函数**cost_complexity_pruning_path()**计算决策树的**ccp_alpha** 值的实现。随着**ccp_apha** 值的增加,树的更多节点被修剪。

成本复杂性削减(后期削减)的步骤如下:

  • 将决策树分类器训练到其最大深度(默认超参数)。
  • 使用函数**cost_complexity_pruning_path().**计算 ccp 阿尔法值

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),ccp 阿尔法值

  • 用不同的**ccp_alphas** 值训练决策树分类器,并计算训练和测试性能得分。
  • 绘制训练和测试分数的每个值为**ccp_alphas** 值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),AUC-ROC 评分 vs CCP _ 阿尔法斯

从上面的图中,CCPα= 0.000179 可以被认为是最佳参数,因为训练和测试的 AUC-ROC 分数分别为 0.94 和 0.92。

(作者代码),后期修剪

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),**左:**未修剪的决策树,**右:**修剪后的决策树

集合—随机森林:

随机森林是通过引导多个决策树进行分类和回归的集成技术。随机森林遵循引导抽样和聚集技术,以防止过度拟合。

阅读下面提到的文章中的,深入了解随机森林和其他合奏技术。

可以使用 Scikit-Learn 库实现随机森林。您可以进一步调整随机森林算法的超参数,以提高模型的性能。**n_estimator**可以调整参数以减少模型的过拟合。

结论:

在本文中,我们讨论了防止决策树模型过度拟合的技术。预修剪和后修剪技术可以用来处理过拟合的问题。仅通过训练,具有默认超参数的随机森林模型不能完全减轻过度拟合的问题,因此需要进一步调整它。

参考资料:

[1] Scikit-Learn 文档:https://sci kit-Learn . org/stable/auto _ examples/tree/plot _ cost _ complexity _ pruning . html

喜欢这篇文章吗?成为 中等会员 继续无限制学习。如果你使用下面的链接,我会收到你的一小部分会员费,不需要你额外付费。

https://satyam-kumar.medium.com/membership

感谢您的阅读

我成为数据科学家的三件事

原文:https://towardsdatascience.com/3-things-i-did-to-become-a-data-scientist-87a57a14de5d?source=collection_archive---------5-----------------------

意见

…在成为数据分析师的时候

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

内森·杜姆劳在Unsplash【1】上拍摄的照片。

目录

  1. 介绍
  2. 掌握流行的机器学习算法
  3. 执行端到端案例研究
  4. 使用数据分析来掌握数据处理
  5. 摘要
  6. 参考

介绍

这篇文章是写给那些目前是数据分析师,并且希望转行从事数据科学的人的。从局外人的角度来看,有些人会说这两个角色很相似,但正如我们所知,除了一些相似之处,他们还需要非常不同的技能。那么,如何才能弥合这些角色之间的差距呢?这就是我将在这里解释的。虽然有一些资料通常会推荐研究生院、在线课程和教程,但我想重点介绍一些更具体和独特的事情,让你从最初的数据分析师过渡到现在的专业数据科学家。如果你想知道成为数据科学家 能做的三件事,请继续阅读。

掌握流行的机器学习算法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Markus SpiskeUnsplash【2】上拍摄的照片。

虽然这个主题看起来很明显,但实际上我发现自己首先学习的是逻辑回归、回归和决策树。我之所以说“流行”,是因为每隔一年左右,就会有一种新的算法,课程创建者还没有开发出可供你在学校学习的材料,因此,你需要自己去学习最新、最新、最好的算法和库。这个题目有两面,一面是掌握代码,一面是掌握理论。通常,在接受一些教育后,你会越来越深入地钻研代码,努力远离真正让算法工作的东西。因此,知道如何用描述性的方式,而不仅仅是编程性的方式来解释几乎前 10-20 个算法是很重要的。当你继续成为一名数据科学家时,你会意识到大多数算法库都以相同的方式工作,它们的实际代码相当简单,你开始试错,然后意识到你已经忘记了一些算法与另一个算法不同背后的理论,以及它在概念层面上的实际工作方式。

也就是说,这里有一些方法可以让你掌握这些算法。

  • 作为一个行动项目 ,我个人认为在卡片的正面写下算法名称,然后描述它如何工作,以及你将如何向自己和其他人解释它。
  • 同样, 作为下一个动作项 ,你甚至可以画出算法是如何工作的,比如像决策树。当你实际写下并画出一些东西时,这种方法会让你更好地记住这些材料。
  • 在编程方面,一个在比较几乎所有机器学习算法方面特别有用的库是 PyCaret ,作者是 Moez Ali

因此,在你学会了基本算法之后,你会意识到一旦你成为一名专业的数据科学家,还有很多东西需要练习。所以,作为一个数据分析师,最好现在就去研究它们。更深入地说,许多课程、教程和教育材料将从相同的几个基本算法开始,但通常情况下,统计书籍或初学者的机器学习课程不会阐述更新和更受欢迎的算法,如 XGBoostCatBoost

执行端到端案例研究

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

活动发起人Unsplash【3】上的照片。

对于这种体验,我们的目标不仅是执行一个端到端的流程,以模拟你获得工作后的正常流程,而且还要分享你的案例研究,以便招聘经理、招聘人员和未来的同事能够看到你的一些能力。作为一名数据分析师,您可能已经熟悉了定义业务问题和调查相关数据的过程。也就是说,你会比那些不习惯这个过程的人占优势。

你需要做的是:

  • 找到一个共同的问题,比如预测股市
  • 获取一些免费的模拟数据
  • 确定您认为在模型中包含的重要特性
  • 在相同的数据上测试大约 10 种算法,并比较每种算法的性能
  • 用可视化来总结你的结果,这是你在专业环境中要做的

这个过程可以用多种方式展示。你可以在你的 Jupyter 笔记本 或类似的工具中展示这一切,并在笔记本的 markdown 中保存你的情节和讨论,或者在 Tableau、Excel 或 Google Data Studio 中创建单独的摘要视觉效果。展示您的案例研究的最常见方式是将其发布在 GitHub 上,大多数工程师、科学家和经理都习惯于这种格式和工具,因此在这里分享是首选。作为一名数据分析师,您可能会在组织数据、确定业务指标或 KPI(关键绩效指标)以及可视化结果方面有所帮助。

使用数据分析来掌握数据处理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Myriam JessierUnsplash【4】上拍摄。

数据科学最大的痛点可能就是数据的预处理或处理。这一步通常也需要最长的时间。作为数据分析师,您可以利用您的数据技能来确保用于模型的数据集处于最佳状态。正如我们上面讨论的那样,知道使用哪些算法可以节省您很多时间,因为例如,有时丢失数据可能会很麻烦,而一些算法会自动处理它。

以下是您可以在数据科学预处理步骤中利用数据分析技能的一些方法:

  • 以多种方式输入缺失数据,如meanminmax
  • 将 CSV 文件合并在一起以创建最终数据集
  • 利用 SQL 查询贵公司的表格,包括分组、案例和过滤器
  • 将数据类型重新分配给某些特征(‘object’intfloat‘category’等)。)

正如你所看到的,现在成为一名数据分析师,会让你在追求数据科学时获得一定的优势。人们常说,数据科学的大部分困难和压力实际上是数据处理,所以如果你能首先掌握它,或者至少熟悉它,你可能在成为数据科学家方面具有优势。

摘要

如果你想成为一名数据科学家,请确保你知道自己在做什么。虽然构建算法是更有趣的部分,但通常要记住的是,数据分析也是该过程的一个重要部分。我为了获得一份数据科学家的工作而做的另一件事是研究机器学习算法的理论——不仅仅是旧教科书和课程中列举的那些常见算法。当你探索最新的算法时,你也可能有优势,因为最有可能的是,它们正在改进以前的算法做得不好的地方,比如速度、准确性、数据类型、缺失值等等。最后,拥有一两个案例研究的作品集不仅对你自己有利,而且对更多的招聘经理和招聘人员更有吸引力。

总而言之,以下是我成为数据科学家所做的三件事,希望你也能运用这些行动:

* Master Popular Machine Learning Algorithms* Perform An End-to-End Case Study* Use Data Analytics to Master Data Processing

我希望你觉得我的文章既有趣又有用!如果您在成为数据科学家时利用了您的任何数据分析技能,请随时在下面发表评论— 哪些技能? 。这对你现在的数据科学事业有帮助吗?你同意还是不同意,为什么?

请随时查看我的个人资料和其他文章,也可以通过 LinkedIn 联系我。我没有从属关系。

感谢您的阅读!

参考

[1]照片由内森·杜姆劳Unsplash 上拍摄,(2018)

[2]2016 年马库斯·斯皮斯克Unsplash 上拍摄的照片

[3]2018 年活动创作者Unsplash 上的照片

[4]照片由 Myriam JessierUnsplash(2020)上拍摄

学习数据科学时不要做的 3 件事

原文:https://towardsdatascience.com/3-things-not-to-do-when-learning-data-science-149b9bc6a414?source=collection_archive---------3-----------------------

避免他们,以更快地达到你的目标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

UnsplashNeONBRAND 拍摄的照片

近年来,公司比以往任何时候都更加意识到数据科学的潜力。他们对数据相关解决方案进行了大量投资。因此,数据科学生态系统经历了巨大的增长。

这样热门的领域作为职业选择吸引人是必然的。许多来自不同职业的人转行到数据科学领域工作。

然而,这不是一个平稳和容易的过渡。数据科学是一个非常广阔的领域。它需要大量的学习和适应许多软件工具。因此,你需要努力工作,奉献自己来成功地完成这个转变。

我是许多决定转行成为数据科学家的人之一。我花了将近两年时间才找到第一份工作。我写了很多文章来分享我两年旅程的一些细节。

在这篇文章中,我将写下我认为有抱负的数据科学家应该避免的 3 件事。它们有可能会打破你的动力或让你慢下来。

不要试图在 Kaggle 上竞争

Kaggle 是一个很好的学习平台。你可以在那里找到非常有价值的内容。人们共享的笔记本包含很好的学习材料,数据集可用于实践,等等。

然而,我认为这些比赛并不适合这个领域的新手。我说的是有奖竞赛。有一些操场非常适合练习和学习。

有奖的很难。在 Kaggle 上比赛的时候还是可以学到很多东西的。然而,作为一个初学者,它可能会打破你的学习动机。

团队可能会花费很长时间来获得一点点的准确性改进。在数据科学职业生涯的初期,您应该花时间学习更基本的概念。

即使你在这些比赛上花了大量的时间,你也可能无法接近排行榜。这是绝对正常的。然而,没有变得更好或者至少是平均成绩可能会让你感到不满足。你不希望在你职业生涯的开始阶段出现这种情况。

把 Kaggle 当成一个伟大的学习平台,而不是一个测试你的知识或技能的地方。

不要陷入 Python-R 困境

数据科学生态系统中有大量的软件工具和软件包。在大多数情况下,这些工具帮助我们无缝、高效地完成任务。

这些工具的好处是不容讨论的。然而,如果使用不当,它们可能会变成一种劣势。

在许多情况下,您将拥有多种工具来执行一项任务。丰富的工具选择通常会导致涉及某种比较的讨论。例如,您必须至少读过一篇关于 Python 和 R 比较的文章。

挑一个就走!在你职业生涯的初期,质疑选择哪一个是浪费时间。大部分选项将足以学习基础知识。

这不仅限于 Python-R 比较。例如,Matplotlib、Seaborn 和 Altair 是 Python 的三个不同的数据可视化库。我很确定他们中的任何一个都能满足你的需求。

您可以使用 R 和 Python 库进行数据分析和操作。你选择哪一个并不重要,至少在你学习的时候。一旦你有了第一份工作,你就可以对自己的偏好做出更好的决定。

神经网络听起来很酷,但是…

深度学习是机器学习的一个子领域。它用于通过神经网络解决机器学习问题。原则不会改变。您创建一个模型,训练它,并根据损失函数对它进行评估。这是一个迭代过程,因此您需要调整模型以提高其性能。

深度学习算法比传统的机器学习算法更复杂。他们可能在一些特定的任务中表现得更好。例如,卷积神经网络可能是图像分类任务的最佳选择。

然而,数据科学广泛范围内的许多问题不需要使用深度学习模型。大多数情况下,机器学习算法已经足够了。

神经网络听起来很酷,但是在你学习之旅的开始,不要花太多时间去学习它们。如果你需要的话,你可以随时学习。

数据科学是一个广阔的领域,有许多不同的应用。根据你的工作,你可能永远不需要使用神经网络。况且,如果用更简单的模型解决一个问题,没有人会强迫你用深度学习模型。

你应该更专注于学习与机器学习算法相关的统计概念。提高你的统计知识肯定对你有很大帮助。

结论

成为一名数据科学家需要努力和奉献。最难的部分是找到你的第一份工作。一旦你进入了领域,剩下的就相对顺利了。

找到第一份工作之前的学习之旅已经是一个艰难的过程。除此之外,我在本文中提到的三件事可能会进一步降低您的速度。我认为避开他们对你最有利。

最后但同样重要的是,如果你还不是中级会员并打算成为其中一员,我恳请你使用以下链接。我将从你的会员费中收取一部分,不增加你的额外费用。

https://sonery.medium.com/membership

感谢您的阅读。如果您有任何反馈,请告诉我。

定量研究中影响数据质量的 3 件事

原文:https://towardsdatascience.com/3-things-that-influence-your-data-quality-in-quantitative-research-c86c675aa4e9?source=collection_archive---------26-----------------------

市场研究中的常见限制—样本、数据收集和问卷调查

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 Emilian Vittoriosi 在 Unsplash 上提供

市场调研收集和分析数据和意见。有定量和定性技术。定量通常有问卷。

例如,意见池、消费者研究、品牌跟踪和长期行为研究。定性的是焦点小组、聊天室、深度访谈、演示或拼贴画。

定量研究的好处是相对快速客观。你选择你的目标人群,收集数据,处理数字,你就有了答案。

然而,需要注意一些质量限制:样本、数据收集方法和问卷。

1.样品

任何研究都需要一个样本定义。按样本是你要检查的总体的一部分。以下是在线调查的人口漏斗示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ivona Fikejzlova 提供

在一个国家或市场中,有一个与每个人都相关的普通人群。然后,我们有了互联网人口,或者现在更确切地说是智能手机人口。

这些人一定在某个在线小组或数据库中。然后,我们有类别用户成为我们的受访者。

样本定义非常重要。它影响着你要为定量研究支付多少钱,以及你得到的数据质量如何。

根据你的业务,你可以在更广或更窄的范围内捕鱼。代表性的研究将复制人口景观。

你会有一个男女老少的样本。但是在商业上,你只关心你的品类用户或者潜在消费者。您有三个与样本相关的问题:样本定义过宽或过窄,以及样本大小。

1.定义过宽

  • 否定:结果不能很好地反映你的消费群体。你会有很多不相关的数据。
  • 正:可用于对比。如果你的目标人群是 18-25 岁的人,而你收集的是 26-35 岁的人的数据,你就能发现是否还有瞄准其他人群的潜力。如果您的样本范围更广,收集速度会更快。

2.太狭隘的定义

  • 负面:很难快速收集这样的样本(例如,使用奥迪智能手机应用程序并计划在未来 12 个月内购买新奥迪汽车的 70 岁以上的人)。也比较贵。你可以过分限制你的目标群体。如果这个品牌是为年轻人(20-30 岁)设计的,但是感觉年轻的人(50 岁以上)会购买它,那么你的数据就不完全相关。
  • 正面:狭义的定义应该会很好地击中类别用户。因此,他们的观点可以给你带来很多有用的见解,因为他们是从自己的经历中说出来的。

3.样本量

尺寸很重要。10 个人、100 个人或 1000 个人之间是有区别的。你无法避免数据差异。

如果你有足够的预算,去大样本量。数据越多对数据处理越好。可以做更精确的分割和统计操作。

小样本的一个问题是,如果你对一个相似的群体重复调查,你不一定会得到相同的结果。样本越大,数据越可靠。

2.数据收集

如果您决定需要收集一些数据,您可以选择如何收集。最常见的方法是在线调查。

它既便宜又容易。但是你也可以采用更老派的方法,比如纸笔、电话采访或平板电脑采访。

1.在线调查

  • 否定:他们的限制是,他们相对较短,以防止人们放弃调查。所以,你只能问几个问题。数据质量取决于在线面板的质量。有些情况下,你想只问年轻女性,但男性以虚假的个人资料进入你的调查。
  • 正面:回答者自己填。不应该有任何其他人的偏见。在线调查针对智能手机进行了优化,因此人们可以快速填写。您可以实时浏览回复。

2.离线调查

他们有点老派,但当你想检查整个人口时,他们仍然被认为是最有代表性的。

  • 否定:它们很贵,而且要花很多时间。你需要一个面试官来填写调查问卷。面试官可能会偏向答案,填错答案,或者完全作弊。所以,你需要监督员来检查初始质量。
  • 正面:你不依赖网络。您可以完全随机地收集数据。您可以控制收集数据的位置。

机构和小组经常声称他们有高质量的回答者和经验丰富的面试官。

但是你应该总是询问质量检查的方法。这两种数据收集方法都有其局限性和偏见,但质量检查对清理数据和获得可靠的结果有很大帮助。

3.调查表

最后,但同样重要的是,问卷会影响数据质量。它的结构带领受访者踏上旅程。

他们能立即感受到积极或消极。很多人不会起草中性问题。他们还经常询问不必要的个人信息,如收入、婚姻状况或宗教信仰。以下是一些良好问卷调查实践的提示:

问题应该:

  • 容易理解
  • 问一件事,不要一句话问多个问题
  • 不冒犯
  • 按逻辑顺序
  • 仅询问必要的个人信息

对问题的回答应该:

  • 有一个中间选择“既不是,也不是”
  • 知识问题有“我不知道”选项
  • 始终如一
  • 回答问题,不要回答其他问题

一份糟糕的问卷会给你错误的数据。所以,保持简单,简短,有条理。

如果需要的话,在问题前面加上额外的解释文字。这将有助于人们理解你的意图。如果你进行线下数据收集,你必须向面试官简要说明他们应该如何提问。

最终想法

一切都从商业问题开始。

定量研究可以为你提供答案。但重要的是要有相关和高质量的数据。并非收集的每个数据都具有相同的商业价值。

数据告诉你一个故事,描述行为和观点。所以,一定要想好样本和收集方法。

然后你拿到漂亮的问卷,你就有了你需要的一切。

附注:你应该会收到我的邮件。 在这里做!如果你喜欢体验媒介的自己,可以考虑通过注册会员 来支持我和其他成千上万的作家 。每月只需 5 美元。

学习数据科学时,3 件事可能会打破你的动力

原文:https://towardsdatascience.com/3-things-that-may-break-your-motivation-while-learning-data-science-d605d44e879f?source=collection_archive---------13-----------------------

以及如何克服它们

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

甘特·米尔勒在 Unsplash 上拍摄的照片

近年来,数据科学经历了巨大的普及增长。越来越多的企业投入到这一领域,从数据中创造价值。

因此,许多人决定转行进入数据科学领域。虽然听起来很吸引人也很有趣,但学习数据科学是一个令人疲惫且耗时的旅程。

让这一旅程更有效率是你的责任。然而,有些事情可能会对你的表现产生负面影响。

在这篇文章中,我将讨论我认为可能会打破你学习数据科学的动机的三点。我也将尝试提供克服这些挑战的建议。

范围谬误

数据科学是一个如此广阔的领域。哪里能接触到数据,哪里就能谈论数据科学。金融、医疗保健、零售、银行、计算机视觉和安全只是数据科学应用领域的一部分。

尽管数据科学是围绕共同的原则构建的,但不同领域的实施和应用可能需要不同的技术或方法。

当我开始我的数据科学之旅时,我打算学习数据科学如何在所有这些领域中使用。这是个大错误。一个人不可能专攻这么多领域。

了解数据科学在不同领域的一般应用是很有好处的。然而,如果你试图深入研究或专攻许多领域,大量的学习材料可能会打破你的动力。

我称之为范围谬误。你可能会说数据科学的范围是巨大的。我完全同意,但是一个数据科学家应该并且能够学到的东西是有限的。否则,你将很难取得像样的进步。

你应该获得某一特定领域的高级技能。例如,如果你掌握了时间序列分析,你就大大增加了在金融领域找到工作的机会。

工具谬误

Matplotlib、Seaborn、Altair 和 Plotly 是一些用于数据可视化的 Python 库。也有其他编程语言有数据科学库,比如 R 和 Julia。

因此,我们有大量的工具来学习、实践和实施数据科学。这既可能是优势,也可能是劣势,取决于你的方法。如果你试图掌握大量做同样事情的工具,那么丰富的工具选择就成了劣势。

每次我听说一个新工具,我都觉得我需要学习它。因此,我面临着堆积如山的学习材料。我现在称之为工具谬误。Matplotlib 或 Seaborn 足以创建几乎任何类型的数据可视化。TensorFlow 或 PyTorch 足以创建深度学习模型。你不必两者都精通。

我建议为特定类型的任务挑选一到两个库,尤其是在你学习旅程的开始。您将能够用任何库完成大多数典型的任务。

社区谬误

数据科学尚未在传统教育体系中得到很好的确立。我们大多通过 MOOC 课程、在线教程、博客帖子和类似的资源来学习。

学习数据科学的另一个非常有价值的资源是数据科学社区。已经在这个领域的人分享他们的知识和经验。这其实是一件非常好的事情。然而,如果你不能明智地表明立场,它可能会打破你的动力。

有经验的人组成的大社区,一开始让我觉得力不从心。我不是指有 10 年经验的数据科学家。在某些情况下,我觉得我远远落后于一个有一年经验的数据科学家。

没过多久,我就发现我可以赶上奉献。我建议利用别人分享的东西。你不应该让它让你感到不充分,打破你的动机。

很多人分享他们的知识并不意味着你落后了。把它当成一个向别人学习的机会,而不是一个动力破坏者。

结论

学习数据科学是一项具有挑战性的任务。这需要时间、努力,还可能需要钱。然而,让这一漫长的旅程更有效率是我们的责任。

你不应该因为我们刚刚提到的那些消极的事情而放松警惕。你应该永远记住,其他人也面临着同样的挑战。通过明智地处理这些挑战,你可以向前迈出一步。

感谢您的阅读。如果您有任何反馈,请告诉我。

激励有抱负的数据科学家的 3 件事

原文:https://towardsdatascience.com/3-things-to-motivate-aspiring-data-scientists-df9a1f867654?source=collection_archive---------39-----------------------

以及我找到第一份工作后的感受

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由德鲁·比默在 Unsplash 上拍摄

数据科学是我们这个时代最酷的玩家。各个行业的公司都意识到了用数据创造价值的潜力。价值可以是任何形式的,例如改进生产过程、更好地预测需求、更准确的销售预测等等。

这样一个有着众多工作机会的热门领域吸引着人们。不仅学生,而且已经有职业生涯的人也决定在数据科学领域工作。

我是决定转行成为数据科学家的人之一。我花了两年时间在这个领域找到了一份工作。这是一次复杂的旅行。我真的很喜欢这个领域,所以我的旅程总的来说是令人兴奋和有趣的。我有时感到筋疲力尽,但从未失去动力。

在找到一份数据科学家的工作后,我意识到我做了一个多么正确的决定。漫长的夜晚和周末得到了回报。对我来说,这是晚上和周末,因为我必须在学习数据科学的同时保留我的另一份工作。

我想分享我认为会激励有抱负的数据科学家的 3 件事。

真实生活数据

我们工作最重要的部分是数据。没有适当的数据,我们只能了解皮毛。用于学习和实践的可用数据通常不是真实的生活数据。

现成的数据集几乎总是整洁干净的。它们不够有挑战性。你可以通过这样的数据集学习基础知识,过一会儿可能会变得有点无聊。

这样的数据集有助于练习和学习基础知识。然而,现实生活中的数据是杂乱的,而且要复杂得多。它需要大量的工作来清理、处理和推断有意义的见解。

一旦你开始作为一名数据科学家工作,你将有机会与现实生活中的数据打交道。这是非常有趣和令人兴奋的。你会觉得你正在完成适当的工作。

使用真实生活数据的另一个好处是你将有机会推断出有意义的结果。根据您所从事的领域,您可能会对数据告诉您或向您展示的内容感到惊讶。

协作环境

我遵循了一个自学的过程来学习数据科学。尽管有各种资源可供学习和提问,但拥有一位或多位数据科学家同事是一笔非常宝贵的财富。

你有机会讨论你的想法,进行头脑风暴。你会发现完成一项任务的不同方法。你将比以前更快地获得知识和提高技能。

协作的工作环境比最好的 MOOC 课程或在线证书更有价值。能够讨论您的解决方案或实现会让它变得更有趣。

你不会总是向你的同事学习。在某些情况下,你会提供一个更好的解决方案或者能够帮助一个同事。这样的环境会提升你的动力。

生产级数据科学

数据科学学习之旅可能会受到 jupyter 笔记本电脑的限制。我们从网上下载数据集,在笔记本上练习。典型的任务包括清理、预处理、分析和可视化数据。

这个工作流程非常适合学习和实践。但是,在生产层面工作的感觉是 jupyter 笔记本永远达不到的。当您看到您的解决方案第一次被部署并用于生产时,那种感觉是无价的。

在生产环境中使用真实的生活数据是我们无法通过证书、课程或教程实现的。一开始可能会很有挑战性,但会进一步激励和激发你。

不利的一面是,在生产环境中犯一个错误是代价高昂的。你必须格外小心。然而,错误确实会发生。不要让这样的错误打击你的积极性,把它们当成学习新东西和提高技能的机会。

在生产层面工作需要与其他专业合作,如软件工程师。在一些公司,你将需要扩大你的工作范围,做软件相关的工作。我认为这是获得新技能的机会。

结论

虽然数据科学是一个如此受欢迎和受欢迎的领域,但找到你的第一份工作可能比你预期的要难。有很多东西要学,如果没有以前的工作经验,展示你所知道的东西是不容易的。

然而,如果你坚持学习,你最终会找到第一份工作。我想分享我的经验,我认为这将进一步激励你达到你的目标。

我非常高兴我决定转行成为一名数据科学家。自从我开始作为一名数据科学家工作以来,我的动力和热情增加了。

感谢您的阅读。如果您有任何反馈,请告诉我。

关于您的数据,您应该知道的 3 件事

原文:https://towardsdatascience.com/3-things-you-should-know-about-your-data-9980cb0eb46e?source=collection_archive---------14-----------------------

…这样你就不会迷失在酱汁中

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

迭戈·PH 在 Unsplash 上的照片

你是否曾经被给予一个新的数据集去分析,而你甚至不知道从哪里开始?让数百万行您不熟悉的数据堆积在您的膝盖上可能会让人不知所措。

无论你是在金融领域,是一名数据分析师,还是在制作机器学习模型,你需要对你处理的数据有深刻的理解。否则——这是我的经验之谈——就像我喜欢说的,很容易迷失在酱汁中。如果你在真正理解数据集之前就组合和操作它们,你可能会制造出比你开始时更混乱的混乱局面。

因此,在您开始尝试计算度量值或将您的新数据放入可视化工具之前,您应该考虑以下三点:

1.字段数据类型和含义

对于记录良好的数据集,您可以在数据字典中找到这两条信息。然而,当您提取数据时,您可能并不总是得到数据字典,尤其是对于较小数量的数据(如 Excel 文件)。因此,看一看表中的每个字段并弄清楚以下问题是很重要的:

  • 当前的数据类型是什么?
  • 你应该改变数据类型吗?
  • 这个字段的含义是什么?
  • 该字段的命名是否恰当,或者是否应该重命名?

必要时,在分析开始时更改数据类型可以帮助您更快地生成分析和见解。此外,有时数据集会带有技术列名(例如从一些 ERP 系统下载的数据),因此您需要使用映射表来重命名这些字段,除非您经常处理数据,以至于已经记住了 5 个字母的标题。

最重要的是,您必须理解数据集中每个字段的含义。你可以通过询问公司的主题专家、在线查看其他公开数据分析,或者进行一些探索性数据分析来做到这一点。

https://levelup.gitconnected.com/cozy-up-with-your-data-6aedfb651172

2.主键

这对于一些读者来说可能是显而易见的,但是如果您不总是与数据打交道,就有必要说明一下:您需要知道您的数据表的主键。

一个主键可以是一个字段,也可以是使记录唯一的字段组合。最简单的情况是一个带有记录 ID 列的表。因为该列包含每个记录的不同编号,所以它是唯一的标识符。

许多数据集都有一个由多个字段组合而成的主键。例如,如果您正在处理人力资源数据,主键可能是员工的名字、姓氏和生日的组合。即使有这三个值,您也可能在大公司中看到重复的值,因此您可能需要创建一个每个值都是唯一的雇员 ID 字段。理解主键对于正确连接数据集至关重要。

3.表关系

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由阿丽娜·格鲁布尼亚Unsplash 上拍摄

如果您有多个相关的数据集,您可能希望在某个时候将它们连接在一起。如果您了解每个表中的主键是什么,这将为您决定如何连接数据提供信息。

大多数情况下,您并不试图在数据集中获取副本。但是,如果将一个数据集连接到另一个数据集的某个字段/字段组合上,而该字段/字段组合在其中一个表中不是唯一的,就会发生这种情况。

让我们重温一下人力资源数据。如果我们希望将员工个人数据与员工提交的报销单上的数据连接起来,并且我们只连接员工的名字,则每个人提交 1 份报销单的 8 个“John”将变成 64 行数据。(8 个表单记录中的每一个都有 8 个记录,包含不同的 John 信息。)而且你处理的数据越多,事情就会变得越混乱。

如果绘制出表之间的连接以及它们的主键,或者更正式地说,创建一个实体关系图,就可以避免这种令人困惑的数据混乱。了解数据集之间的关系也有助于了解应该使用哪种类型的连接。

总之

这三点只是你获得新数据时的一个起点。但是我认为这是一个全面分析或建模项目的良好开端。如果我可以再补充一条建议:永远保持批判性思维!很容易经历数据清理或分析的动作,然后只在最后意识到你的结果没有意义。从批判性思维开始将有助于你的项目走向成功,也能让你在未来免于头痛。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

杰西·马丁尼在 Unsplash 上的照片

感谢阅读!请随意在 LinkedIn 上与朋友/同事/陌生人分享这篇文章。或者在 LinkedIn 上找我,这样我们就不是陌生人了。

3 个节省时间的 Python 技巧

原文:https://towardsdatascience.com/3-time-saving-python-tricks-a017f4215aeb?source=collection_archive---------3-----------------------

编程;编排

…这在我最近的项目中节省了 40%的时间!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

贾斯汀·维内玛Unsplash 拍摄的照片

用 pythonic 的方式编程让我比别人快了⚡1.8x

我最近的项目是一个系统的自动移动,图像处理和数据清理的结合。使用 Python 的内置函数和本文中的方法,我保持了代码的整洁和易于理解。

我在接下来的 3 分钟里解释的 3 个技巧将会大大节省你的宝贵时间⏳。

🎁一份 免费 机器学习认证可以额外外卖🏆来自这个故事!📚最后别忘了检查一下!

反转列表

在 python 中使用内置的reverse()方法来反转列表,而不是通过切片来完成。让我们从创建一个列表开始

# Create a list
mylist = list(np.arange(0,100))

颠倒列表的方法有:

# Reverse a list using built-in reverse()
mylist.reverse()# Reverse a list using slicing
newlist = mylist[::-1]

以上两种方法返回相同的输出,只是略有不同。内置方法reverse()改变了原来的列表,然而,列表的切片创建了一个新的列表。

我们来谈谈执行时间⏳。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

reverse()和 list slicing | Image(按作者)的执行时间

显然,内置方法reverse()比列表切片的快 3 倍。

在我的项目中,对于系统的自动移动,我有一个位置值的列表,并不是每次都有用。每次都需要列表开头的几个值和列表结尾的几个值。早期的程序是使用列表切片编写的,然而,我使用reverse()重写了它,以实现程序的更快执行。

使用一行代码交换两个值

使用一行代码交换两个数字是一种真正的大技巧💡方式。与其他编程语言不同,Python 不需要使用临时变量来交换两个数字或值。

我举个简单的例子。

*# Create two variables
variable_1 = 100
variable_2 = 500*

要交换 variable_1 和 variable_2 的值,只需使用一行代码。

*variable_2, variable_1 = variable_1, variable_2*

所以,整个场景看起来像,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用一行代码交换两个值|作者图片

我的项目并不简单。

我有一个字典,即键-值对,每个键都有一个值列表。因此,这个技巧节省了我工作中的多次迭代和复杂的数据转换,最终有助于减少执行时间。

在键-值对的情况下,不能直接使用键作为变量的名称。因此,这就是我在🛠️.所做的

只是为了简单起见,假设我的项目中的一个字典的名称为md

*md[key_2],md[key_1] = md[key_1],md[key_2]*

函数内部的 Use -for- loop

创建用户定义的函数是为了执行特定的任务。然而,我观察到,很多时候用户使用 for 循环多次迭代这些函数来执行特定的任务。

但是,在 for 循环中使用函数需要较长的执行时间,因为每次迭代都会调用函数。相反,如果 for 循环是在函数内部实现的,那么该函数将只被调用一次💡。

为了让文字更清晰,这里举个例子。让我们创建一个简单的字符串列表。

*listofstrings = ["apple", "orange", "banana", "pineapple", "grapes"]*

现在,创建两个函数,从简单的开始。

*# Create a function without for loop inside the function
def onlyfunction(inputstring):
    newstring = inputstring.capitalize()
    outputstring = inputstring+" "+newstring*

以及一个内部有一个for循环的函数。

*# Create a function where for loop is inside the function
def forinfunction(listofstrings):
    for inputstring in listofstrings:
        newstring = inputstring.capitalize()
        outputstring = inputstring+" "+newstring*

让我们使用这些函数,看看输出。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者对两种功能|图像的使用

两个函数的输出是相同的🆒。

但是,故事并没有到此结束。是时候检查一下,哪一个更快⏰。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用于函数内部的循环|作者图片

当然,与没有 for 循环的函数相比,在函数中使用for循环会稍微快一些。

对于我的项目,我正在处理许多复杂的图像处理任务,在函数中使用 For 循环几乎比在每次迭代中调用相同的函数快 1.5 倍 ⚡。

当然,这些都是从我的经验中得到的提示,但是对每个有类似情况的人都有用。

使用 Python 的内置函数将会提高程序的速度,同时保持代码的整洁和易于理解。

想了解更多关于内置函数*??*

检查这个完整的列表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python 内置函数 |图片作者

感谢您的宝贵时间!

您可以随时联系我,获得建设性的反馈或关于数据分析的精彩讨论。📈📊 📉

对通过项目学习感兴趣??

在我的Github回购上查了一堆项目。📚📚

如何看完所有的中篇文章?

今天成为媒体会员&让⚡ 无限制 ⚡访问所有媒体故事。

在这里注册加入我的电子邮件订阅

当你在这里注册并选择成为付费媒介会员,我会从你的会员费中获得一部分作为奖励。

如何获得免费的机器学习认证?

看看这个。

*https://medium.com/analytics-vidhya/best-machine-learning-certification-for-free-b0984efc7303 *

感谢您的阅读!投入你宝贵的时间!

更好地利用媒体上的数据科学内容的 3 个技巧

原文:https://towardsdatascience.com/3-tips-for-making-better-use-of-the-data-science-content-on-medium-45c11fb10c11?source=collection_archive---------24-----------------------

让它值得你花时间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Unsplash 上的尼克·费因斯拍摄

Medium 在某种意义上是 YouTube 的书面版本。就像 YouTube 一样,Medium 有非常有价值的内容,可以学习几乎所有值得学习的东西。

考虑到数据科学的普及,媒体上有大量的数据科学内容就不足为奇了。

作为一名自学成才的数据科学家,我在 Medium 上学习了很多,我有一些提示,我认为这些提示将帮助您更好地利用它作为学习资源。

我不会告诉你每天读 x 的时间。目标是帮助你有效地利用时间。

因此,不管你在媒体上读了多少,这些建议都适用。

1.不仅仅是读书!

数据科学是一个跨学科的领域,需要掌握一整套技能。

技能组合的主要部分由软件工具和软件包组成。Medium 上有大量文章解释了如何在数据科学生态系统中使用软件工具。

其中一些更加具体,集中于如何执行特定的操作,而另一些则从总体上解释工具。

当谈到获得这些技能时,阅读必须伴随着动手实践。

文章中有一些例子,但是你不能仅仅通过阅读来学习。你明白,但不学。

为了真正学到东西,我们需要点燃神经连接。积极参与,或动手实践,是创造神经连接变化的基础。

如果你正在读一篇关于熊猫的文章,打开一个笔记本,自己做文章中的例子。

键入比复制粘贴文章中的代码要高效得多。即使你不得不看很多遍代码,也要试着输入。

如果作者提供了数据集,请确保下载并跟随。通过自己做额外的练习来超越文章中解释的内容是非常有帮助的。

2.具体一点

媒体上有许多数据科学文章。总之,它们为学习数据科学提供了非常丰富的课程。

但问题是,它们并没有系统地放在一起。

随机阅读媒体上的数据科学文章并不是学习数据科学的最佳方式。

如果你想成为一名自学成才的数据科学家,你首先需要的是一个结构良好的计划。

当用于学习特定主题时,中等最适合此计划。

假设您正在学习时间序列分析,并且您遇到了 Prophet 库,它是预测时间序列数据的一个很好的工具。

这就是媒介发挥作用的地方。它包含关于先知的文章。其中一些解释了如何使用这个库,一些展示了如何用它做一个项目。

数据科学的范围相当大。它有许多不同的应用领域。此外,不同领域使用的工具和技术可能会大不相同。

例如,如果你想在 NLP 中工作,你不需要学习时间序列分析。同样,如果您大量处理时间序列数据,那么您对图像识别也不会感兴趣。

你猜怎么着!Medium 有许多与图像识别、NLP 和时间序列分析相关的文章。从这个意义上说,随机阅读介质上的数据科学内容是浪费时间。

有一个结构良好的计划,缩小你的学习领域。更具体地说明你在媒体上阅读的内容。

这就是你如何充分利用它的方法。

3.在你读这篇文章之前,先看看评论

媒体承载着大量的内容。在丰富的文章选择中,一些可能会误导或包含错误的信息。

没有权威机构检查每篇文章内容的正确性。

好的一面是,Medium 不仅有伟大的作家,也有技术高超、知识渊博的读者。

如果一篇文章有问题,读者会在评论中指出。

你仍然可以从一篇有一些错误的文章中学习。但是,如果有很多关于在一篇文章中展示问题的评论,你可能应该远离它。

也有一些作品不值得你花费时间。他们往往有一个吸引人的标题来吸引注意力。

感谢 Medium 谨慎而见多识广的受众,这样的文章在评论里都有标注。

如果一篇文章被广泛传播或者有很多评论,确保你在开始阅读之前先看一下评论。

最后的想法

我在媒体上学到了很多,现在依然如此。我也写了两年左右的数据科学文章。

在一种情况下,Medium 显然是学习数据科学的最佳资源之一。我们应该明智地使用它。

遵循我刚刚分享的提示将帮助您更好地利用媒体上的数据科学内容。

最后但同样重要的是,如果你还不是的灵媒会员,并打算成为一名灵媒会员,我恳请你使用下面的链接。我将收取你的一部分会员费,不增加你的额外费用。

https://sonery.medium.com/membership

感谢您的阅读。如果您有任何反馈,请告诉我。

准备年终评估的 3 个技巧

原文:https://towardsdatascience.com/3-tips-for-preparing-for-your-end-of-year-review-35ef92a6cf77?source=collection_archive---------16-----------------------

以及为什么你应该尽早开始你的 2022 年回顾

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

伊恩·施耐德在 Unsplash 上拍摄的照片

随着我们开始接近年底,我们不仅要为假期做准备,还要为年底的回顾做准备。我见过的人们犯的最大错误之一是等到 12 月才写下他们的全部评估。你还记得这一年你完成的所有事情吗?我当然不知道。如果我们等到年底才开始评估,很容易忽略关键的成就、培训等等。了解这一点后,我想与您分享我在年终评估中关注的三个关键领域,以及我如何记录这一年,以便您可以在 2022 年强势开始。

造诣

我追踪的第一个领域可能是最常见的:成就。今年你完成了什么?当我开始我的职业生涯时,我常常通过陈述我所做的事情来列出我所有的成就。

  • 我创建了一个 CI/CD 管道。
  • 我更新了管道以包括自动化测试。

诸如此类。这是一个很好的起点,但是它有一个巨大的缺陷。你的结果是什么?这项工作你完成了什么?理解如何展示这些信息花了我一段时间。我分享了我所做的事情,但没有分享我在这项工作中所取得的成就。最后,我喜欢审视我的工作,在项目之前、之中和之后捕捉度量标准。

让我们看看上面的第一个要点;我创建了一个 CI/CD 管道。这条管道是干什么用的?首先,我制作了一个 CI/CD 管道,将代码从开发转移到生产。那稍微好一点,但是你用这项工作完成了什么?在我创建这个管道之前,我将捕获这项工作在当前流程中将代码从开发转移到生产需要多长时间。例如,在当前状态下,这项工作可能需要 8 个小时才能让某人在所有适当的批准都到位的情况下将代码手动转移到生产中。在管道开发之后,开发人员打开一个 pull request (PR ),一旦 PR 获得批准,自动化管道将代码从开发转移到生产。这个过程现在从头到尾需要 3 个小时。通过跟踪之前和之后的时间,我们现在可以展示我们的结果和我们工作的有效性。

❌我创建了一个 CI/CD 管道。
✅一世创建了一个 CI/CD 管道来自动将代码从开发转移到生产,将生产时间从 8 小时减少到 3 小时。

你措辞的变化和指标的加入让你的经理可以看到你的影响。

如何全年跟踪这一点?每个月底,写下你的成就清单。确保跟踪关键指标,如生产率提高、运行时间缩短、成本效率等。记录你做了什么,结果,以及人们对工作的任何值得注意的评论。

培养

我经常追踪的另一个容易在年底被忽视的领域是培训。现在我不是在说我们大多数人每年都必须接受的训练;我说的是你在职业发展上付出的额外努力。这可能包括您报名参加的课程、研讨会、认证等。

当我回顾这一年的训练时;我喜欢记下我参加了什么培训以及为什么。这项培训与我的工作有什么特别的关系?

  • 本次培训与您目前正在从事的项目有关吗?
  • 本次培训是否为路线图中即将到来的项目做好了准备?
  • 你是否正在努力实现职业发展目标或发展其他技能,以帮助你在职业生涯中更上一层楼?这里要考虑的一些领域是公共演讲课程、领导力发展和软技能。

培训和成就一样重要,因为它显示了你在做什么,你在哪里推动自己做得更好。

**如何全年跟踪此事?**在你参加的每个培训课程、会议或研讨会结束时,花点时间反思一下。写下 1-3 条重要的经验教训,它们如何应用到你的工作中,以及如何应用到你的目标中。这是展示你为实现自己设定的职业发展目标所取得的进步的好方法。

奖项、认可、专利等等?追踪他们

记录你全年获得的奖励、认可、专利等等,放在你的年终回顾中可能看起来很奇怪,但它会派上用场的!我经常在这个列表中包括的事情有:

  • 奖励/认可
  • 专利/商业秘密
  • 期刊或会议论文
  • 讲座、演示、小组活动
  • 委员会、组织、团体
  • 志愿者机会
  • 指导

我以前从未做过这样的清单,但在了解了技术人员在职业生涯中扮演的不同角色后,我发现这很有帮助。例如,我工作的一家公司有一个技术能力级别,叫做技术伙伴。这个工作角色不是你可以晋升的。相反,它需要一份你多年来在这个行业和公司的成就的详细申请。达到这一职位的工程师在退休或进入管理层之前处于最高水平。

如果你没有这样的成就清单,你能快速地列出来吗?我不会一下子就记住每一项成就,这就是为什么我开始每年追踪我的成就。如果你有一个清单,你就可以每年向你的经理和公司展示你所做的贡献,同时也有一个记录的积压。

**如何全年跟踪这一点?**其他类似的成就是我在写下来的时候不会过多详述的一个方面。取而代之的是,列出每一年的项目清单,以及组织/团体、日期和你所做工作的简要描述。这里包括的一个很好的项目是指导机会,特别是如果你想扩展到领导角色。

最后的想法

当您开始准备年终评估时,让我们也准备好开始跟踪明年的情况。尽早开始是一个很好的方法,可以确保你在关键的成就、培训和更多事情发生的时候抓住它们。要跟踪的一些领域包括:

  1. 每月记录你的成就。考虑度量和结果,而不仅仅是完成的任务。
  2. 追踪你的训练。你学到了哪些适用于你工作的经验教训?这次培训对你的职业发展目标有什么帮助?
  3. 你获得过任何奖励或认可吗?你参加过任何委员会、团体或组织吗?记下这些,尤其是如果你想成为研究员或技术领导者的话。

你一整年都在跟踪你的工作吗?如果是的话,你还会在清单上增加什么?

感谢阅读!我希望你喜欢阅读我所学到的东西。如果你愿意,你可以通过这个链接成为一名灵媒来支持我的写作。

处理不平衡数据集的 3 个技巧

原文:https://towardsdatascience.com/3-tips-for-working-with-imbalanced-datasets-a765a0f3a0d0?source=collection_archive---------23-----------------------

一些鲜为人知的处理那些讨厌的偏斜类分布的方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源( Unsplash )

真实世界的数据集有各种形状和大小。在某些时候,您会遇到目标类不平衡的数据集。这到底是什么意思?让我们来看一个来自 Kaggle 的例子。该数据集包含信用卡客户及其付款违约的详细信息。

我们这里的目标变量是default.payment.next.month,一个二进制变量,如果客户没有违约,它的类是0,如果客户违约,它的类是1。首先,我们将检查每个类有多少条目。

绘制我们的阶级分布

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的目标变量的类分布

我们从上图中看到,几乎 80%的目标变量都有一个类0。这就是所谓的不平衡数据集。一个类别的条目比另一个类别的条目多得多,导致类别分布不均匀。你可能会想,为什么这会是一个问题,为什么我们必须以不同的方式处理这个数据集?

想象一下,我们有一个非常简单的数据集分类器,不管我们传递给它什么数据,它总是能预测0。通过使用原始准确度作为我们的度量,我们将得到接近 80%的准确度。对于分类器来说,这似乎是一个不错的分数,但实际上它会产生很大的误导。我们根本无法预测什么时候有人拖欠他们的付款!让我们创建这个简单的分类器和一个随机森林分类器作为基线模型。

检查虚拟分类器和随机森林分类器的准确性

  1. 选择正确的指标

这让我们确保使用合适的指标来衡量模型的性能。从我们前面看到的,准确性对于这个用例来说并不是一个合适的度量标准,因为我们的许多数据集条目都属于一个类。我们来看看几个备选方案。

Precision — Precision 是正确分类的阳性(1)样本数除以被分类为阳性(1)的样本总数。如果我们使用总是预测0的分类器,我们的精度也将是 0,因为我们没有将任何例子分类为阳性。

检查精确度分数

召回— 召回,也称为“敏感度”,是被正确分类的正例数除以正例总数。在我们的例子中,这将是我们的模型正确识别的值为1的条目的数量。使用我们的虚拟分类器,我们的召回率也将是 0。这个度量将帮助我们确定我们的模型是否正确地获得了数据集中的1条目,但是它仍然有一个主要的缺陷。如果我们的分类器总是预测每个例子的1,我们就能得到完美的回忆!另一方面,我们的精确度不会很高。我们需要这些指标之间的某种平衡来合理地评估我们的模型。

检查回忆分数

**F1 分数—**F1 分数是精确度和召回率之间的平衡。它由公式(2 精度召回)/(精度+召回)给出。该度量被证明适用于不平衡数据集,消除了普通精度度量的缺点。通过这个,我们应该能够以更好的方式评估我们的任何模型。

检查 F1 分数

2。建立交叉验证策略

我们不应该使用 scikit-learn 提供的默认 train_test_split ,而是应该尝试确保我们的分割准确地代表我们的目标变量的分布。一个非常简单的方法是在调用 train_test_split 函数时使用stratify参数。

绘制分割后数据的分布图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分成训练集和测试集后的类分布

进行这一小小的更改可以确保训练集和测试集遵循与原始数据集相同的分布。

另一种使交叉验证策略对类别不平衡更加稳健的方法是使用多个折叠或对数据的不同子集进行训练。为此,我们可以使用 StratifiedKFoldStratifiedShuffleSplit 来确保我们仍然遵循目标变量的分布。

StratifiedKFold 会将我们的原始数据集分割成几个折叠,每个折叠都具有与原始数据集相似的分布。这意味着我们可以在每个褶皱上训练一个模型,同时仍然确保我们的分布保持一致。StratifiedShuffleSplit 还保留了我们的目标变量的分布,但在每次迭代中使用整个数据集,并且不将其拆分成折叠。

使用 StratifiedKFold 评估模型

3。更改模型中的目标重量

默认情况下,模型将为我们的目标变量中的每个类分配相同的权重。如果我们的数据集在其目标类中有一个相对均匀的分布,这就很好了。在我们的例子中,我们希望根据数据集的偏斜程度对每个类使用不同的权重。

我们应该如何确定每个类使用什么权重?许多分类器都有一个class_weight参数,你可以在这里传入一个类似balanced的字符串。这应该会为您传入的数据计算出适当的权重。如果没有,scikit-learn 还有一个函数可以为我们计算这个。让我们看看如何在我们的模型中使用 class_weight。

训练模型时使用 class_weight

结论

我们看了 3 种不同的方法来帮助我们处理不平衡的数据集。

  1. 为我们的任务选择合适的指标。我们已经看到,有时候,在评估一个模型时,像准确性这样的度量标准可能会非常误导人。
  2. 使用良好的交叉验证策略。我们可以使用 StratifiedKFold 和 StratifiedShuffleSplit 等方法来确保我们的训练集和测试集遵循类似的分布。
  3. 为你的目标类设置类权重,给少数类更多的权重。使用这种策略使我们的模型更加重视少数民族,可能有助于更好地对其进行分类。

有了这些策略,您应该能够在未来轻松处理不平衡的数据集。

感谢您的阅读!

您可以通过以下渠道与我联系:

关于 Pandas Groupby Aggregation (vs SQL)的 3 个提示

原文:https://towardsdatascience.com/3-tips-on-pandas-groupby-vs-sql-e6f85b07d6f0?source=collection_archive---------31-----------------------

如何在 Pandas groupby 和 aggregation 中生成与 SQL 相同的输出

目录

1.介绍

**“创世纪做了任天堂做不到的事情”是 20 世纪 90 年代早期视频游戏市场上最经典但也是最有力的广告词之一。同样,“SQL 做了熊猫做不到的事情”**每当我面对熊猫的任何数据争论问题时,这一直困扰着我,而这些问题可以通过简单的 SQL 轻松解决。

作为一名仍在学习 SQL 和 Python ML 包的数据分析师新手,我一直在寻找一些方法来从一种语言到另一种语言产生相同的输出。我希望这篇文章可以至少在聚合函数方面证明上述断言是错误的,表明**“Pandas 做 SQL 所做的事情(在某些时候)”。**

这篇文章的目标是通过只使用 Pandas 来获得相同的 SQL 输出结果。我们将使用一个名为garments_simple的简化数据集。原始数据集可以在 UCI 机器学习资源库( 链接 )找到。

**SELECT** team, sum(over_time) AS sum_over_time, max(over_time) AS max_over_time, mean(incentive) AS avg_incentive, max(incentive) AS max_incentive
**FROM** garments_simple
**GROUPBY** team

输出包含over_timesummax 以及每个quarter分组的incentivemeanmax

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Raw 'garment_simple '(左)-> Output 'garment_agg '(右)

2.每列合计

这是聚合列的最简单和最容易的方法。

  • 优点:容易、简单、易读
  • 缺点:可能会很冗长
**# Make empty dataframe and groupby by quarter**
garment_agg = pd.DataFrame()
garment_group = garments_simple.groupby('quarter')**# Aggregate per column**
garment_agg['sum_over_time'] = garment_group['over_time'].sum()
garment_agg['max_over_time'] = garment_group['over_time'].max()
garment_agg['avg_incentive'] = garment_group['incentive'].mean()
garment_agg['max_incentive'] = garment_group['incentive'].max()**# Reset Index**
garment_agg = garment_agg.reset_index()
garment_agg

3.通过 DataFrame.agg 方法聚合

第二种方法可能更适合聚合,因为它通过对象列包装聚合。

  • 优点:比第一种方法更简洁
  • **缺点:**如果列太多,可能会很冗长
**# Make empty dataframe and groupby by quarter**
garment_agg = pd.DataFrame()
garment_group = garments_simple.groupby('quarter')**# Add new columns by using .agg method**
garment_agg[['sum_over_time', 'max_over_time']] = garment_group['over_time'].agg(['sum','max'])garment_agg[['avg_incentive','max_incentive']] = garment_group['incentive'].agg(['mean','max'])**# Reset Index**
garment_agg = garment_agg.reset_index()
garment_agg

4.按字典和 DataFrame.agg 聚合

最后一个方法是创建包含所有聚合对象列和函数的agg_dict。您将能够根据agg_dict立即执行聚合。

  • **优点:**简洁,可读性强
  • **缺点:**需要额外的一行来替换多索引列名
**# Make empty dataframe and groupby by quarter**
garment_agg = pd.DataFrame()
garment_group = garments_simple.groupby('quarter')# Using dictionary to represent all the aggregation
agg_dict = {
    'over_time':['sum','max'],
    'incentive':['mean','max']
}**# Aggregate all at once**
garment_agg = garment_group.agg(agg_dict)
garment_agg**# Replace multi-index to singular index**
garment_agg.columns = [('_').join(column) for column in garment_agg.columns]
garment_agg = garment_agg.reset_index()
garment_agg

5.结论

熊猫groupby和集合函数在特征工程中经常使用。考虑到其简单性,推荐使用最后两种DataFrame.agg方法。希望这篇文章能帮助那些正在学习熊猫的人。

**完整的源代码可以在 这里找到

处理 C 中时间戳的 3 个技巧

原文:https://towardsdatascience.com/3-tips-to-handle-timestamps-in-c-ad5b36892294?source=collection_archive---------8-----------------------

处理时间序列中时区的简明指南

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自维基媒体的图像。许可证 CC BY-SA 4.0

无论是谁在时间序列分析中处理了带有时区的时间戳,总是会遇到一些令人头痛的问题。无论我处理时间序列多少次(在我的例子中不变地涉及处理时区),我总是必须重新审视它是如何工作的,因为它通常是反直觉的。

需求

处理时间序列通常涉及处理不同的时区。即使只使用一个时区,您可能仍然希望可视化您当地时区的数据,这可能会根据用户所在的国家而变化。

这种情况使得使用世界协调时作为参考很方便。为什么?因为它不会经历夏令时变化,并且很容易转换到任何时区。

就如何表示时间戳而言,它可以是:

  • 语言特定的日期时间对象,
  • 基于整数的人类可读格式(即日期为 20210126,时间为 1530),
  • 人类可读文本格式(即 1999–01–01t 00:00:29.75),
  • UNIX 纪元时间。

我更喜欢最新的,因为它简化了时间的计算。要迭代一分钟,你只需要将你所处理的时间光标增加 60。它还精确地定义了时间中的某个时刻。如果您有数百 Gb 或 Tb 的数据,纯数字表示是可行的方法。

我将为这种情况提供一些例子,所有的例子都可以在文档和问答论坛中找到——这里没有什么新的或奇特的东西——但是这些信息经常被隐藏在其他解释中,通常是像将特定的本地化时间戳转换为 UNIX Epoch 这样简单的事情,而相反的事情并不像应该的那样简单。

时间戳需要时区

如果你说是【2021 年 3 月 28 日 09:30 并且你认为你完成了,那你就错了。接下来的答案是,好的,是【2021 年 3 月 28 日 09:30 ,但是 在哪里 ?每个时间戳必须有一个位置或时区,可以是隐式的(按照惯例,该数据库中的所有时间戳都使用法兰克福时间),也可以是显式的。所以,如果你提供数据,帮你自己和其他人一个忙,做一个明确说明包含时间戳的时区的练习。这可能是显而易见的,但我向您保证,我所看到的涉及时间戳的数据集有一半以上都缺少这种信息。

时区不是给定地点的时间

我在处理这个问题时发现的第一个错误是很容易混淆概念。您经常会听到诸如“法兰克福比纽约早 5 个小时”或“纽约时区是美国东部时间”之类的错误说法。

法兰克福有时比纽约早 5 个小时,但在其他地方则是 6 个小时,具体时间取决于您所处理的具体年份。

纽约不是东部时间,纽约有一半时间是东部时间,另一半时间是东部时间。过渡发生的时间每年都不一样,甚至在不久的将来会消失。

东部时间不是东部时间,而是东部标准时间(当然也不是我听说的“复活节时间”)。如果你想说东部时间,那就是东部时间。

犯这样的错误是可以的,因为我们都是从那里开始的,但是这些错误需要尽快改正,否则你将会做错误的计算。

我发现处理与特定地点相关的时间序列(在我的行业中,是在给定交易所交易的金融数据)的最简单方法是处理实际的地区/城市。因此,说“纽约时间”意味着它将是美国东部时间或美国东部时间,这取决于具体的年份和日期,但时间戳是正确定义的。这通常也是存储数据的正确方法,因为无论发生什么情况,在给定的时间都会发生许多事件。股票交易所通常在每天 9:30 开门,你在每天下午的同一时间为你的孩子跑步,他们不会根据是否遵守夏令时来修改它。

指定时区可能无法唯一地定义某个时刻,因为在夏令时调整期间,可能不清楚您指定的确切时刻,但所有夏令时调整都发生在周末。如果您的数据缺少周末(比如来自许多业务相关领域的数据),那么您就不会关心这个细节。

如果夏令时的变化很重要,因为您的数据可能发生在周末,那么您必须始终使用 UTC,因为它不会经历任何变化。这就是为什么军方使用祖鲁语时间的原因,因为这是一种全球共享的指定时间的方式。

提示 1 :当你指定一个时间戳的时候,一定要指定这个时间属于哪个特定的地点(城市)。如果您的时间序列涉及周末,请使用 UTC。

使用 UNIX 纪元

UNIX 纪元时间被定义为自 1970 年 1 月 1 日 00:00 UTC 以来经过的秒数。请注意,UNIX Epoch 是 UTC,因此它可以准确无误地识别特定的时刻。永远不要询问 UNIX epoch 时间戳的时区,根据定义它是 UTC。

关于 UNIX 纪元的一个特别的警告是闰秒,但是除非您必须处理闰秒,否则 UNIX 纪元很好。还要记住,当使用 32 位有符号整数时,UNIX epoch 可以表示多达 2038 个时间戳的时间。有关详细信息,请参见[1],但通常这些限制不会对您的应用产生影响。

提示 2 : UNIX epoch 时间戳是一种存储给定时刻的便捷方式,它们通常足够准确,并且允许做一些简单的事情,比如加 60 来得到下一分钟。它们也很有效,因为只有 4 个字节可以用来存储时间戳。作为 UTC 的定义,不需要传递时区,您总是知道如何将时间戳转换成任何时区。

UNIX epoch 给出的精度是一秒,尽管经常使用备用版本处理毫秒。

ANSI C

我们将开始回顾 C 如何处理时区和时间戳。在 C 语言中,这个标准从来没有覆盖不同的时区,但是从 80 年代开始,它已经覆盖了所有的 UNIX 系统。

可以使用 32 位整数存储 UNIX 纪元时间,在标准中,该类型是传统上为整数的 time_t 。该标准没有定义具体的类型(在我的 64 位 FreeBSD 框中使用 clang 是一个长的)。

因此,如果您想指定一个 UNIX 纪元,您可以这样做:

/* 1616927900 Epoch is Sunday, 28 March 2021 10:38:20 GMT 
   1616927900 Epoch is Sunday March 28, 2021 06:38:20 (am) in time zone America/New York (EDT)
*/time_t epoch_time = 1616927900;

在 POSIX 系统(所有 UNIX/Linux/BSD 系统)中,您可以使用 TZ 变量将它转换成任何带有时区的时间戳。假设您想知道纽约特定 UNIX 纪元是什么时间。然后你做:

/* 1616927900 Epoch is Sunday, 28 March 2021 10:38:20 GMT 
   1616927900 Epoch is Sunday March 28, 2021 06:38:20 (am) in time zone America/New York (EDT)
*/time_t epoch_time = 1616927900;/* CONVERT TO struct tm */
struct tm *converted_time;
converted_time = localtime(&epoch_time);/* GET SYSTEM TIME ZONE */
tzset();/* DISPLAY TIME */
char buffer[26];
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", converted_time);
printf("Timestamp for %ld is %s according to system timezone.\n", epoch_time, buffer);/* DISPLAY TIME ZONE */
printf("Timezone for %ld is %s.\n", epoch_time, tzname[converted_time->tm_isdst]);---$ TZ='America/New_York' ./test
Timestamp for 1616927900 is 2021-03-28 06:38:20 according to system timezone.
Timezone for 1616927900 is EDT.

struct tm有一个名为tm_isdst的字段,可以是-1、0 或 1。

-1 用于指定一个给定的时间戳(我将在后面介绍这种情况),0 表示没有实行夏令时,1 表示实行夏令时。

tzset将检索计算机的特定区域,当使用localtime时,localtime 将使用它来填充tm_isdst,以便 struct 的字段给你正确的 struct。tzset还设置外部数组tzname,可用于获取时区名称。

如果您想使用不同于系统使用的时区,您有两种选择:

  1. 你可以在你的程序前面加上正确的 TZ 变量:$TZ='America/New_York' ./my_program。这不是 C 的一部分,而是 UNIX shell 在调用命令时定制环境的方式。
  2. 在调用tzset之前,可以用putenv("TZ=America/New_York");显式设置 TZ 变量。

如果您想做相反的事情,即获得给定本地化时间戳的 UNIX 纪元(问题将是:哪个 UNIX 纪元对应于纽约 2021 年 3 月 28 日星期日 06:38:20?)这是您将使用的代码:

/* 1616927900 Epoch is Sunday, 28 March 2021 10:38:20 GMT 
   1616927900 Epoch is Sunday March 28, 2021 06:38:20 (am) in time zone America/New York (EDT)
*//* GET SYSTEM TIME ZONE, MUST BE NEW YORK */
tzset();/* DEFINE THE TIMESTAMP struct tm */
struct tm localised_time;
localised_time.tm_year = 2021 - 1900;
localised_time.tm_mon = 3 - 1;
localised_time.tm_mday = 28;
localised_time.tm_hour = 6;
localised_time.tm_min = 38;
localised_time.tm_sec = 20;
localised_time.tm_isdst = -1;
time_t epoch_time = mktime(&localised_time);/* NOTICE HOW mktime FIXES tm_isdst */
printf("Fixed tm_isdst is %d.\n", localised_time.tm_isdst);/* DISPLAY TIME ZONE */
printf("Timezone is %s.\n", tzname[localised_time.tm_isdst]);/* DISPLAY EPOCH */
printf("Epoch timestamp is %ld.\n", epoch_time);---$ TZ='America/New_York' ./test2
Fixed tm_isdst is 1.
Timezone is EDT.
Epoch timestamp is 1616927900.

请注意,在struct tm中,年份被指定为自 1900 年以来的年数,一月的月份为 0。我们对tm_isdst使用-1,mktime使用tzset检索的时区来确定这个值,并确定在纽约的那一天和时间是美国东部时间还是美国东部时间。

很明显,只有当你的计算机位于美洲时区,或者你明确地为程序设置或传递了 TZ 时,这种方法才有效。另请注意,这不适用于 Microsoft Windows。

提示 3 :在 C UNIX/POSIX 时区资源和基本 struct tm 中,mktime 和 localtime 函数可以用来处理时区。它在大多数情况下都能很好地工作,并且可以与所有现成的 C/C++标准一起工作。

我在 C 语言中使用这些简单的方法成功地处理了时区。在其他情况下,这种简单性可能还不够。

C++还有其他处理时区的方法,最相关的是 C++20 标准的 chrono [2】库部分(该库也可以为旧标准编译)。Boost【3】也包含了一个处理时区的库,但是显然,它缺少一些时区或者有限制——我没有试过——。还有 ICU 库[4]来处理本地化,这似乎是详尽和完整的,还有许多其他开源解决方案。所有这些的问题是,你给你的系统增加了另一个依赖,我发现它们不容易使用。

我发现上面的方法对我的需求来说足够简单,但是它只对 UNIX 系统有效。它适用于任何 C/C++标准。

[1]https://en.wikipedia.org/wiki/Unix_time

[2]http://www.cplusplus.com/reference/chrono/

[3]https://www . boost . org/doc/libs/1 _ 74 _ 0/libs/locale/doc/html/dates _ times _ time zones . html

http://site.icu-project.org/

防止您的项目最终成为数据科学墓地的 3 个技巧

原文:https://towardsdatascience.com/3-tips-to-prevent-your-project-from-ending-up-in-the-data-science-graveyard-be523d695069?source=collection_archive---------16-----------------------

87%的数据科学项目从未投入生产。你如何增加你的项目存活的可能性?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

michal dziekonski 在 Unsplash 上拍摄的照片

研究显示 87% 的数据科学项目从未投入生产( VentureBeat 2019 )。作为一名数据科学家,我目睹了数据和人工智能项目在所有阶段的成功和失败:研究、开发和部署。为了取得最大的成功,我已经确定了三个内部原则,它们增加了项目投入生产并向客户交付有意义的价值的可能性。了解如何让您的数据科学项目远离数据科学墓地,而是让它进入您的用户手中。

1.定义商业价值

世界各地每天都有成千上万个项目开工。每一个都有相关的成本。您如何确定项目的商业价值并确保成本安全?在建立模型之前,你必须思考:从业务团队的角度来看,什么会使这个模型成功?

以下是一些例子:

  • 产品推荐系统:增加购买的回头客,减少结账时间,增加每位顾客的平均购买量
  • 道路探测系统:事故数量减少,保险索赔数量减少
  • 疾病检测系统:降低医疗成本
  • 缺陷产品识别:减少缺陷产品的退货次数,降低退货成本

你可能会注意到一个共同的主题:金钱。因为项目是有成本的,所以除了其他收益之外,将商业价值表述为成本是至关重要的。你会为用户节省时间吗?然后计算用户的时间成本,或者他们可以做些什么。

确保你确定了一种测量方法,这样你就可以在整个过程中跟踪结果。测量应该在项目开始之前、整个测试过程中和部署之后进行。记下使用该模型的人数。你可能看不到可衡量的好处,直到你扩大到大量的观众。向经理展示您的项目自实施以来回头客增加了 3 倍,这将为增加模型采用或增加必要的资金提供令人信服的论据。

2.吸引关键利益相关方

你的关键利益相关者是这个模型的最大支持者。数据科学模型可能很难采用,您的关键利益相关者对用户和能够影响您的项目的同行都有影响力。

像对待房屋建筑项目的新业主一样对待你的关键利益相关者。项目的每一步都应该通知他们。在开始项目之前,他们应该知道最终产品、产品成本和完成时间。在早期,就第一次发布的时间点达成一致。

每个模型的基础都是数据。确保主要利益相关者了解用于构建模型的材料。他们应该参与数据收集讨论,为项目的成功奠定基础。当构建复杂的模型时,可解释性是一个挑战,对你的数据有信心将帮助你的涉众获得将模型投入生产的信心。

模型部署后,数据科学家可能需要转移到下一个项目。在整个项目中与关键的涉众接触将教会他们如何关心模型。他们应该熟悉所有的成分和高层次的图片,以便他们的团队可以在未来维护和改进模型。

3.建立一个原型

通过为用户创建原型来可视化价值并开始初始测试,将您的数据科学项目带入生活。你越早可行地达到这一点越好。许多利益相关者和用户可能会发现很难想象结果和对他们的影响。原型将使这一点变得清楚。

许多模型需要大量的测试,构建原型将允许用户帮助改进模型,允许早期测试并构建一个社区来帮助模型随着时间的推移而改进。

IDEO 创始人大卫·凯利说过“失败得越快,成功得越快”。采取这些步骤来帮助你的项目走上成功的轨道,并专注于有效地完成它们。你越早在整个步骤中测试你的项目,你就会越早发现——也许是时候把你所学到的带到一个新的想法中了。

最后的想法

作为一名数据科学家,认识到有些项目无法投入生产是很重要的。如果你学会了,这些项目并不是失败的。我了解了价值衡量、关键利益相关者和原型的重要性。我还为未来铺平了道路——灌输更好的数据收集流程,修复业务流程中的漏洞,并向业务用户介绍使用人工智能的新方法。

你从数据科学墓地学到了什么?我邀请你在评论中加入你的想法。

感谢阅读我的文章!如果你喜欢阅读这篇文章,并想阅读我的更多内容,你可以在这里关注我。

成为数据科学家的 3 个秘诀

原文:https://towardsdatascience.com/3-tips-to-succeed-as-a-data-scientist-3f2c3c48555f?source=collection_archive---------31-----------------------

办公时间

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Patrik gotheUnsplash 上拍摄

我之所以想写这篇博文,是因为我非常清楚,作为一名数据科学家开始一份新工作可能会非常具有挑战性,尤其是如果你像我一样来自另一个行业,或者如果这是你的第一份工作。在这篇文章中,我想讨论一些我面临的主要困难,以及一些通用的提示和建议,让那些刚开始从事这一工作的人生活得更轻松。显然,这完全是基于我自己的经验,其他人可能面临不同的挑战,但我认为这些技巧足够通用,至少其中一些适用于开始从事数据科学工作的人。

有几件事我想特别谈谈,我认为它们非常重要。这些是:

  • 与利益相关方合作
  • 分析工作流程
  • 持续学习和发展

与利益相关者合作

其中第一点可能是最重要的,并真正影响到后面的几点。与利益相关者一起工作是我最初挣扎的事情,我相信其他数据科学家也面临这个问题。它实际上源于数据科学家和利益相关者之间的知识不匹配,这是双向的。通常,利益相关者不具备深入的编码、分析或机器学习知识,数据科学家,特别是如果他们是业务新手,缺乏业务或特定领域的知识。简而言之,他们说的不是同一种语言。那么这有什么样的含义呢?

往好里说,它会导致一些令人困惑的对话,往坏里说,它会导致在错误的问题上浪费大量的时间。我一般会说,这取决于数据科学家,以确保他们了解利益相关者,特别是他们的目标和他们试图实现的目标。根据我的经验,来自涉众的疑问或问题通常会非常模糊,很难转化为一个分析性的问题或模型。好消息是,随着时间的推移,这变得越来越容易。

我学到的东西

  • 试着用他们的语言说话 。我的意思是试着把你的解决方案框定在他们能理解的范围内。你可以实现一个具有 99%准确率的奇特模型,但这在商业术语中实际上意味着什么呢?尝试将您的分析解决方案与他们关心的 KPI 联系起来,或者表达收入方面的预期影响,每个人都理解金钱。这里的就是这样做的一个例子。
  • 使用简单的观想。 小提琴情节并不简单,即使它们看起来很棒,可以告诉你很多关于你的数据。(如果你的数据不符合正态分布,它们可能会让人们特别困惑,去做一个箱线图,甚至一个条形图,把更复杂的东西放在附录里。如果人们想了解更多细节,请指引他们到这里。)

我的建议

  • 如果你认为项目不太可能成功,你可以说不:你总是可以考虑如何将原来的目标重新定义为一个相关的、可实现的目标,或者转移到一个新的问题上。如果你对你的角色不熟悉,问问你的团队成员他们是怎么想的。他们通常会建议你什么问题是可行的。当然,可能以前没有人研究过这个问题,所以有很大的不确定性。在这种情况下,我建议定义一些初步的探索性目标,如果结果看起来不乐观,愿意继续前进。这有助于避免在错误的问题上浪费太多资源。
  • 定期与你的利益相关者交谈。你的工作是了解你的利益相关者想要什么,并确定它是否可行。你应该定期向你的利益相关者更新你工作的进展和可能的方向。他们可能会给你一些有用的见解和建议,让你理解你的结果。
  • 学会用非技术的方式解释事物。当你对利益相关者说话时,这是非常重要的。你需要考虑你的听众,他们是技术人员还是非技术人员?这适用于任何类型的交流,无论是演示、会议还是电子邮件。如果可能的话,提前知道这一点是很重要的,因为这可以帮助你设定你的解释水平。如果你不能让人们相信你所做的事情是有价值的,它很可能不会被实施。我仍然努力做到这一点,有时不用行话,但我想熟能生巧。使用良好的观想往往比书面或口头解释更有影响力。
  • 尝试围绕你的分析或结果展开一个故事。 这与上面的观点密切相关,但如果你能围绕这个问题编一个故事,这将是给你的作品留下持久印象的非常有效的工具。试着思考以下问题。你想解决的问题是什么?为什么重要?您的解决方案会对业务产生什么影响?
  • 方案很少完美 。大多数时候,你无法实现一个完美的解决方案。您通常必须做出权衡,最终的解决方案也不是没有限制。很难决定哪种方法是正确的,但一般来说,我更喜欢最简单的解决方案(奥卡姆剃刀)。例如,如果你正在建模,至少在开始的时候坚持像逻辑回归这样简单的东西。根据我的经验,人们通常不愿意使用黑盒解决方案。您还可以利用 SHAP 或 LIME 等工具来提高模型的可解释性。最近,我一直在玩一个名为 explainerdashboard 的库,试图让我的模型更加透明。

分析工作流程

在本节中,我想描述一些分析工作的一般原则,以及我们如何设计可重复且更高效的工作流程。我使用的工具和工作流程会因任务的不同而稍有不同,但我将通过一个我处理过的问题类型的例子和一些我认为非常有用的工具来介绍。

这是一个轻微的题外话,但是对于任何希望成为数据科学家的人来说,第一个建议就是要擅长 SQL 。哪种风格并不重要,但精通 SQL 非常重要。我在目前职位上参与的所有项目都有一个共同点,那就是 SQL。我团队中的所有数据科学家每天都使用 SQL 进行分析工作。我们还试图提升技能并鼓励非数据科学家使用它,即使非常简单的查询也能提供强大的洞察力。好消息是学习 SQL 的基础知识非常容易。对于更高级的查询,我们通常只是建立在基本概念的基础上。当我提高 SQL 技能时,我发现一门课程非常有用,那就是关于 Udacity 的这门课程。它涵盖了基础知识,并通过一个实际的案例研究进入了更高级的主题。我向任何想提高 SQL 技能的人强烈推荐它。我还会建议你仔细研究一下这些问题中的一些问题,因为它们在复杂性上可能更接近你在现实世界中会发现的问题。

我认为值得一提的另一点是,花一些时间去真正理解你公司的数据。如果你足够幸运,在一家拥有优秀数据工程师和数据基础设施的公司,那么这一步会容易得多。一般来说,回答下面的一些问题会使查询的构建变得更加容易,并且减少出错的机会。(如果您对数据仓库有一个良好的 ERD ,那么许多问题都可以得到解答)。

  • 你有可能用到的关键表有哪些?
  • 表格是如何构成的?即列的数据类型是什么?
  • 表格之间是如何关联的?即一对一、一对多的关系(对于 joins 很重要:我以前被这个刺痛过)
  • 缺失值是如何记录的?例如,如果用户今天没有付款,记录为空还是 0?
  • 表格是如何以及何时更新的?

好了,我们已经谈了一点 SQL 的重要性。在我们开始分析并开始用 SQL 或 Python 编码之前,写下我们需要做什么的高级计划是一个非常好的主意。当开始一个项目时,这是必须的,因为它可以防止你偏离项目的主要目标。为此我一般用特雷罗 。当开始一个新项目时,我会创建一个白板,通常会有一个 背景列表、一个待办事项列表、一个正在进行的列表和一个已完成列表 。然后,我会制作几张卡片,概括介绍问题、目标和可交付成果。让你的利益相关者也加入这个讨论板通常是一个好主意,这可以为会议上的讨论点提供基础。现在,您也可以使用另一个工具来完成这项工作,但要点是,我们已经清楚地列出了项目的一些关键信息。

我们举一个项目的例子,说说工作流程和我用的一些工具。假设我有一个需要做一些探索性建模的项目,这个工作流程会是什么样子?

假设我已经在 Trello 创建了一个高级计划。开始分析时,我要做的下一件事是创建一个 git repo 。我确信我不需要向你们任何人解释版本控制的重要性,但是这是分析项目的一个重要组成部分。同样,我通常用我最常用的库创建一个新的 Conda 环境。你可以更进一步,使用一个 docker 容器。为了保持一致的项目结构,我们还可以使用cookiecutter来创建典型数据科学项目的模板。创建一个像这样的标准化项目模板对你自己和团队中的其他人都很有帮助,尤其是当他们要审查你的工作时。我做大部分的编码工作,特别是在 J upyter 笔记本或 Jupyter 实验室中的探索性分析。您还可以为 Jupyter 笔记本电脑添加不同的 Conda 环境,这使得在多种环境之间切换变得非常简单。下面的代码展示了如何创建一个新的 Conda 环境,将其添加到 Jupyterlab,并设置 cookiecutter 数据科学模板。如果您的基础环境中安装了 Jupyterlab,那么您可以启动 Jupyterlab 并在 conda 环境之间轻松切换。

**conda create --name ds_env python=3.7
conda activate ds_envconda install -c conda-forge cookiecutter
cookiecutter https://github.com/drivendata/cookiecutter-data-scienceconda install -c anaconda ipykernel
python -m ipykernal install --user --name=ds_env**

如果我处理大量数据或需要更多计算,我倾向于使用 AWS Sagemaker,而不是在本地工作。 如果您正在开发的模型将在 AWS 上投入生产,这将特别有用。和同事分享笔记本也很容易。AWS 上有很多很好的机器学习功能,例如各种内置模型、自动超参数调整和与 git 的集成,但我不会在这篇文章中深入讨论这些,但如果你感兴趣,AWS 有一个很棒的博客,它详细描述了其中一些功能。

如果我正在做的项目更多地与 ETL 相关或者涉及到改变生产代码,我倾向于使用 VScode 。我是这个 IDE 的忠实粉丝,你可以添加许多扩展,让你的生活更轻松。添加 python 扩展后,我们获得了一些真正有用的功能,如调试器(非常有用)、语法高亮、自动完成和智能感知。您还可以直接从 IDE 中使用 Jupyter 笔记本,这是一个额外的好处。

我最近开始使用的另一个工具是 MLflow 。它是管理机器学习生命周期的工具。总的来说,它使跟踪您的模型实验更加容易,提高了可重复性,并使部署更加容易。

我经常使用的最后一个工具是Con flow。你可以在这里使用任何你想要的东西,只要你在记录你的工作。这不仅对我们自己很重要,对向团队成员和其他同事展示我们的工作方法和成果也很重要。拥有这个团队已经完成的工作的中央存储库是非常有用的,并且可以非常容易地共享团队正在进行的不同项目的见解和结果。我建议的另一件事是大量记录你的代码,不管是 SQL,R,Python,还是其他。我不知道有多少次我回头看一个查询或一段代码,不知道我到底在做什么。写注释,特别是对于复杂的逻辑。以后你会感谢自己的,我保证。

我使用的主要工具汇总

  • 特雷罗

  • Git

  • 康达环境/ Docker。

  • Jupyter 实验室/ Sagemaker / VSCode

  • 合流

持续学习和发展

我想讨论的最后一个话题是,数据科学家需要不断学习。作为一名数据科学家,渴望并愿意获取知识是非常重要的。数据科学是一个新兴的广阔领域,几乎不可能知道所有的事情,但随着时间的推移逐渐获得越来越多的知识对你的职业生涯将是无价的。我看到一些文章推荐数据科学家专攻某个特定领域,以确保他们对雇主来说是一个有吸引力的潜在客户。虽然我不一定不同意这一点,但我确实认为,在专注于一个领域之前,先在几个不同的领域获得经验可能更重要,尤其是在你的公司内部。为了发展你的技能,我建议做的一件事是制定一个 发展计划

列出你想学习或改进的领域或工具是帮助你提高技能的好方法。我建议为自己制定一个高水平的发展计划,列出你希望在未来 6 个月到 1 年内实现的目标。在我的公司,我们被鼓励制定发展计划,但这是你可以自己做的事情。但是,与您的经理分享这一点可能是个好主意,因为他们可能会为您提供培训和项目来帮助您实现这些目标。如果你想进入数据科学领域,这也是一个很好的练习,可以帮助你确定你需要努力的领域。

例如,对我个人来说,在接下来的一年里,我希望提高我对云基础架构的了解,特别是 AWS。我想努力获得 AWS 机器学习专业证书。我也想提高我的深度学习知识。我是在线课程的忠实粉丝,正计划参加 Coursera 的深度学习专业课程。通常,在完成课程后,我喜欢尝试并创建一个个人项目来巩固我所学的主题。陷入一个项目是测试你理解能力的一个很好的方式,并且会帮助你更长时间地记住信息。****

例如,我的高级发展计划中的这两个目标如下图所示。我制定了我的高层次目标,列出了我计划如何实现它们,我的关键时间表是什么,以及我认为会在这个过程中帮助我的任何资源。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例:高级发展计划

除了发展计划之外,当我试图学习新的东西时,我通常还会做一些事情。希望你也能发现其中一些有用的提示。

包括我在内,人们最纠结的一件事就是如何开始。即坐下来研究或解决问题。这些事情很难,总的来说,我们的大脑很懒,他们不喜欢做需要努力的事情。为了克服这一点,我经常尝试让 给自己做工作的 某种奖励。这可能就像工作一小时后喝杯咖啡或看一段 youtube 视频一样简单。这听起来很傻,但它通常会让开始变得容易一点。

这似乎是显而易见的,但是要找到与你所学的和你个人兴趣相关的 项目。 例如,如果你正在学习随机森林,并且你喜欢篮球,使用随机森林来预测篮球比赛结果。这给你一个更好的机会坚持下去,因为你会更喜欢它。你也可能对数据有一些很好的见解,因为你已经有了一些领域知识。

我最喜欢的学习方式一直是在线课程、书籍和个人项目的结合。以下是我过去使用过的资源列表,我发现这些资源对于学习与机器学习、数据科学和编程相关的主题特别有用。

书籍

  • Aurelien Geron:这本书到处都值得推荐。它包含理论和代码的完美结合,让你用 python 估算算法。我还没有看完深度学习部分,但期待着阅读它。
  • Christopher Bishop 著 模式识别和机器学习:这本书并不容易阅读,但它包含了你将会遇到的主要机器学习算法的真正深入的推导和解释。当我学习 k-means 和高斯混合模型时,这本书很有帮助。
  • 商业数据科学:这是一本开发商业数据科学直觉的好书。它还讨论了机器学习背景下的期望值框架,我发现这非常有用。
  • 数据科学家实用统计学作者 Peter Bruce: 作为数据科学中主要统计概念的修正,确实有用。我用这个来修改数据科学面试。
  • 数理经济学的基本方法:虽然这本书有经济学的一面,但它包含了几乎所有你在数据科学中会遇到的数学,除了真正高级的东西。如果你想重温你的线性代数,微积分和最优化,我不能推荐这本书。它帮助我通过了硕士考试。

在线课程

  • 【data camp】:我在这里上过很多课程,特别喜欢视频和编码练习的结合。他们也有一些非常有趣的项目,你可以尝试一下。
  • 贝叶斯机器学习方法:贝叶斯机器学习不同应用的绝佳课程。它是上述模式识别和机器学习的良好补充,因为它们涵盖了一些相同的主题。
  • 机器学习专用数学:如果你的数学有点生疏,我会去看看这个课程。它们涵盖了你在开始进入机器学习算法之前需要知道的一些主要话题。
  • ****Udacity: 用于数据分析的 SQL:一个关于 SQL 的很棒的课程,介绍更高级的东西。

注意:这篇文章中的一些链接是附属链接。

好了,这就是我对成功成为一名数据科学家的提示和建议。希望您发现这很有用,它们可以帮助您提高作为数据科学家的技能。请随意查看下面我的个人网站或在 Linkedin 上联系。

*****https://www.datascientistguide.com/ *****

数据分析师和数据科学家都应该知道的 3 种工具

原文:https://towardsdatascience.com/3-tools-both-data-analysts-and-data-scientists-should-know-1c7b814812e4?source=collection_archive---------33-----------------------

意见

深入探讨较少提及的工具

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

JESHOOTS.COMUnsplash【1】上的照片。

目录

  1. 介绍
  2. 吉拉
  3. 检查员
  4. 汇合
  5. 摘要
  6. 参考

介绍

虽然对于数据分析师和数据科学家来说,有更多复杂的工具,但在回顾这两个热门角色的共同技能时,也有一些更通用的工具经常被忽略。了解这些工具既可以在你的面试过程中帮助你,也可以在你被录用后在工作中帮助你。其中两项技能更注重组织和流程,而另一项更注重洞察力和分析。作为一名数据分析师和数据科学家,你的大部分工作是沟通。了解复杂的机器学习算法和 Python 编程当然是有益的,而且通常是必不可少的。然而,知道如何与公司的其他利益相关者沟通也同样重要,这就是这些工具发挥作用的地方。如果您想了解数据分析师和数据科学家都应该知道的三种工具,请继续阅读。

吉拉

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Toa HeftibaUnsplash【2】上拍摄的照片。

对于这两个职位来说,最少被谈论的工具可能是吉拉【3】,然而同时,它很可能是最常用的工具。团队可以从使用吉拉中受益,因为它充当了所有项目的规划平台,可以看到需要什么,正在进行什么,需要改进什么,以及最近完成了什么。项目委员会通常是你公司组织内的一个团队,例如商业分析数据科学

以下是数据分析师和数据科学家使用吉拉的一些好处:

  • 项目板的可视化 —总的来说,吉拉的这一功能是最有用的,在这里你可以可视化票据,这些票据是你需要完成的基本任务,是它们当前所在流程的一部分。例如,你可以有一个backlog的票或任务,你将最终工作,然后你可以移动这些票到in progress,到最后的done。这些突出显示的步骤是常见的,但是在吉拉,您可以将它们更改为您想要的任何名称。把白板想象成白板上的便笺条。
  • Epic link organization —如果你的门票有一个总的主题,你可以将它们分组为所谓的epic link。此功能允许您将常见任务/票证关联到一个伞状主题下。例如,假设您有五张分配给多人的票。然后,您可以将所有这些标签链接到一个主题,比如产品分类或 Q1 热图——这取决于您的团队认为重要的分类。
  • 优先级排序——一旦你开始使用吉拉,你会很难确定哪些门票比其他门票更重要。因此,作为一种解决方案,您可以隔离每个票证的优先级,以便更好地理解。举个例子,你有P1P2P5。将这些优先级进行颜色编码也很好,这样在会议中浏览票证时会更加明显,例如站立会议。

如您所见,吉拉对数据分析师和数据科学家都非常有用。吉拉的主要用途是用于组织应用程序,当您扩展您的项目、团队和公司的整体组织时,这是非常重要的。

检查员

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

卡洛斯·穆扎Unsplash【4】上的照片。

下一个工具类似于其他可视化工具,所以我在这里说的很多内容也适用于其他工具,比如 Tableau。Looker【5】专注于数据并将其可视化。正如 Looker 所描述的,其主要用途是用于现代 BI 和分析、集成洞察、数据驱动的工作流和定制应用程序。Looker 擅长轻松集成 SQL 查询来创建见解和报告。数据科学洞察也是如此,可以用一种很好的、易于理解的格式来监控模型的结果。

以下是数据分析师和数据科学家使用 Looker 的一些好处:

  • SQL 集成—Looker 的主要用途是连接你的数据,并提供给用户。你可以使用 SQL 查询你的数据库。这是一种简单的获取数据的方法,就像你习惯的那样,但是是在应用程序本身内部。
  • 可视化 —您可以使用 Looker 创建多种类型的可视化,这是因为它能够使用 SQL 查询您的数据。这些可视化包括funnelmapsgaugetimelinedonut multiplesSankeytreemapcombined charts

数据分析师的大量工作是 SQL 查询和可视化数据。对于数据科学,您可以创建度量标准来描述您的模型在总体上的表现,也可以使用不同的过滤器来进行细化。

汇合

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Startaê TeamUnsplash【6】上拍摄的照片。

这种工具属于包括吉拉在内的亚特兰蒂斯公司的同一家族。Confluence【7】是最简单的工具,但由于需要组织团队的什么如何,它对数据分析师和数据科学家都非常有益。例如,许多公司会基于像what is data analytics?what is data science?这样的问题来构建团队信息。它还可以作为记录重要概念的地方,如公司内部使用的机器学习算法。

以下是数据分析师和数据科学家使用 Confluence 的一些优势:

  • 页面—Confluence 的一个特性是Pages,它作为一个对团队非常重要的书签项目列表。在此功能中,数据分析师可以包括关于创建指标等常见流程的文档,而对于数据科学家来说,它可以作为学习机器学习算法的地方,这对于当前员工和新雇佣的员工都很有用,用于培训目的。
  • 协作 —所有这些工具都有协作的主题,Confluence 也不例外。你既可以喜欢pages,也可以对其发表评论,这有助于就对公司分析很重要的事情展开对话

虽然相当简单,但 Confluence 可能是一些数据分析和数据科学团队的重要组成部分,因为它是阐明和记录应该广为人知的常见流程的地方。

摘要

数据分析师和数据科学家通常在一家公司共享任务,因此这意味着他们也有共享的工具来帮助完成这些任务。我们已经讨论了这两种角色的人都应该知道的三种常用工具。虽然它们并不复杂,但是它们对于建立一个更有组织的团队是很重要的。

总而言之,数据分析师和数据科学家应该知道以下三种工具:

* Jira* Looker* Confluence

我希望你觉得我的文章既有趣又有用。如果您作为数据分析师或数据科学家从这些工具中受益,请随时在下面发表评论。在下面写下你使用这些工具的任何其他原因,或者,你用其他东西代替吗?

请随时查看我的个人资料和其他文章,也可以通过 LinkedIn 联系我。我不隶属于上述任何公司。

参考

[1]照片由JESHOOTS.COMUnsplash(2017)上拍摄

[2]由 Toa HeftibaUnsplash 上拍摄的照片,(2018)

[3]亚特兰蒂斯,吉拉主页,(2021)

[4]Carlos Muza 在 Unsplash 上拍摄的照片,(2016)

[5] Looker 数据科学公司, Looker 主页,(2021)

[6]照片由 Startaê TeamUnsplash(2018)上拍摄

[7]亚特兰蒂斯,总汇主页,(2021)

监控和优化您的 Linux 系统的 3 个工具

原文:https://towardsdatascience.com/3-tools-to-monitor-and-optimize-your-linux-system-c8a46c18d692?source=collection_archive---------4-----------------------

用这三个工具控制你的机器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

动机

如果您是 Linux 用户,您可能想知道一些关于您的计算机的重要信息,例如:

  • 系统的 CPU 使用率、内存使用率和磁盘使用率
  • 系统信息
  • 每个文件夹或文件的磁盘使用情况,以及上次使用它们的时间。
  • 正在运行的进程的内存和 CPU 消耗
  • 启动应用程序

了解这些信息将使您能够优化您的系统。

在这篇文章中,我将向你展示 3 个工具,它们可以让你做上面所有的事情,甚至更多!

htop -一个交互式进程查看器

htop 是一个交互式流程查看器。htop 允许您查看与命令行相关的信息,例如内存、CPU 消耗以及它已经运行了多长时间。

每当我注意到我的计算机速度变慢,并想找出哪些进程对速度有重大影响时,我经常使用这种方法。我还使用它来监控运行程序或训练模型时使用了多少内核和多少内存。

大多数发行版中都有 htop 的软件包。要运行 htop,请键入

htop

您应该会看到类似下面的内容:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

在上图中,命令按 CPU%排序。似乎进程/opt/brave,com/brave/brave在所有正在运行的进程中占用了最多的 CPU 资源。

可以尝试几种快捷方式:

  • F4:仅显示名称与输入文本匹配的进程
  • F5:把流程之间的关系布置成一棵树。键入+-展开或折叠子树。
  • F6:在排序视图上,选择一个字段进行排序。
  • Home:滚动到进程列表的顶部,选择第一个进程。
  • End:滚动到进程列表底部,选择最后一个进程。

点击查看所有快捷方式列表。

Baobab —磁盘使用分析器

如果你想得到你的磁盘使用情况的图形展示,试试 Baobab 。我经常使用这个工具来找出哪些应用程序占用了大量磁盘空间,但已经有一段时间没有使用了。了解这一点有助于我清理不再需要的文件或文件夹。

和 htop 一样,Baobab 也可以在大多数发行版中获得。要运行 Baobab,请键入

baobab

您应该会看到如下所示的内容:

通过使用图表来可视化每个文件夹和文件的磁盘使用情况,我们可以更好地了解计算机中哪些文件夹或文件占用了最多的磁盘空间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者 GIF

我们还可以看到文件夹或文件的大小,它们有多少个文件,以及它们最后一次被修改是什么时候。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

Stacer —系统监视器和优化器

Stacer 是目前为止我介绍的三个工具中最让我兴奋的一个。它允许您监控许多重要信息,例如:

  • 系统信息
  • 下载和上传速度

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

  • 搜索
  • 系统服务

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

  • 流程。你可以把这看作是htop的简单版本。即使它没有像htop给你那么多的选择,但它更容易使用和理解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

  • 已安装的软件包
  • CPU 和内存的历史

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者 GIF

Stacer 还允许您通过以下方式优化您的计算机:

  • 指定电脑唤醒时要启动的应用程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

  • 清洁系统
  • 在 CPU 百分比、内存百分比和磁盘百分比低于特定百分比后发送警报消息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

还有更多!

你可以在这里找到如何安装堆垛机。

结论

恭喜你!您刚刚学习了如何使用 htop、Baobab 和 Stacer 来监控和优化您的 Linux 机器。对您的机器有更多的控制将使您能够优先运行哪些任务,并删除不必要的应用程序或进程。

我喜欢写一些基本的数据科学概念,并尝试不同的算法和数据科学工具。你可以在 LinkedIn 和 Twitter 上与我联系。

如果你想查看我写的所有文章的代码,请点击这里。在 Medium 上关注我,了解我的最新数据科学文章,例如:

3 个跟踪和可视化 Python 代码执行的工具

原文:https://towardsdatascience.com/3-tools-to-track-and-visualize-the-execution-of-your-python-code-666a153e435e?source=collection_archive---------0-----------------------

避免在一行代码中调试时的麻烦

动机

您是否见过如下所示的错误输出:

2 divided by 1 is equal to 2.0.
Traceback (most recent call last):
  File "loguru_example.py", line 17, in <module>
    divide_numbers(num_list)
  File "loguru_example.py", line 11, in divide_numbers
    res = division(num1, num2)
  File "loguru_example.py", line 5, in division
    return num1/num2
ZeroDivisionError: division by zero

并希望输出能更容易理解,如这里所示?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

您可能还想实时可视化哪些代码行正在执行以及它们执行了多少次:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者 GIF

如果是这样的话,这篇文章将为你提供实现上述目标的工具。这三个工具是:

  • Loguru —打印更好的异常
  • snoop —打印函数中正在执行的代码行
  • 心率-实时可视化 Python 程序的执行

使用这些工具只需要一行代码!

Loguru —打印更好的异常

Loguru 是一个旨在让用 Python 登录变得有趣的库。Loguru 提供了许多有趣的功能,但我发现最有用的一个功能是能够捕捉意外错误显示哪个变量值导致代码失败

要安装 Loguru,请键入

pip install loguru

为了理解 Loguru 是如何有用的,想象你有两个函数divisiondivide_numbers,函数divide_numbers被执行。

注意combinations([2,1,0], 2)返回[(2, 1), (2, 0), (1, 0)]。运行上面的代码后,我们得到了这个错误:

2 divided by 1 is equal to 2.0.
Traceback (most recent call last):
  File "loguru_example.py", line 17, in <module>
    divide_numbers(num_list)
  File "loguru_example.py", line 11, in divide_numbers
    res = division(num1, num2)
  File "loguru_example.py", line 5, in division
    return num1/num2
ZeroDivisionError: division by zero

从输出中,我们知道行return num1/num2是错误发生的地方,但是我们不知道num1num2的哪个值导致了错误。幸运的是,这可以通过添加 Loguru 的logger.catch装饰器来轻松跟踪:

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

加上logger.catch,异常就好理解多了!原来误差发生在用2除以0的时候。

snoop —打印函数中正在执行的代码行

如果代码中没有错误,但我们想弄清楚代码中发生了什么,该怎么办?这时 snoop 就派上了用场。

snoop 是一个 Python 包,它通过只添加一个装饰器来打印正在执行的代码行以及每个变量的值。

要安装 snoop,请键入:

pip install snoop

让我们假设我们有一个名为factorial的函数,其中寻找一个整数的阶乘。

输出:

The factorial of 5 is 120

为了理解为什么factorial(5)的输出是20,我们可以在函数factorial中添加snoop decorator。

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

在上面的输出中,我们可以查看变量的值以及执行了哪一行代码。现在我们可以更好地理解递归是如何工作的了!

心率-实时可视化 Python 程序的执行

如果你想直观的看到哪些行被执行了,执行了多少次,试试 heartrate。

心率也是 snoop 的创作者创作的。要安装心率,请键入:

pip install heartrate

现在让我们在之前的代码中添加heartrate.trace(browser=True)。这将打开一个浏览器窗口,显示调用过trace()的文件的可视化。

当您运行上面的代码时,应该会弹出一个新的浏览器。如果没有,去 http://localhost:9999 。您应该会看到如下所示的输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

酷!条形图显示被点击的线路。越长的条形意味着点击次数越多,越浅的颜色意味着越新。

从上面的输出中,我们可以看到程序执行了:

  • if x==1 5 次
  • return 1曾经
  • return (x * factorial(x-1)) 4 次

输出是有意义的,因为x的初始值是 5,并且该函数被重复调用,直到x等于1

现在让我们看看使用心率实时可视化 Python 程序的执行是什么样子的。让我们添加sleep(0.5)以便程序运行得慢一点,并将num增加到20

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者 GIF

厉害!我们可以实时看到哪些代码行正在执行,以及每一行执行了多少次。

结论

恭喜你!您刚刚学习了 3 种工具来跟踪和可视化 Python 代码的执行。我希望在使用这三个工具时,调试对你来说不会那么痛苦。既然这些工具只需要一行代码,为什么不试试看它们有多大帮助呢?

随意发挥,并在这里叉这篇文章的源代码:

https://github.com/khuyentran1401/Data-science/tree/master/python/debug_tools

我喜欢写一些基本的数据科学概念,并尝试不同的算法和数据科学工具。你可以在 LinkedIn 和 T2 Twitter 上与我联系。

这个回购如果你想检查我写的所有文章的代码。在 Medium 上关注我,了解我的最新数据科学文章,例如:

💔-tools-to-monitor-and-optimize-your-linux-system-c8a46c18d692> 💔-advance-techniques-to-effortlessly-import-and-execute-your-python-modules-ccdcba017b0c> 💔-python-tricks-to-read-create-and-run-multiple-files-automatically-5221ebaad2ba>

将 3 种顶级机器学习算法写入您的数据科学简历

原文:https://towardsdatascience.com/3-top-machine-learning-algorithms-to-include-on-your-data-science-resume-54f6745b8e88?source=collection_archive---------6-----------------------

意见

战略性地展示你的技能,以吸引雇主的注意

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Unsplash【1】上由 Kote Puerto 拍摄的照片。

目录

  1. 介绍
  2. LSTM
  3. XGBoost
  4. CatBoost
  5. 摘要
  6. 参考

介绍

有几种机器学习算法,你可以在学术界学习,也可以在工作场所使用,但有些算法可能比其他算法更适合实践和应用。它最终取决于几个因素,比如你正在解决的问题、你拥有的数据、你的公司拥有的资源等等。然而,我看到一些算法似乎更独特、更流行或更准确。请记住,这些顶级算法是由我的观点,以及作为一名专业数据科学家和面试官的经验形成的。记住这一点,让我们讨论一下为什么你会特别想要展示这些机器学习算法的原因。

LSTM

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由法库里安设计Unsplash【2】上拍摄。

令人惊讶的是,我根本没见过多少人在简历中提到这个算法,LSTM ( 长短期记忆);它通常是一种流行的基于树的算法,也可能是一种 SARIMA 模型(季节性自回归综合移动平均线)。也就是说,在简历中包含这种机器学习算法的主要原因是因为它是独一无二的,可以从本质上让你区别于其他申请者。

不仅如此,这种算法也是有用的,并且可以是高度准确的,当然,这取决于其他因素,但是与其他类似算法相比,这种机会似乎确实更好。它还可以用于分类和基于时间序列的问题,以及在其过程中更加可控或灵活。

把 LSTM 写在简历上有一些好处:

  • 它是独特的
  • 它更复杂,所以有些人不太愿意学习或掌握这种算法
  • 它可以比 RNN 更好,因为它的灵活性
  • 它有机会变得更准确或更具预测力

如你所见,包含并了解这个算法可以让你成为独一无二的申请者。

XGBoost

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

约翰·西门子在 Unsplash 上拍摄的照片。

这可能是三种算法中最受欢迎的一种,这种算法更像是包含在您的工具箱中的核心算法。这个算法是你应该知道的,当然,也应该写在你的简历上。因为它已经很流行了,所以它的好处是有更多的文档。

XGBoot 在很多方面都更好,但如果你要对树算法进行排序,我会说它从决策树→随机森林 XGBoot,然后到另一个,我在下面列出的新算法。

以下是你为什么要把 XGBoost 放在简历上的一些进一步的原因:

  • 高性能
  • 通常是最精确的算法之一,因此您可以更具竞争力
  • 大量的文档和例子,所以面试官比其他两个更熟悉讨论这个算法

使用算法本身有无数的理由,但为了把它写进你的简历,它会显示你是一个稳定的申请者,拥有可以应用于更多算法的基础知识。

CatBoost

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ludemeula FernandesUnsplash【4】拍摄的照片。

也许最优秀和最新的是 CatBoost。应用您所知道的关于 XGBoost 的一切,但是补充一点,它甚至更快、更容易使用、更准确,并且能够非常好地处理分类特性。它是如此之新,以至于一些面试官可能甚至还不知道这个算法,所以当你在简历中包括这个算法时,你真的可以炫耀一下,但这并不遥远,他们不能理解它,特别是如果他们熟悉大多数树算法,尤其是 XGBoost。

为了补充前面提到的注意事项,现在我们可以包括包含 CatBoost 的最终等级:

决策树→随机森林→ XGBoost → CatBoost

以下是你应该在数据科学简历中加入 CatBoost 的更多理由:

  • 非常新,会让你更有竞争力的申请人
  • 可以向采访者展示你可以用一个高度准确和高效的算法工作
  • 我可以证明你可以使用一种算法很好地处理分类未来,几乎所有的算法在某种程度上都不能很好地处理分类特征,比如使用一次热编码来创建一个大而稀疏的数据帧
  • …在这里,您可以保留分类功能栏,使其更易于与软件工程师、ML 工程师或产品事务等利益相关方协作

如你所见,我把最好的放在了最后。由于各种原因,CatBoost 是一个伟大的算法,你应该把它写进你的简历。

摘要

这些机器学习算法中的任何一个都不会出错,因为不同的原因,它们都非常有用。无论你是预测一个连续的目标,还是试图对一个类别进行分类,甚至是预测一个时间序列的目标,这些算法都可以帮助产生很好的结果,这对你的面试很有价值。

总结一下,你应该在你的数据科学简历中包括的前三种机器学习算法:

* LSTM* XGBoost* CatBoost

我希望你觉得我的文章既有趣又有用。如果您同意或不同意这些顶级机器学习算法,请在下面随意评论。为什么或为什么不?你认为你在数据科学简历中还包括哪些算法?这些当然可以进一步澄清,但我希望我能够对数据科学简历有所启发。感谢您的阅读!

我不属于这些公司中的任何一家。

请随时查看我的个人资料、 Matt Przybyla和其他文章,并通过以下链接订阅接收我的博客的电子邮件通知,或通过点击屏幕顶部的订阅图标 ,如果您有任何问题或意见,请在 LinkedIn 上联系我。

订阅链接:https://datascience2.medium.com/subscribe

参考

[1]照片由 Kote PuertoUnsplash 上拍摄,(2018)

[2]照片由法库里安设计Unsplash 上拍摄,(2021)

[3]约翰·西门子在 Unsplash 上拍摄的照片,(2014)

[4]照片由 Ludemeula FernandesUnsplash(2017)拍摄

3 面向初级程序员的顶级 Python IDE

原文:https://towardsdatascience.com/3-top-python-ide-for-beginner-programmer-5606d6c1af79?source=collection_archive---------14-----------------------

完美的 IDE 可以让你从头开始学习编程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

如果您喜欢我的内容,并希望获得更多关于数据或数据科学家日常生活的深入知识,请考虑在此订阅我的简讯。

IDE 或集成开发环境是一个代码编程工具,用于编写、测试、调试和直观地编译代码。IDE 是任何编程活动的必备工具,正因为如此,开发了许多种类的 IDE——包括 Python 的 IDE。

虽然有许多选择,但并不是每个 IDE 都为您提供了学习 Python 编程语言的材料。因此,您可能希望研究另一种 IDE,它可以为任何初级程序员提供学习能力——特别是对于那些想要开始 Python 之旅的人。

在本文中,我想概述一下我认为适合任何初学者的 3 大 Python IDE。让我们开始吧。

1.代码 Skulptor

CodeSkulptor 是一个浏览器内置集成开发环境,专门为初学者开发的 Python 教学软件。它于 2012 年开发,供教室中的学生一起学习,无需安装任何特定的 IDE,并确保所有 Python 环境都是相似的。因为是针对学生开发的,所以非常适合初学者学习 Python。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CodeSkulptor3 IDE(图片由作者提供)

上图是 CodeSkulptor 的 IDE 接口,专门针对 Python 3。CodeSkulpor Python 2 有一个版本,但是在撰写本文时,Python 2 在当前的 data professional 工作流中已经过时了。

IDE 很简单;你只需要在左边写你的代码(code),在右边显示结果(Output)。但是,因为 CodeSkulptor 是为学习目的而开发的,所以您不能在环境中下载调试过程或额外的扩展。

虽然,你可能想看的是 CodeSkulpor 文档。我会在下图中向你展示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CodeSkulptor3 文档(图片由作者提供)

对于以前不了解 Python 的人来说,该文档是一个完整的学习材料。它的编写和构造方式对于任何初学者来说都是完美的,可以让他们学习许多你以前不知道的术语。这就是 CodeSkulptor 非常适合开始 Python 之旅并了解更多编程语言的初学者的原因。

2.托尼

Thonny 是塔尔图大学为学习和教授编程而开发的 IDE,你可以在 T2 的 Bitbucket repository 免费下载。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

Thonny 对初学者来说非常好,因为它可以在助手页面的帮助下向你展示一步一步的语句和表达式。Thonny 提供了一个很棒的编辑功能,可以用局部变量打开一个新窗口,代码与主代码分开显示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

助手选项卡(按作者分类的图像)

此外,Thonny 通过突出显示任何出错的行来帮助您的编码过程。例如,当你忘记了一个括号或者打错了一个错别字,如下图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Thonny highlight(图片由作者提供)

当你的脚本中有一个错误时,代码块会从你开始出错的那一行到最后一行用灰色突出显示。这样,您可以指出代码中的任何错误。

Thonny 还为您提供了 Python 脚本调试过程,运行起来非常灵活。您需要按 Ctrl + F5,调试过程会自动开始。我将通过调试上面的代码向您展示这个例子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Thonny 调试(图片由作者提供)

结果如上图所示;我有一个语法错误,因为我没有正确地关闭解析。

如果您想探索更多,您可以探索的所有工具都可以在下面显示的视图选项卡中找到。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Thonny 视图选项卡(图片由作者提供)

总的来说,Thonny 的目的是让您很好地理解 Python 是如何工作的,并帮助您简化编码过程。在我看来,Thonny 适合一个想要学习更多 Python 语言的初学者。

3.翼

Wing 是一个极简的 Python IDE,是为教授初学者编程而开发的。开发人员已经编写了配套书籍和视频记录,您可以密切关注使用 Wing IDE 学习 Python。让我们看看下图中的 Wing IDE。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Wing IDE(图片由作者提供)

正如你在上面的图片中看到的,IDE 已经包含了一个 IDE 和 Python 的教程,你可以跟随。这些材料对任何初学者来说都很容易理解,IDE 对任何人来说都很简单。让我们来看看 Wing 的一些特性,您可以用它们来学习。

首先,我们有自动完成功能。当你想有一个更快的方法来编写脚本时,这是很有用的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自动完成(图片由作者提供)

接下来,我们将重点介绍 Wing 中的功能。在编码过程中,你最终会得到一堆代码。有时候很乱,特别是对于编码初学者。在这种情况下,突出显示功能是非常有用的,因为它可以帮助您确定您在编码过程中的位置或者错误在哪里。让我们以下图为例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

在上面的图片中,你可以看到我的变量和另一个同名的变量是如何突出显示的。然后你会看到一条指示错误的红线。如果我们将光标移到那里,我们可以突出显示错误的原因。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

另一个我觉得对初学者有用的特性是调试特性。当运行调试功能时,该进程将尝试查找您的编码错误以及导致错误的原因。下图显示了调试示例过程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

最后,我喜欢 Wing 的一个功能是搜索栏,任何人都可以方便地使用。当我写代码时,我个人很难跟踪所有的变量和某些代码行的位置。有了搜索栏,这个过程变得更加容易。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

正如你从上面的图片中看到的,我可以试着使用 search 按钮,所有我想找到的代码都被高亮显示。这听起来并不令人惊讶,但它的用处是巨大的,尤其是如果你还在学习的话。

总的来说,Wing 对于初学者来说是易于使用的 IDE,因为它提供了许多有助于编码过程的学习材料和功能。

结论

Python 是许多数据专业人员使用的编程语言。Python 语言在许多领域变得越来越重要,因为它容易学习,并且有很多社区支持。然而,学习 Python 编程语言对一些人来说仍然是一个挑战。

在本文中,我概述了初学编程的 3 个顶级 Python IDE。它们是:

  1. CodeSkulptor
  2. 托恩尼

希望有帮助!

如果你没有订阅成为媒体会员,请考虑通过我的推荐订阅来支持我的写作。

在我的LinkedInTwitter 上访问我。

3 个顶级 Python 包,帮助数据科学家学习数学

原文:https://towardsdatascience.com/3-top-python-package-to-learn-math-for-data-scientist-8e3482e7e79d?source=collection_archive---------3-----------------------

从这些 Python 包中学习数学

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

杰斯温·托马斯Unsplash 上拍摄的照片

如果您喜欢我的内容,并希望获得更多关于数据或数据科学家日常生活的深入知识,请考虑在此订阅我的简讯。

作为数据科学家,我们不断被告知我们需要理解机器学习,因为它是我们完成工作的工具之一。我知道该领域的许多新手正在学习机器学习,而没有对概念和方程有更深入的理解——仅仅依赖于使用算法。

理解机器学习最重要的基础是数学知识。当你听到数学时,它会让你想起高中一天的课程——难,令人困惑,理论性强。机器学习数学当然是相似的,但在现代不同于旧时代;Python 可以帮助你学习数学。

我之前已经写了统计 Python 包,你可以用它来学习统计学,现在,我想写一下数学包。这里是我为数据科学家学习数学的前 3 个 Python 包。

1.数字和数学模块

嗯,从技术上讲,我在这一点上想要概述的包不仅仅是一个单独的包,而是由几个包组成,这些包交织在一起,被称为数字和数学模块

这些模块在 Python 主页上有文档记录,我们得到了关于这个包的完整解释。摘自 Python 文档,模块中列出的包有:

我喜欢这些模块的文档,它用通俗的语言解释了基本的数学概念。对于一个不太了解数学术语的初学者来说,这些模块真的很适合你。让我们以“数学”Python 包文档为例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数学包文档(来源:https://docs . python . org/3/library/math . html # number-theory-and-representation-functions)

文档解释了软件包上可用的功能足够简单(尽管您仍然需要集中精力);您可以将此文档作为学习的基础。

让我们尝试使用其中一个软件包。我想用数学软件包来得到可用的特殊常数。为此,我只需键入以下代码:

import math#Getting the mathematical constant ***π***
print(math.pi)#Getting the mathematical constant ***e***
print(math.e)#Getting the mathematical constant **tau**
print(math.tau)#Getting the **floating-point positive infinity**
print(math.inf)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

如果你想知道它们所显示的常数,你可以参考现有的文档。

2.交响乐

什么是症状?这是一个符号数学的 Python 库。那么,什么是符号计算呢?SymPy 文档中给出的教程页面解释了符号计算是一个用符号处理数学对象的计算问题。简单地说,符号数学精确地而不是近似地表示了数学对象。如果数学表达式是未赋值的变量,那么它就留在符号形式中。

也许我们可以用一些例子来更好地解释这个概念。例如,当我们计算平方根时,我们可以这样做。

math.sqrt(16)Output: 4.0

使用数学软件包,如果我们取 16 的平方根,我们将得到值 4。如果我们这样做。

math.sqrt(8)Output: 2.8284271247461903

8 的平方根的结果将是近似值,而不是精确的数字。这就是为什么我们会使用 SymPy 来创建一个精确的数学对象,将近似值表示为符号形式。

首先,我们需要使用下面的代码安装 SymPy 包。

pip install sympy

那我们试试用 SymPy 包吧。

import sympysympy.sqrt(8)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

结果将在符号表示中。尽管 SymPy main 函数处理的是符号数学,但他们关于数学概念的文档总体来说还是相当不错的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者创建的 GIF

看看的 SymPy 文档,列表很广泛,并且提供了许多数学学习材料。让我们看看其中一个文档页面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:https://docs . sympy . org/latest/modules/polys/basics . html # basic-concepts

给我们数学基本概念的文档写得很好,任何初学者都能理解。尝试自己探索 Python 包。

3.明智的

Sage 是运行在 Python 编程语言之上的开源数学软件。从技术上讲,Sage 不是 Python 包,而是软件。如果你已经知道 Python 语言,用法是简单的,所以你在使用软件时不会感到太难。

Sage 本身支持代数、几何、数论、密码学、数值计算和相关领域的研究和教学。Sage 中包含了许多一般和特定的主题,包括:

当然,你可以随意访问教程来获取更多关于你想要学习的数学概念的信息。

要安装 Sage,你可以遵循文档中的步骤,但如果你不想在你的电脑上安装它,你可以使用 Sage web 界面CoCalc 界面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者创建的图像

Sage 教程文档也很丰富,您可以从中获得完整的学习资料。让我们举一个微积分教程中的例子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:https://www.sagemath.org/calctut/continuity.html

他们很好地解释了这个概念,甚至提供了用于学习的可执行代码。你可以下载笔记本作为你的学习材料。

结论

作为一名数据科学家,我们对机器学习并不陌生——然而,许多人并不熟悉 ML 的数学方面。为了学习更多的数学知识,我们可以使用 Python 编程语言来帮助我们学习。

以下是我最喜欢的 3 个帮助我们使用 Python 学习数学的包,它们是:

  1. 数字和数学模块
  2. 症状
  3. 贤者

希望有帮助!

访问我的 LinkedInTwitter

如果您没有订阅为中等会员,请考虑通过我的推荐订阅。

数据科学家学习统计学的 3 个顶级 Python 包

原文:https://towardsdatascience.com/3-top-python-packages-to-learn-statistic-for-data-scientist-d753b76e6099?source=collection_archive---------8-----------------------

使用这些软件包增强您的统计技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

露丝·齐默曼在 Unsplash 上拍摄的照片

如果你喜欢我的内容,并想获得更多关于数据或作为数据科学家的日常生活的深入知识,请考虑在这里订阅我的时事通讯。

众所周知,数据科学家比统计学家有更好的编程技能,比程序员有更好的统计知识。虽然学习编程技能不是一件容易的事,但有时新数据人员会忘记统计技能。

我知道统计学很难学,尤其是对于那些没有受过正规统计学教育的人来说。然而,在现代技术的帮助下,从零开始学习统计学是可能的。有了这些用编程语言开发的统计软件包,学习统计变得比以前更容易。

我知道如果你想学统计学,很多人会反对。你应该用 R 语言而不是 Python 但是,我想通过使用 Python 包提供一种替代方案,因为许多人都是通过学习 Python 语言开始他们的数据科学之旅的。

在本文中,我想向您展示学习统计的 3 个顶级 Python 包以及如何使用该包的示例——记住,用于学习。让我们开始吧!

1.Scipy。统计数据

SciPy (读作“叹息派”)是一个开源的包计算工具,用于在 Python 环境中执行科学方法。Scipy 本身也是许多数学、工程和数据研究中使用的数字算法和特定领域工具箱的集合。

Scipy 中可用的 API 之一是名为 Stats 的统计 API。根据 Scipy 主页显示,Scipy。Stats 是一个包含大量概率分布和不断增长的统计函数库的模块,特别适用于概率函数研究

在寒风中。Stats 模块中,有很多统计函数 API,你可以参考进一步学习。它们是:

为了更好地理解统计工作函数。统计还提供了一个你可以尝试的教程。该教程是全面的,许多新手可以遵循;你用一个笔记对统计术语有一点了解。让我们试着用 Scipy.Stats 学习一些统计学。

如果您使用的是 Anaconda 发行版中的 Python,那么环境中已经内置了 Scipy 包。如果您选择独立安装 Scipy,您需要安装依赖包。您可以通过 pip 执行下面这一行来实现。

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

让我们试着学习概率分布上最简单的概念,那就是正态分布。首先,我们将必要的包导入到环境中。

#Import statistical package from Scipy
from scipy import stats#Import the normal distribution class
from scipy.stats import norm

我们导入的范数类将成为一个概率函数,产生一个服从正态分布的随机变量。为了获得更多关于这个类的信息,我们可以试着打印文档。

print(stats.norm.__doc__)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者创建的图像

文档将为您提供理解对象、可用方法和类应用程序示例所需的所有基本信息。

范数类用于产生一个服从正态分布的随机变量。该软件包已经为您提供了学习它的所有解释,您只需要执行几行代码来生成概念示例。让我们用这个例子来制作一个正态分布图。

import matplotlib.pyplot as plt#Produce 1000 Random Variable following normal distribution
r = norm.rvs(size=1000)#Plotting the distribution
fig, ax = plt.subplots(1, 1)
ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

有这么多你可以探索这个包。我建议你花点时间研究一下统计教程来理解这个包,并且理解这个定理。

2.平古因

Pingouin 是一个开源的统计软件包,主要用于统计。这个包给了你许多类和函数来学习基本的统计学和假设检验。据开发者称,Pingouin 是为那些想要简单而详尽的统计功能的用户设计的。

Pingouin 简单但详尽,因为这个包为您提供了关于数据的更多解释。在科学频道。Stats,它们只返回 T 值和 p 值,有时我们需要更多关于数据的解释。

在 Pingouin 包中,计算是在上面几个步骤中进行的。例如,除了仅返回 T 值和 p 值之外,来自 Pingouin 的 T 测试还返回测试的自由度、效应大小(Cohen 的 d)、均值差异的 95%置信区间、统计功效和贝叶斯因子(BF10)。

目前,Pingouin 包提供了一个可以用于统计测试的 API 函数。它们是:

Pingouin APIs 文档本身非常适合学习。我已经研究了这个文件,发现它真的很有见地。例如,我们来探讨一下 ANOVA 函数。首先,您需要安装 Pingouin 包。

pip install pingouin

安装应该只需要几秒钟。之后,我们将使用一个 mpg 数据集示例,用 Pingouin 进行 ANOVA 统计假设测试。

#Import necessary package
import seaborn as sns
import pingouin as pgmpg = sns.load_dataset('mpg')
pg.anova(data = mpg, dv = 'mpg', between = 'origin')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

示例统计测试为您提供了您期望从测试中获得的所有必要分数。对于结果的进一步解释,你应该在这里查阅 API 文档

Pingouin 指南也为你提供了一个学习指南来使用一些测试包函数。其中一个是单向方差分析测试。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方差分析测试指南(来源:https://pingouin-stats.org/guidelines.html#anova

如果您想了解关于 Pingouin 包的更多信息,我已经写了一篇关于该包的更深入的解释。

3.统计模型

Statsmodels 是一个统计模型 python 包,它提供了许多类和函数来创建统计估计。Statsmodel 包曾经是 Scipy 模块的一部分,但是目前 statsmodel 包是单独开发的。

Scipy 和。Stats 和 statsmodel?这个 Scipy。Stats 模块侧重于概率函数和分布等统计定理,而 statsmodel 包侧重于基于数据的 统计估计

Statsmodel 提供了统计建模中经常使用的 API。Statsmodel 包将 API 分成 3 个主要模型:

  • 其中提供了许多横截面模型和方法,包括回归和 GLM。
  • [statsmodels.tsa.api](https://www.statsmodels.org/stable/api.html#statsmodels-tsa-api)提供时间序列模型和方法。
  • [statsmodels.formula.api](https://www.statsmodels.org/stable/api.html#statsmodels-formula-api) 它提供了一个使用公式字符串和数据框架指定模型的接口——简单地说,您可以创建自己的模型。

对于任何想要更深入地理解统计建模的人来说,Statsmodel 是一个很好的入门包用户指南深入解释了理解统计估计所需的概念。例如,摘自 Statsmodel 用户指南的内生和外生术语在以下段落中进行了解释:

这些术语的一些非正式定义如下

内生:体制内因素导致

外源性:系统外因素引起

*内生变量指经济/计量经济学模型中的变量,这些变量由该模型解释或预测。*http://stats.oecd.org/glossary/detail.asp?ID=794

外生变量指出现在经济/计量经济学模型中,但该模型无法解释的变量(即,它们被认为是模型给定的)。http://stats.oecd.org/glossary/detail.asp?ID=890T2

让我们尝试使用 Statsmodel 软件包学习 OLS(普通最小二乘)建模。如果您没有使用 Anaconda 发行版中的 Python 或者没有安装 Statsmodel 包,您可以使用下面的代码行来完成。

pip install statsmodels

继续这些步骤,让我们通过导入包和数据集来开发模型。

#Importing the necessary package
from sklearn.datasets import load_boston
import statsmodels.api as sm
from statsmodels.api import OLS#import the data
boston = load_boston()
data = pd.DataFrame(data = boston['data'], columns = boston['feature_names'])
target = pd.Series(boston['target'])#Develop the model
sm_lm = OLS(target, sm.add_constant(data))
result = sm_lm.fit()
result.summary()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自作者

您使用 Statsmodel 软件包开发的 OLS 模型将具有您期望的模型估计的所有必要结果。关于结果的进一步解释,你可以访问主页上的 OLS 的例子

结论

作为一名数据科学家,你应该具备足够的统计学知识。问题是,很多数据爱好者只专注于学习编程语言,尤其是 Python。为了帮助统计研究,我想介绍我学习统计的前 3 个 Python 包。它们是:

  1. Scipy。统计数据
  2. 平古因
  3. 统计模型

访问我的LinkedInTwitter

如果您没有订阅为中等会员,请考虑通过我的推荐订阅。

内容概要:本文围绕“基于纳什博弈的多微网主体电热双层共享策略”展开研究,通过构建电热联合系统的双层优化模型,结合纳什博弈理论实现多个微网主体间的能量共享与利益分配。上层采用博弈论优化各微网的能源交互策略,下层考虑电、热负荷的耦合关系与设备运行约束,实现系统整体经济性与能效的提升。研究通过Matlab代码实现仿真验证,复现SCI论文中的核心算法与建模思路,涵盖YALMIP工具包调用、优化模型搭建与求解流程,具有较强的可操作性与科研参考价值。; 适合人群:电力系统、能源互联网、微电网优化等领域的研究生、科研人【SCI复现】基于纳什博弈的多微网主体电热双层共享策略研究(Matlab代码实现)员及具备一定Matlab编程基础的工程技术人员;熟悉优化建模与博弈论者更佳。; 使用场景及目标:①学习并复现SCI级多微网协同优化论文的核心方法;②掌握基于纳什博弈的双层优化建模技巧;③深入理解电热综合能源系统的协同调度机制与数学建模过程;④借助提供的代码资源开展二次开发或对比实验。; 阅读建议:建议结合文档中提供的网盘资源(含YALMIP-develop.zip等工具包与完整代码)同步运行与调试,按照目录顺序逐步学习,重点关注模型构建逻辑与Matlab实现细节,同时可延伸至其他优化问题如储能配置、需求响应等方向的应用拓展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值