前 言
本部分内容
本部分将简要介绍作者、本书讨论的主题、入门所需的技能,以及完成本书包含的所有活动和练习所需的硬件和软件要求等。
关于本书
在没有标签数据的情况下,无监督学习是一种有效且实用的解决方案。
本书将指导读者完成使用Python进行无监督学习的最佳实践,以结合使用无监督学习技术和Python库从非结构化数据中提取有意义的信息。本书首先说明了基本聚类如何在数据集中查找相似的数据点。精通k均值算法及其操作原理后,读者将了解什么是降维(Dimensionality Reduction)以及在哪里应用。随着学习的深入,读者还将掌握各种神经网络技术以及了解如何通过它们改善自己的模型。在研究无监督学习的应用程序时,我们还将学习如何挖掘Twitter上流行的主题。开发人员可以通过进行各种有趣的活动来挑战自己(例如,进行购物篮分析以确定不同产品之间的关系),从而完成本书的学习。
学习完本书,读者将具备使用Python自信地构建自己的模型所需的技能。
关于作者
Benjamin Johnston是全球领先的数据驱动医疗技术公司之一的高级数据科学家,并参与了从问题定义到解决方案的研究与开发,再到最终部署的整个产品开发路径的创新数字解决方案的开发。他目前正在攻读机器学习的博士学位,专门研究图像处理和深度卷积神经网络。他在医疗设备设计和开发方面拥有十多年的经验,担任过各种技术职务,并拥有澳大利亚悉尼大学工程和医学科学的一等荣誉学士学位。
Aaron Jones是美国最大零售商之一的全职高级数据科学家,也是统计顾问。在零售、媒体和环境科学领域工作期间,他建立了预测模型和推论模型以及众多数据产品。Aaron工作的总部位于华盛顿州西雅图,他对因果建模、聚类算法、自然语言处理和贝叶斯统计特别感兴趣。
Christopher Kruger曾在广告领域担任高级数据科学家。他为各种行业的客户设计了可伸缩的聚类解决方案。Christopher曾获得康奈尔大学的计算机科学硕士学位,目前在计算机视觉领域工作。
学习目标
了解聚类的基本知识和重要性。
使用内置包从头开始构建k均值、分层聚类和DBSCAN算法。
探索降维技术及其应用。
使用scikit-learn(sklearn)在Iris数据集上实现和分析主成分分析(Principal Component Analysis,PCA)。
使用Keras为CIFAR-10数据集构建自动编码器模型。
将Apriori算法与机器学习扩展(Mlxtend)结合使用,以分析交易数据。
本书读者
本书是为对无监督学习感兴趣的开发人员、数据科学家和机器学习爱好者而设计的。对于读者来说,熟悉Python编程以及一些数学概念的基础知识(包括指数、平方根、均值和中位数等)将有助于对本书内容的理解和学习。
学习方法
本书采用了Python开发实例来揭示非结构化数据中的隐藏模式,包含多个使用实际业务场景的活动,可让开发人员在高度相关的环境中练习和应用新技能。
硬件需求
为了获得最佳的学习体验,我们建议使用以下硬件配置。
处理器:Intel Core i5或同等计算能力的处理器。
内存:4GB RAM。
存储:5GB可用空间。
软件需求
我们建议开发人员预先安装以下软件。
操作系统:Windows 7 SP1 64位、Windows 8.1 64位或Windows 10 64位;Linux(Ubuntu、Debian、Red Hat或Suse)或最新版本的OS X。
Python(3.6.5或更高版本,最好是3.7),可通过以下网址获得:
https://www.python.org/downloads/release/python-371/
Anaconda(用于mlp_toolkits的basemap模块),开发人员可访问以下网址下载3.7版,然后按照说明进行安装:
https://www.anaconda.com/distribution/
本书约定
本书包含许多区分不同类型信息的文本样式。以下是这些样式的一些示例以及对它们含义的解释。
(1)文本中的数据库表名称、文件夹名称、文件名、文件扩展名、路径名、虚拟URL、用户输入等均以粗体显示,以下段落就是一个示例:
我们将使用NumPy和Math软件包。NumPy是用于Python的科学计算程序包,它以高度优化的格式预打包了常见的数学函数。通过使用NumPy或Math之类的包,我们可以减少从头开始创建自定义数学函数的时间,而专注于开发解决方案。
(2)代码块显示如下:
import math
import numpy as np
def dist(a, b):
return math.sqrt(math.pow(a[0]-b[0],2) + math.pow(a[1]-b[1],2))
(3)当我们希望引起读者对代码块特定部分的注意时,则采用了下列方式将相关的行或项目以粗体显示:
variable_name = pd.read_csv('file_name.csv', header = None)
(4)采用了下列方式将新术语和重要单词以粗体显示,并提供了中英文对照的形式:
数据集中的维度(Dimension)是另一种简单计算可用特征数量的方法。在大多数组织的数据表中,你可以将特征(Feature)的数量视为列的数量。因此,在使用大小为 (1000×2) 的1000行数据集示例时,我们将在两个维度上获得1000个观测值。
安装和设置
“不积跬步,无以至千里”,伟大的长征需从坚实的第一步开始。我们即将在无监督学习世界中的冒险也不例外。在可以对数据进行有效处理之前,开发人员需要准备最有生产力的环境。本书将讨论如何做到这一点。
在Windows上安装Anaconda
Anaconda是一个Python包管理器,开发人员可以轻松地安装和使用本书所需的库。要在Windows上安装Anaconda,请按照以下步骤操作。
(1)Windows的Anaconda安装对用户非常友好。开发人员可以通过以下网址访问下载页面,以获取安装的可执行文件:
https://www.anaconda.com/distribution/#download-section
(2)双击计算机上的安装程序。
(3)按照屏幕上的提示完成Anaconda的安装。
(4)在安装完成之后,开发人员可以访问Anaconda Navigator,它将与其他应用程序一样正常使用。
在Linux上安装Anaconda
要将Anaconda安装在Linux上,请按照以下步骤操作。
(1)开发人员可以通过以下网址访问Anaconda下载页面,以获取安装Shell脚本:
https://www.anaconda.com/distribution/#download-section
(2)要将Shell脚本直接下载到Linux实例中,请使用curl或wget检索库。此处的示例显示了如何使用curl来检索位于Anaconda下载页面中的URL的文件:
curl -O https://repo.anaconda.com/
archive/Anaconda3-2019.03-Linux-x86_64.SH
(3)下载完Shell脚本后,可以使用以下命令将其运行:
bash Anaconda3-2019.03-Linux-x86_64.sh
(4)运行上述命令将使开发人员进入对用户非常友好的安装过程。系统将显示有关安装位置以及Anaconda工作方式的提示。在这种情况下,应该只保留所有标准设置。
(5)在安装Anaconda之后,必须创建用于安装要使用的包的环境。Anaconda环境的优点在于,开发人员可以为正在处理的特定项目构建单独的环境!要创建新环境,请使用以下命令:
conda create --name my_packt_env python = 3.7
(6)创建环境后,可以使用名称明确的activate命令将其激活:
conda activate my_env
这样就可以了!开发人员现在处于自定义环境中,该环境将允许开发人员根据项目需要安装包。要退出环境,只需使用conda deactivate命令即可。
在macOS上安装Anaconda
要将Anaconda安装在macOS上,请按照以下步骤操作。
(1)在macOS上安装Anaconda对用户非常友好。开发人员可以通过以下网址访问下载页面,以获取安装的可执行文件:
https://www.anaconda.com/distribution/#download-section
(2)确保选择了macOS,然后双击Python 3安装程序的Download(下载)按钮。
(3)按照屏幕上的提示完成Anaconda的安装。
(4)在安装完成之后,开发人员可以访问Anaconda Navigator,它将与其他应用程序一样正常使用。
在Windows上安装Python
要在Windows上安装Python,请执行以下操作。
(1)在官方安装页面上找到所需的Python版本,对应的网址如下:
https://www.python.org/downloads/windows/
(2)确保根据开发人员自己的计算机系统(32位或64位)安装正确的32位或64位版本。开发人员可以在操作系统的System Properties(系统属性)窗口中找到此信息。
(3)下载安装程序后,只需双击该文件并按照屏幕上的提示进行操作。
在Linux上安装Python
要在Linux上安装Python,请执行以下操作。
(1)打开命令提示符,并通过运行python3 --version验证尚未安装Python 3。
(2)要安装Python 3,请运行以下命令:
sudo apt-get update
sudo apt-get install python3.6
(3)如果遇到问题,则线上有许多资源可以帮助开发人员解决问题。
在macOS X上安装Python
要在macOS X上安装Python,请执行以下操作。
(1)按住CMD +空格键,在打开的搜索框中输入terminal,然后按Enter键,以打开终端。
(2)运行xcode-select --install,通过命令行安装Xcode。
(3)安装Python 3最简单的方法是使用Homebrew,它是通过运行以下命令行安装的:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/
master/install)"
(4)将homebrew添加到PATH环境变量中。通过运行sudo nano ~ / .profile并在底部插入export PATH =" /usr/local/opt/python/libexec/bin:$ PATH",在命令行中打开配置文件。
(5)在命令行中运行brew install python,完成Python的安装。
请注意,如果安装Anaconda,则将会自动安装最新版本的Python。
其他资源
本书的代码包托管在GitHub上,其网址如下:
https://github.com/TrainingByPackt/Applied-Unsupervised-Learning-with-Python
由于黑白印刷的缘故,本书部分图片难以辨识颜色差异,为此,我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像,可通过以下地址下载:
https://www.packtpub.com/sites/default/files/downloads/9781789952292_ColorImages.pdf