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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

 本节书摘来自华章出版社《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中,启动一个终端窗口,运行如下命令:

 

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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1408
分享
相关文章
|
8天前
|
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
MSET-SPRT是一种结合多元状态估计技术(MSET)与序贯概率比检验(SPRT)的混合框架,专为高维度、强关联数据流的异常检测设计。MSET通过历史数据建模估计系统预期状态,SPRT基于统计推断判定偏差显著性,二者协同实现精准高效的异常识别。本文以Python为例,展示其在模拟数据中的应用,证明其在工业监控、设备健康管理及网络安全等领域的可靠性与有效性。
497 8
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
162 83
如何在Python下实现摄像头|屏幕|AI视觉算法数据的RTMP直播推送
本文详细讲解了在Python环境下使用大牛直播SDK实现RTMP推流的过程。从技术背景到代码实现,涵盖Python生态优势、AI视觉算法应用、RTMP稳定性及跨平台支持等内容。通过丰富功能如音频编码、视频编码、实时预览等,结合实际代码示例,为开发者提供完整指南。同时探讨C接口转换Python时的注意事项,包括数据类型映射、内存管理、回调函数等关键点。最终总结Python在RTMP推流与AI视觉算法结合中的重要性与前景,为行业应用带来便利与革新。
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等