面向数据分析师的机器学习——第 1 部分
面向数据分析师的机器学习——第 1 部分
成为一名熟练的数据分析师!
本系列文章适用于那些希望在职业生涯中成为数据科学家的数据分析师/工程师。
传统上,数据分析师不应该了解机器学习 (ML)。但是,ML 的可访问性变得比以往任何时候都更容易,您会惊讶地发现,训练 ML 模型比您目前每天所做的事情(数据收集、数据清理、数据转换、指标)要容易得多生成和数据可视化。
此外,了解机器学习的基本概念有助于您成为更好的数据分析师。
Traditional Data Analyst (Image credit: Alteryx)
Up-skilled data analyst (aka data analyst turned data scientist) (Image credit: Alteryx)
我将引导您完成一系列文章,以展示 ML 的基础知识和 Python 的动手示例 scikit 学习包 .
为什么是机器学习?
您可能会比以往更多地听到机器学习、深度学习和人工智能。
毫不奇怪,这就是谷歌趋势所显示的:
The search popularity of Machine Learning and Deep Learning
机器学习不是幻想。事实上,它已经存在了几十年。深度学习的最新进展使其呈指数级增长。
您的 Google 邮件收件箱使用机器学习模型来过滤垃圾邮件并只向您显示好邮件。它被称为 垃圾邮件过滤器 .
您的智能手机使用 AI 来检测您拍摄的照片中的人脸。
您的银行使用机器学习来识别欺诈交易。
机器学习到底是什么?
ML 是计算机编程的科学(和艺术),以便它们可以从数据中学习。 — 奥雷连·杰龙
正是这一研究领域使计算机能够在没有明确编程的情况下进行学习。 — 阿瑟·塞缪尔
它指的是自动检测数据中有意义的模式。 — Sahlev-Shartz 和 Ben-David
垃圾邮件过滤器是一种 ML 模型,可以学习从正常的好电子邮件中标记垃圾邮件。
ML 模型如何工作?
让我们以垃圾邮件过滤器为例。
您首先收集垃圾邮件和常规电子邮件的样本。这被称为我们的 训练集 .作为数据分析师,您已经在执行这项任务来帮助数据科学家。
然后你确定 数值特征 从这个训练集中(例如电子邮件的长度、has_attachments、电子邮件中的 URL 数量等),因为机器学习算法只理解数字。您通过获得领域知识来掌握这一步。在这种情况下,关于网络钓鱼和常规电子邮件的领域知识。
然后,您将这些功能提供给 机器学习算法 对垃圾邮件和常规电子邮件进行分类。
我们可以使用许多众所周知的 ML 算法。您不必编写自己的 ML 算法——这是 ML 研究人员的工作。随着我们在本系列中的进展,我们将学习其中的许多内容。敬请关注!
Typical machine learning pipeline (simplified)
ML 算法从这些样本中学习并为我们提供 训练模型 .
我们评估模型以查看它是否符合我们的评估标准。例如,一个标准可以是模型的准确性。换句话说,该模型在将垃圾邮件与常规电子邮件分开方面有多好。
我们通过另一组垃圾邮件和常规电子邮件进行评估。这组被称为 测试集 . (注意:测试集应该不同于训练集。)
如果经过训练的模型对 10 个测试样本中的 1 个进行了错误分类,我们就说该模型具有 90% 的准确率。如果我们的目标是达到 95% 的准确率,那么我们的模型不满足我们的评估标准。
在这种情况下,我们回到绘图板来了解为什么该模型每 10 封电子邮件中就有 1 封错误分类。根据我们的发现,我们要么改进我们的训练数据集、特征,要么调整 ML 算法以提高准确性。我们将在以后的文章中学习这种交易。
通过上述更改,我们现在只有 20 封电子邮件中有 1 封被分类。换句话说,我们的模型有 95% 的准确率——这是我们的目标。欢呼!现在我们可以将这个经过训练的垃圾邮件过滤器与电子邮件解决方案一起部署,以便它可以过滤掉垃圾邮件。
只是为了让您了解我们将使用 scikit-learn ML 库在 Python 中实现的内容,下面我展示了一个非常基本的代码片段,用于训练机器学习模型以对来自常规电子邮件的垃圾邮件进行分类。
这个例子绝不是全面的。当我们实现真实世界的 ML 模型时,我们还采取了其他几个步骤。但这应该让您了解该过程的样子。
Basic flow of training a ML model: 1. load data, 2. split to train and test, 3. train a model, 4. evaluate the model (and iterate until you get the desired results — which not shown above)
不用担心,如果您不理解上述代码的开头或结尾。你不应该 😃 我将在以后的帖子中指导你创建 ML 模型。
我们可以使用编程语言来完成 ML 的工作吗?
例如,您可能想知道,如果我们能够识别垃圾邮件与普通电子邮件的不同之处,我们可以编写规则将它们分开。如果是这样,我们为什么需要机器学习?
虽然编写规则可能适用于某些情况,但您最终可能会编写许多复杂的规则来完成这项工作——这是一项乏味且容易出错的工作。另一方面,ML 将 学 根据您输入的功能自动为您制定规则。
攻击者在提供垃圾邮件方面变得越来越聪明。例如,如果您有“如果主题全部大写,则为垃圾邮件”的规则,攻击者将使用混合大小写来避免触发此规则。您将不得不不断更新您的规则。相比之下,ML 可以自动处理更改。
更重要的是,可以使用 ML 模型来学习“规则”。经过训练的 ML 模型向您展示了哪些特征对于区分这两种类型很重要。
此外,在许多情况下,根本不可能编写自己的规则。以语音到文本或图像的识别为例。
我希望我能说服你,与传统的编程相比,ML 算法可以“学习”,在传统编程中,你可以向计算机提供“如何”完成任务。
现在让我们深入了解 ML 中的一些关键概念。
监督与无监督学习
A simplified view of different machine learning algorithms
根据他们在训练期间获得的监督类型,ML 算法有两个主要分支:
- 监督学习
- 无监督学习
(注意:还有其他分支,例如半监督学习、自我监督学习等。我们将在本系列的后面部分介绍这些高级主题。)
监督学习
在监督学习中,你喂 标记的训练样本 进入 ML 算法。我们上面描述的垃圾邮件过滤系统是一个有监督的机器学习任务,因为我们将标记的垃圾邮件和常规电子邮件输入到机器学习算法中。
有两个监督学习任务:
- 分类
- 回归
分类
在分类中,顾名思义,我们的目标是将样本分为两个或多个 班级 (例如垃圾邮件和常规邮件)。上面描述的垃圾邮件过滤任务实际上是一个分类任务。
Spam filtering. Supervised Learning Classification Task
我们将在本系列中学习以下监督分类算法:
- 分类树
- 随机森林
- 逻辑回归
- 支持向量机
- XGBoost
- K-最近邻
- 朴素贝叶斯
- 全连接神经网络
回归
在回归中,我们的目标是预测一个 目标数值 而不是一个班级。例如,基于一组特征(品牌、型号、里程、事故次数),预测汽车的价格。
Predicting a happiness score from 0 to 10 based on the income. Supervised regression task.
在我们用一组标记的输入样本(图中的点)训练上述回归模型后,我们得到一个训练好的模型(图中的线)。然后,我们可以使用经过训练的模型来预测未知样本的幸福度得分。例如,收入 70k 的个人的幸福指数是多少?大约是5.2。
我们将在本系列中学习以下监督回归算法:
- 线性回归
- 套索回归
- 岭回归
- 分类算法的对应物(例如随机森林回归)
无监督学习
现在我们有了监督学习的概念,我们来看看无监督学习。
在无监督学习中,系统在没有老师的情况下学习!
假设我们有一组网站,我们想将它们分成有意义的组。
您识别这些网站的特征(例如写作风格、用户交互的存在、网站的排名等),然后将它们传递给无监督算法。在以下示例中,它标识了三个不同的集群。 (确定的示例组:新闻文章、博客和公司网站)
Unsupervised clustering of websites into meaningful groups.
请注意,我们没有像垃圾邮件过滤器示例那样将任何网站标记为新闻文章、博客或公司网站。
在本系列中,我们将探索四种主要类型的无监督学习算法。
- 聚类
- 异常检测
- 降维
- 关联规则学习
总之,我们在这篇文章中查看了以下主题:
- 机器学习到底意味着什么(即什么是机器学习?)
- ML 与编码有何不同
- 训练机器学习模型所涉及的步骤
- 监督与无监督学习
- 监督学习中的分类与回归算法
我希望你喜欢阅读这篇文章并学到新的东西。
如果您有任何问题或意见,请随时与我联系。
我一直在努力改善与更广泛受众的知识共享。非常感谢这方面的任何反馈。
请与其他想要在数据科学领域发展事业的人分享。
请继续关注第 2 部分。
参考 :
- 使用 Scikit-Learn、Keras 和 TensorFlow 进行机器学习
- 理解机器学习:从理论到算法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明