机器学习简介

Tavish Aggarwal.

 

M

achine学习在行业中真正嗡嗡作响。所以它有适当的时间来熟悉它。我将开始与基础知识和即将在我的帖子中,我将要推进机器学习的主题。兴奋的!让我们开始吧。

 

机器学习

机器学习是什么?  

如果我不得不在一个句子中引用它,我会说'机器学习是一种方法可以找到数据中的模式来预测未来。

这不是机器学习的唯一定义。您可以根据您尝试实现的目标找到更多的定义。

机器学习过程

假设我们有一系列具有一些模式的数据,人类大脑对身份不可能。

  1. 我们将此数据传递给机器学习算法,这些算法研究模式并为我们提供模型。
  2. 所提供的模型可以由应用程序使用,以便为模型提供新数据并检查提供的数据中是否存在模式。

现在问题是我们始终拥有有一些模式的数据吗?

答案是不。我们是一个数据科学家将提供原始数据。使用工具执行数据转换/操作将是我们的作用和责任。然后,此处理的数据(或培训数据)可以用作机器学习算法的输入。

类型的类型   机器 Learning

  1. 监督学习: 这意味着我们想要预测的价值或结果在培训数据中。和我们想要学习的数据中的值被称为目标值。
  2. 无人监督的学习:  这意味着我们想要预测的价值或结果在训练数据中不存在。

分类机器学习问题

  1. 回归:  用于监督数据。在这里,我们尝试从我们的培训数据中找出一系列曲线。
  2. 分类: 用于监督数据。我们将数据拆分为课程。当新数据进入时,我们尝试弄清楚哪些数据属于哪个类。
  3. 聚类: 用于无监督数据。在这里,我们将数据分类为集群。

机器学习算法的风格

  1. 决策树
  2. 神经网络:大脑作品的方式
  3. 贝叶斯
  4. k均值

我们将在即将到来的帖子中谈论这些风格。在此时,我们应该只知道这些样式存在。

机器学习工作流程

  1. 询问合适的问题
  2. 准备数据
  3. 选择算法
  4. 培训模型
  5. 测试模型

让我们详细看看工作流程。

询问合适的问题

知道您对数据的了解是非常重要的。以及您是否可以从您拥有的数据中获取所需的结果。

如果您询问的问题不正确,那么在您的模型准备时,您将无法获得所需的结果。因此,要求正确的问题对于预测数据非常重要。

准备数据

这是整个过程中最重要的步骤。数据科学家在准备数据时花费大部分时间。在大多数情况下,在准备数据上花费的时间超过整个过程的50%。

清洁数据的主要步骤包括装载,探索,清洁,耐用和模制数据。

让我更多地解释抵御抵御选项的更多信息。我们拥有的数据中的大多数时间都具有空值或缺少值。所以如何处理这种情况,因为它可能导致偏见结果。有各种各样的选择:

  1. 忽略它
  2. 删除具有缺失数据的行
  3. 替换值或赋予赋予

很容易忽略或删除行。但是,如果耗尽了1000行400行缺少数据?删除400行是否可以是可以的?肯定是答案是没有。

我们必须在这种情况下更换价值。更换缺失值的一种方法是均值或媒介。

有兴趣了解我们如何从各种文件源导入数据:  使用Python导入数据 。要了解清洁数据访问: 清洁数据 .

选择算法

选择正确的算法对于获得我们正在寻找的所需结果至关重要。我们将我们在上一步中准备的训练数据传递给算法,并且算法计算数据并返回模型。然后到模型,我们通过我们想要预测的真实数据。 

已经创建了超过50个机器学习算法。选择正确的算法是具有挑战性的。因此,根据因素选择算法:

  1. 我们试图解决的问题类型。
  2. 它还取决于数据科学家选择他选择算法的因素。
  3. 最重要的是体验在选择所选算法的因素中起着重要作用。

大多数数据科学家遵循以选择正确的算法的一般技术是消除的。我们可以基于以下方式消除并更接近正确的算法:

  1. 监督学习或无人监督的学习
  2. 回归或分类或聚类
  3. 最初,消除集合算法是安全的。这些是具有许多子算法的算法。
  4. 我们还可以消除基于基本或前进的算法。增强的算法是基本算法的改进。作为初学者,我们可以从基本算法开始。

在我即将到来的帖子中,我将详细解释一些最常用的算法。

培训模型

培训我们的模型是一个重要的一步。通常,随着我们的数据更改随着时间的推移,我们需要重新制作模型以预测正确的结果。

要培训模型,我们通常将编写的数据分成:

  1. 培训数据
  2. 测试数据

培训数据是用于创建模型的数据。测试数据是我们已经知道我们正在寻找的结果的数据。因此,它通过培训数据创建的模型来检查模型的准确性。

大多数70%的准备数据用作训练数据,其余30%用作测试数据。

我们用于训练我们的模型的列被称为功能。提高模型性能的一种方法是使用最小的功能来训练模型。如果您沿途,您会记得我已经共享了用于机器学习的一些Python包。请访问 关联 .

此外,Scikit-Searn-Searn库用于:

  1. 将数据分成培训和测试数据
  2. 模型培训  
  3. 模型调整 - 提高模型性能

您将在未来的帖子中阅读更多有关Scikit-Granse Package的信息。

测试模型

一旦我们拥有我们的模型就准备了测试模型的时间。请记住,我们有30%的测试数据来自准备好的数据?通过测试数据,我们将测试我们的模型并查看模型的准确性。 

测试数据和培训数据的准确性应该是关闭的。然后我们可以说我们的测试成功。但每次都不是这样。在测试模型时,我们面临的一些挑战:

过度装备数据

这意味着我们使用的算法非常了解培训数据,并根据培训数据开始培训本身。结果是,与训练数据相比,测试数据的准确性逐渐降低。

我们怎样才能修复过度装备?

我们可以通过帮助来控制它 正则化QuandParameter.

笔记:  此参数具有基于我们使用的算法的许多名称。因此,建议以更好的方式读取文档以控制过度拟合。 

另一种控制过度装备的方法是使用交叉验证。

交叉验证是将训练数据分成k折叠的技术,并且每次用作测试数据并将其余折叠用作训练数据。

一些算法具有交叉验证版本,通常表示<Algorithm name>CV.

笔记: 正规化超参数和交叉验证都可以同时使用以控制过度装备。

现在我们很清楚的是机器学习工作流程的理论部分。在Python代码的帮助下,我将演示和解释工作流程,该示例将生成模型。我们可以使用真实数据测试模型。

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal. 是一个数据科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。