《Python数据挖掘:概念、方法与实践》一1.4 如何建立数据挖掘工作环境

简介:

 本节书摘来自华章出版社《Python数据挖掘:概念、方法与实践》一书中的第1章,第1.4节,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区“华章计算机”公众号查看。



1.4 如何建立数据挖掘工作环境

前面几节帮助我们更好地了解了将要从事的项目及原因。现在可以开始建立一个开发环境,支持所有项目工作了。由于本书的目的是介绍如何构建挖掘数据模式的软件,因此我们将用一种通用编程语言编写程序。Python编程语言具有非常强大且仍在不断成长、专门致力于数据挖掘的社区。这个社区已经贡献了一些非常方便的程序库,我们可以用来进行高效的处理,我们还可以依靠他们提供的许多数据类型,更快地工作。

在本书编著时,有两个版本的Python可供下载:现在被视为经典的Python 2(最新版本为2.7)和Python 3(最新版本为3.5)。本书将使用Python 3。因为我们需要使用许多相关的程序包和程序库,尽可能地使数据挖掘体验不那么痛苦,也因为其中一些程序包和库难以安装,所以这里我建议使用专为科学及数学计算设计的Python分发版本。具体地说,我推荐Continuum Analytics 制作的Python 3.5 Anaconda分发版本。他们的基本Python分发版本是免费的,所有组件都保证能够协同工作,而无需我们进行令人沮丧的兼容性保证工作。

要下载Anaconda Python分发版本,只需要用浏览器访问Continuum Analytics的网站(https://www.continuum.io),根据提示符下载适合你的操作系统的Anaconda免费版本(目前的编号是3.5或者更高)。

启动该软件,将会看到如图1-2所示的启动画面。

根据你使用的版本和下载的时间,Anaconda中的每个应用程序中除了Launch按钮之外可能还有几个Update(更新)按钮。如果你的软件版本显示需要,可以单击每个按钮以更新程序包。

f72dcc3f874b7e30fdece69451533574061763e4

为了开始编写Python代码,单击Spyder以启动代码编辑器和集成开发环境。如果你想使用自己的文本编辑器(如MacOS上的TextWrangler或者Windows上的Sublime编辑器),完全没有问题。可以从命令行运行Python代码。

花一点时间将Spyder配置成你喜欢的样子,设置颜色和常规布局,或者保留默认值。对于我自己的工作空间,我移动了几个控制台窗口,建立一个工作目录,并进行几个自定义调整,使自己更适应这个新编辑器。你也可以这么做,使开发环境更舒适。

现在,我们已经为测试编辑器和安装程序库做好了准备。单击File(文件)并选择New File(新建文件)测试Spyder编辑器,观察其工作方式。然后,输入简单的“Hello World”语句:

 

单击绿色箭头,按下F5键或者单击Run(运行)菜单中的Run命令,运行程序。不管用哪一种方式,程序将执行,你将在控制台输出窗口看到输出。

此时,我们知道Spyder和Python正在工作,可以测试和安装一些程序库了。

首先,打开一个新文件,将其保存为packageTest.py。在这个测试程序中,我们将确定Scikit-learn是否已经随Anaconda正确安装。Scikit-learn是很重要的程序包,包含了许多机器学习函数,以及用于测试这些函数的现成数据集。许多书籍和教程使用Scikit-learn示例教授数据挖掘,所以在我们的工具箱中也有这个程序包。我们将在本书的多个章节中使用这个程序包。

运行Scikit-learn网站上的教程中的如下小程序(可以在http://scikit-learn.org/stable/tutorial/basic/tutorial.html #loading-an-example-dataset上找到),它将告诉我们环境是否正常建立:

914e7d8f9a14c0332db6c456c61e374f84261186

 

如果上述程序运行正常,将在控制台窗口中输出显示类列表数据结构中的一系列数值:

a86d8e121100eee00967bd3a7c6c49db11317c67

 

这个输出足以说明Scikit-learn已正常安装。接下来,添加一行代码,它将帮助我们学习digits.data结构的数据类型:

4b8c865b07cee4c126f62ffd01267ed04da66e3b

 

输出如下:

e7b8cc99bdc3f146bd3c5030dbfca1f03330b29f

 

从上述输出,我们可以确定Scikit-learn依赖另一个重要程序包Numpy处理其数据结构。Anaconda也已经正常安装Numpy,这正是我们要确认的事项。

接下来,我们将测试是否已经包含了网络分析库。我们将在第4章中使用Networkx程序库构建图形化社交网络。下面的代码示例创建一个具有一个节点的小型网络,并在屏幕上打印其类型:

745e37b403c50482fbcddc7c71090086676bb44b

 

输出如下:

1ff61527dc77c5db300d87bd4ee379230a9997ac

 

这正是我们想要看到的输出,它告诉我们Networkx已经安装并正常工作。

接下来,我们将测试后面几章需要的文本挖掘软件。这也很方便,自然语言工具包(Natural Language Toolkit,NLTK)也已随Anaconda安装。但是,它有自己的图形化下载工具,用于下载它使用的各种语料库和单词列表。Anaconda没有自动安装这些组件,因此我们必须人工完成。为了得到单词列表和字典,需创建一个新的Python文件,导入NTLK模块,然后提示NTLK启动图形化下载工具:

f1a61a9a97963f0bc3b485b7dd4485aae65bfecd

新的下载程序窗口将在Anaconda中打开(见图1-3):

95cb4be5406fb65ff0f49ac10e6794a44faec0af

在这个下载程序窗口中,从标识符列表中选择all(全部),更改Download Directory(下载目录,可选),并按下Download(下载)按钮。下载程序窗口左下角的红色进度条将随着每个数据集安装而变动。如果连接较慢,这一步可能需要花费几分钟。图1-4中的屏幕截图展示了这一下载中的步骤:

d50a76c1d6b2373dffa793cc9a32aea47a261114

下载程序完成NTLK语料库的安装后,可以测试它们是否正常工作。下面是一个短的Python程序,其中要求NTLK使用布朗大学的语料库并打印前10个单词:

 

该程序的输出如下,是NTLK布朗文本语料库的前10个单词,它们恰好来自一篇新闻报道:

 

从这个输出,我们可以确信NTLK已经安装,所有必要的语料库也已经安装。

接下来,将安装文本挖掘模块Gensim,在后面进行主题建模时需要它。Gensim默认不作为Anaconda的一部分预先安装,而是可使用Anaconda内建的conda安装程序轻松添加,有数百个这样的程序包,Gensim是第一个。从Anaconda Tools菜单,选择Open a Terminal(打开终端)命令,并输入conda install gensim。如果提示更新numpy和scipy,则输入y,安装将继续。

安装结束时,启动一个新的Python程序,输入来自Gensim网站的测试程序的如下精简版本:

 

这个程序所做的只不过是测试该模块是否正常导入,然后在屏幕上打印一个列表,但是这在现在已经足够了。

最后,由于本书是关于数据挖掘或者数据结构中的知识发现的书籍,因此使用某种数据库软件绝对是个好主意。我选择MySQL实现本书中的项目,因为它是免费软件,易于安装,可用于许多种操作系统。

要得到MySQL,可以进入http://dev.mysql.com/downloads/mysql/,找到你要用操作系统的免费社区版本(Community Edition)下载页面。

为了让Anaconda Python与MySQL通信,必须安装一些MySQL Python驱动程序。我喜欢pymysql驱动程序,因为它相当健壮,没有标准驱动程序常会有的一些Bug。从Anaconda中,启动一个终端窗口,运行如下命令:

 

现在所有模块似乎都已经安装,可以在需要它们时使用。如果还需要其他模块,或者其中一个模块过时,现在我们也已经知道如何在必要时安装或者升级模块了。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
10月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
1580 2
|
10月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
10月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
8304 1
|
10月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
774 0
|
10月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
749 1
|
10月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
11月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
11月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1636 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
11月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
646 1
|
11月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南

推荐镜像

更多