机器学习终极指南

塔瓦什·阿格瓦尔

H

您是否想过我们或公司每天产生多少数据!这个数额真是令人难以置信。物联网,应用程序等不同来源正在生成大量数据。

公司和企业正朝着对机器学习等技术进行投资,以分析和预测未来(使用历史数据),这有助于改善其业务流程。

什么!我们可以预测未来吗?是的是的!你没听错。我们的未来全都与机器人技术和机器学习有关?我敢肯定你们大多数人都听说过科幻电影。现在,我们最终将实现我们在电影中听到或看到的大多数科学。我们的日常活动变得越来越自动化。

机器学习确实正在改变世界。在机器学习时代,我们什至无法想到的结果现在是可能的。例如:

  1. 影像分类
  2. 手势识别
  3. 人脸检测或识别
  4. 语音到文本翻译
  5. 聊天机器人
  6. 创建可以预测未来的模型,并且列表无穷无尽。

机器学习/深度学习是未来,值得一读。

对于机器学习来说,有一些先决条件是应该知道的。以下是进入该领域之前需要了解的先决条件列表:

  1. 蟒蛇或R编程语言
  2. 用于机器学习的Python软件包
  3. 线性代数
  4. 概率统计
  5. 结石

不用担心这篇文章为您涵盖了所有内容。在这里,您将从动手训练的先决条件开始,然后,您将解决一个真正的问题。

让我们开始吧。

蟒蛇编程语言

第一步是从核心学习python。您还需要熟悉python必须提供的用于解决机器学习相关问题的软件包。

蟒蛇 for Data Science-第1部分

第一步是了解python作为语言的基础知识。在文中, 蟒蛇 for Data Science-第1部分 涵盖以下主题:

  1. 在系统上下载并安装Python
  2. 执行Python脚本
  3. 变量和类型(整数,浮点数,字符串,布尔值,无,列表,字典)
    • 类型提示
    • 转义序列
    • 列表切片
    • 遍历列表
  4. 如果/其他块
  5. 真实价值观
  6. 异常处理
  7. 其他数据类型(复杂,字节和字节数组,元组,集合和Frozenset)

我建议动手实践上述概念以充分利用信息。

蟒蛇 for Data Science-第2部分

现在,是时候继续使用Python并了解Python中使用的其他一些概念了。在文中 蟒蛇 for Data Science-第2部分 涵盖以下主题:

  1. 在Python中创建函数
  2. 了解内置功能
  3. 关键字参数
  4. 接受输入
  5. 嵌套函数
  6. 蟒蛇中的文件
  7. Lambda函数
  8. 蟒蛇中的面向对象编程
    • 建立课程
    • 建设者
    • 全局变量
    • 遗产
    • 超级关键字
  9. 蟒蛇中的模块
  10. 机器学习中的Python库简介
  11. pip-Python中使用的软件包管理器

掌握函数/ lambda函数对于解决复杂的数据集确实很有用。

蟒蛇 for Data Science-第3部分

这是有关Python作为语言的最后一篇文章。到目前为止,您已经掌握了Python基本概念。现在发布 蟒蛇 for Data Science-第3部分 我们将熟悉Python的高级概念,这些高级概念在解决实时数据集时将对我们有用。以下是涉及的主题:

  1. 使用numpy的随机生成器
  2. 深度功能
  3. 错误处理
  4. 迭代器
  5. zip关键字
  6. 清单理解
  7. 字典理解
  8. 发电机
  9. 收益关键字

那很棒。现在您已经了解Python,并且很好地使用Python作为语言来执行任务。

用于机器学习的Python软件包

主要有4个Python软件包用于解决与机器学习有关的问题。这些是:

  1. 脾气暴躁的
  2. Matplotlib
  3. 大熊猫
  4. scikit学习

让我们查看并了解有关软件包的更多信息。

数据科学的Python软件包

在文中 数据科学的Python软件包我已经解释了前三个软件包,即Numpy,Matplotlib和Pandas。涵盖的主题如下:

  1. 使用pip安装软件包
  2. numpy简介
    • 使用numpy的基本统计
    • 使用numpy的逻辑运算符
    • 遍历numpy数组
  3. Matplotlib简介
    • 创建折线图
    • 创建散点图
    • 创建直方图
  4. 熊猫介绍
    • 熊猫的逻辑运算
    • 遍历熊猫数据帧

这将为您介绍在数据科学中有用的软件包。但是,我们需要深入研究并完全理解上述软件包。

我很快将使用有关线性代数,概率与统计和微积分的文章来更新此空间。

提前 熊猫的概念

在这里,您将深入了解熊猫,并了解熊猫的高级概念。此外,您将利用到目前为止的知识来对数据库中提供的数据集进行动手训练。 熊猫的先进理念。涵盖的主题如下:

  1. 从列表创建数据集
  2. 使用熊猫的绘图功能
    • 创建子图
    • 箱形图,散点图,直方图
    • 了解PDF和CDF
  3. 熊猫与时间序列
    • 带时间序列列的图表
  4. 重新索引熊猫索引
    • 使用向前填充和向后填充方法重新索引
    • 层次索引
  5. 数据重采样
    • 下采样和上采样
  6. 链接和过滤
  7. 数据分组
  8. 转换数据
  9. 汇总数据集
    • 基于多种度量的汇总
    • 基于字典对象的聚合

可视化数据集

训练算法以进行预测是一个漫长的过程。在训练算法之前,我们需要执行分析并理解数据集。 

“一张图片胜过千言万语。”

创建可视化效果是理解数据并将其向业务部门解释的最佳方法。我们已经将Matplotlib视为实现该目标的工具。还有一些其他工具,例如:

SQLAlchemy-适用于Python的ORM

有时,我们还需要处理存储在SQL数据库(如Postgres,SQLite等)中的结构化数据。SQLAlchemy是一种ORM(对象关系模型),可简化我们的任务。在文中, SQLAlchemy-Pytho的ORMn涵盖以下主题:

  1. 连接到数据库
  2. 建立表格
  3. 在表格中插入数据
    1. 在表格中插入一行
    2. 在表格中插入多行
  4. 从表中选择数据
    1. 使用where子句过滤数据
    2. 使用in子句过滤数据
    3. 使用和/或/不是运算符过滤数据
    4. 订货数据
      1. 根据单列排序数据
      2. 数据的反向排序
      3. 基于多列排序数据
      4. 汇总和分组数据
        1. 汇总数据
        2. 分组数据
      5. 重命名列标签
      6. 使用case和cast语句
      7. 执行算术运算
  5. 联接表
  6. 更新操作
  7. 从ResultSet中创建Pandas Dataframe
  8. 删除操作
    1. 根据条件删除数据
    2. 删除所有数据
    3. 从数据库中删除表

大量的学习!现在您知道了Python及其用于解决机器学习问题的软件包。现在该前进了。

使用Python导入数据

在对数据执行任何操作之前,重要的是加载数据。在后 使用Python导入数据 解释了用于从各种格式的文件导入数据的方式和软件包:

  1. 平面文件-.txt,.csv文件
    • 使用numpy数组
    • 使用熊猫
  2. 腌制文件
  3. Excel文件
  4. SAS文件
  5. STATA文件
  6. HDF5文件
  7. 垫文件
  8. 关系型数据库
  9. 从网络读取数据
    • 请求和urlib程序包
    • 美丽汤
    • 将API响应读取为JSON

有时,我们有来自不同来源的数据,或者我们没有一个统一的数据。因此,我们需要执行合并数据集的操作,以便我们可以处理和训练算法。在后 熊猫:合并数据集,说明了执行此类操作的方法。 

将数据导入数据集中后,需要根据机器学习过程来清理数据。 

机器学习导论

恭喜您涵盖了开始学习机器学习所需的所有先决条件。在这里 机器学习导论 涵盖以下列出的主题:

  1. 什么是机器学习?
  2. 机器学习的过程
  3. 机器学习的类型
  4. 分类机器学习问题
  5. 机器学习算法的风格
  6. 机器学习工作流程
    • 问正确的问题
    • 准备资料
    • 选择算法
    • 训练模型
    • 测试模型
  7. 数据过拟合

希望您现在对机器学习有所了解,并拥有解决机器学习问题的流程。下一步是进行动手训练以导入数据,并准备好回答我们从数据集中寻找的问题。

机器学习算法

我们已经了解了机器学习中可能存在的不同类型的问题。让我们继续前进,看看用于解决问题的不同算法。

监督学习

监督学习是指对模型进行标记的数据集训练。带标签的数据集是既具有输入参数又具有输出参数的数据集。有多种可用于监督学习的算法:

一旦我们对算法进行了训练,对在业务中使用模型之前测量模型的准确性就很重要。帖子 使用python的模型的准确性 将为您提供有关我们可以用来衡量模型性能的不同技术的想法。

如果我们的模型表现不佳怎么办?好!!是的...有一句话:

“所有模型都是错误的,但是某些模型是有用的。”

基于数据可以使用多种技术。帖子, 使用Python改进监督学习模型 将为您提供一些我们可以遵循的技术之上的想法。

请记住,没有遵循一套规则来改善模型性能。帖子仅讨论了一些有助于改善模型性能的技术。根据数据集及其行为,您可以执行许多其他步骤。

了解了回归算法的工作原理之后,让我们改变齿轮,了解算法背后的数学原理。

在这里,我们了解了线性,逻辑,套索和岭回归,支持向量机,决策树和随机森林等各种算法背后的直觉和数学知识。

你真的走了很长一段路!您确实为完成复杂的任务(如训练神经网络或计算机视觉模型)奠定了坚实的基础。接下来,让我们谈谈无监督算法。

无监督学习

无监督学习是一种机器学习算法,用于从没有标签观察值的输入数据组成的数据集中得出推论。有多种可用于无监督学习的算法:

降维技术

到目前为止,我们对算法及其工作原理具有直觉和理解。

考虑以下场景,其中数据集中包含约1000或2000个要素或更多,并且要求您从中构建模型。您如何看待它?

您还记得模型的局限性,如训练任务所需的相关功能和计算资源吗?

在文中 蟒蛇中的降维技术,您将了解如何克服具有高维度的数据集。

自然语言处理

到目前为止,我们已经介绍了构建数据的技术。但是在现实世界中,公司也要处理非结构化数据。文本是非结构化数据的一种类型。

公司正在处理的许多文本可能是以对产品或服务的评论的形式,或者他们想根据主题对文章或新闻进行分组等。

为了处理文本数据,我们在自然语言处理(NLP)的一部分中涵盖了不同的技术。帖子, 使用Python进行自然语言处理 讨论了从非结构化数据(如文本)中获取含义所涉及的介绍和管道。

希望您有一个很棒的学习经历。有更多的内容需要讨论,我将在NLP,深度学习,计算机视觉,强化学习等方面发表新文章来更新这个领域。

作者信息

塔瓦什·阿格瓦尔

网站: http://tavishaggarwal.com

塔瓦什·阿格瓦尔是一名数据科学家 在海得拉巴工作,在解决电子商务,金融,医疗保健等不同领域的实际业务问题方面拥有丰富的经验。 他对技术充满热情,并且热爱团队合作。