教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

 

在最后一篇文章中,我们将更深入地探讨无监督学习,简要讨论与机器学习有关的其他领域,并以一些实际的机器学习应用程序示例结束本系列。

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

无监督学习

回想一下,无监督学习涉及从数据中学习,但没有预测的目的。这是因为没有给数据提供目标响应变量(标签),或者选择不指定响应。它也可以用作监督学习的预处理步骤。

在无人监督的情况下,目标是发现数据中的模式,深刻的见解,理解变异,发现未知的子组(在变量或观察值之间),等等。与监督学习相比,无监督学习可能是非常主观的。

无监督学习中最常用的两种技术是主成分分析(PCA)和聚类。PCA是一种学习所谓的潜在变量模型的方法,并且是盲信号分离技术的特定版本。其他值得注意的潜在变量建模方法包括期望最大化算法(EM)和矩量法。

PCA

PCA通过找到具有最大方差且互不相关的变量的线性组合序列来生成数据集的低维表示。描述PCA的另一种方法是将可能相关的变量转换为一组线性不相关的变量,这些变量称为主成分。

每个组件都由数学上确定和排序,并根据每个变量可以从数据中解释的可变性或方差量来排序。因此,第一个主成分占最大的方差,第二个主成分占第二大的依此类推。

每个组件也都与所有其他组件正交,这只是一种说法,它们相互垂直。想一想二维图中的X和Y轴。两个轴相互垂直,因此是正交的。虽然不容易可视化,但可以将许多主要组件视为彼此垂直的许多轴。

尽管上面对主成分分析的许多描述可能有点技术上的问题,但从较高的角度来看,它实际上是一个相对简单的概念。考虑到可以以任意数量的维度拥有一堆数据,尽管您可能希望描绘出两个或三个维度以便于理解。

每个主成分都可以视为正在构建的椭圆轴(认为是云)以包含数据(又称拟合数据),就像捕获蝴蝶一样。前几个主要成分应该能够解释(捕获)大多数数据,而添加更多主要成分最终会导致收益递减。

PCA的诀窍之一就是知道需要多少组件来汇总数据,这涉及估算何时由给定数量的组件解释大多数方差。另一个考虑因素是PCA对特征缩放很敏感,这在本系列的前面已经讨论过。

PCA还用于探索性数据分析和数据可视化。探索性数据分析涉及通过特定类型的分析(包括数据可视化)来汇总数据集,并且通常是分析的第一步,从而导致了预测建模,数据挖掘等。

PCA和类似技术的进一步讨论不在本系列的讨论范围之内,但是鼓励读者参考外部资源以获取更多信息。

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

聚类

聚类是指用于在数据集中查找聚类(子组)的一组技术和算法,并且涉及将数据划分为相似观察值的组。“相似观察”的概念有点相对和主观,但实际上意味着给定组中的数据点彼此之间的相似性高于与不同组中的数据点的相似性。

观测值之间的相似性是特定领域的问题,必须相应解决。在本系列的第一篇文章中,给出了一个涉及NFL的芝加哥熊队(go Bears!)的聚类示例。

集群并不是仅局限于机器学习的技术。它是数据挖掘,统计分析,模式识别,图像分析等中广泛使用的技术。考虑到群集的主观和无监督性质,通常,数据预处理,模型/算法选择和模型调整是用于获得期望结果和/或问题解决方案的最佳工具。

聚类算法和模型有很多类型,它们都使用自己的技术将数据划分为一定数量的相似数据组。由于这些方法的显着差异,结果可能会受到很大的影响,因此必须在某种程度上理解这些不同的算法,才能选择最适用的方法。

K均值和层次聚类是两种广泛使用的无监督聚类技术。区别在于,对于k均值,使用预定数量的聚类(k)划分观察值,而分层聚类中的聚类数量事先未知。

分层聚类有助于解决在k均值情况下必须知道或预先确定k的潜在缺点。有两种主要类型的层次结构聚类,包括自下而上和聚集。

这是维基百科的可视化效果,它对k等于3的一组数据运行k-means聚类算法的结果。请注意这些线,它们代表数据组之间的边界。

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习 由Chire [CC BY-SA 3.0(https://creativecommons.org/licenses/by-sa/3.0)],来自Wikimedia Commons

群集有两种类型,它们定义了数据的分组或包含程度。第一个称为硬群集,其中每个数据点仅属于一个群集,而不属于其他群集。另一方面,软聚类或模糊聚类是指数据点在一定程度上属于一个聚类,或者被分配了属于某个聚类的可能性(概率)的情况。

方法比较和一般注意事项

PCA和集群之间有什么区别?如前所述,PCA寻找观测值的低维表示形式,以解释方差的很大一部分,而聚类则寻找观测值中的同类子组。

需要注意的有趣一点是,在没有目标响应的情况下,无法像在受监督的情况下那样评估解决方案的性能或错误。换句话说,没有客观的方法来确定您是否找到了解决方案。这是有监督的学习方法与无监督的学习方法之间的重要区别。

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

预测分析,人工智能和数据挖掘,我的天哪!

机器学习通常与诸如预测分析,人工智能,数据挖掘等术语互换。虽然机器学习当然与这些领域有关,但仍存在一些显着差异。

预测分析是一般称为分析的更广泛领域的子类别。Analytics(分析)通常分为三个子类别:描述性,预测性和规范性。

描述性分析涉及应用于理解和描述数据的分析。预测分析处理建模,并根据数据观察进行预测或分配分类。规范分析涉及制定数据驱动的,可行的建议或决策。

人工智能(AI)是一个非常令人兴奋的领域,由于所涉及的学习算法具有自动化性质,因此机器学习本质上是AI的一个子领域。根据Wikipedia的说法,人工智能已被定义为制造智能机器的科学和工程,也被定义为智能代理的研究和设计,其中智能代理是一种感知环境并采取行动以最大化其成功机会的系统。

由于斯坦福大学的相关在线课程及其相关书籍:《统计学习入门》和《统计学习的要素》,统计学习正变得越来越普及。

机器学习是人工智能的一个子领域,统计学习是统计的一个子领域。这两个领域非常相似,在许多方面都有重叠,而且随着时间的流逝,这种区别变得越来越不清楚。它们的不同之处在于机器学习更加强调预测准确性和大规模应用,而统计学习则强调模型及其相关的可解释性,准确性和不确定性。

最后,数据挖掘是一个经常与机器学习相混淆的领域。数据挖掘不仅利用了机器学习算法和技术,而且还跨越了许多其他领域,例如数据科学,人工智能,统计等等。

数据挖掘过程的总体目标是从数据集中提取模式和知识,并将其转换为易于理解的结构以供进一步使用。数据挖掘通常处理大量数据或大数据。

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

实践中的机器学习

如本系列中所讨论的,机器学习可用于创建预测模型,分配分类,提出建议以及在未标记的数据集中找到模式和见解。无需显式编程即可完成所有这些任务。

机器学习已成功用于以下非穷举示例应用程序:

  • 垃圾邮件过滤

  • 光学字符识别(OCR)

  • 搜索引擎

  • 计算机视觉

  • 推荐引擎,例如Netflix和Amazon使用的引擎

  • 分类DNA序列

  • 检测欺诈,例如信用卡和互联网

  • 医学诊断

  • 自然语言处理

  • 语音和手写识别

  • 经济与金融

  • 几乎所有您能想到的涉及数据的内容

为了应用机器学习来解决给定的问题,应采取以下步骤(或变体),并且应使用本系列中讨论的机器学习元素。

  1. 定义要解决的问题和项目目标。一路上问很多问题!

  2. 确定问题的类型和所需的解决方案的类型。

  3. 收集并准备数据。

  4. 创建,验证,调整,测试,评估和改进您的模型和/或解决方案。该过程应由技术(统计,数学,编程),领域和业务专业知识共同驱动。

  5. 发现其他适用的见解和模式。

  6. 部署您的解决方案以供实际使用。

  7. 报告和/或呈现结果。

如果遇到您或您的公司可以从基于机器学习的解决方案中受益的情况,只需按照以下步骤进行操作,然后看看您的想法。您可能会以超级强大且可扩展的解决方案结束!

 

喜欢点下关注,你的关注是我写作的最大支持

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习

教你学Python52-系列(五)无监督学习,相关领域和实践中的机器学习