《Python数据挖掘:概念、方法与实践》一导读

简介:
Preface  前言
过去十年,数据存储变得更便宜,硬件变得更快,算法上也有了引人注目的进步,这一切为数据科学的快速兴起铺平了道路,并推动其发展成为计算领域最重要的机遇。虽然“数据科学”一词可以包含从数据清理、数据存储到用图形图表可视化数据的所有环节,但该领域最重要的收获是发明了智能、精密的数据分析算法。使用计算机寻找大量数据中埋藏的有趣模式称为数据挖掘,这一领域包含了数据库系统、统计学和机器学习等课题。
现在,软件开发人员可以找到数十种出色的数据挖掘和机器学习书籍,从而了解这一领域的所有最新进展。大部分这类书籍都有一个共同点,即它们都涵盖了寻找数据中模式的少数经过检验的方法:分类、聚类、决策树和回归。当然,这些方法对于任何数据挖掘人员都是非常重要的,它们的流行正是因为其有效性。但是,这几种技术并不是全部。数据挖掘是一个丰富多彩的领域,包括数十种发现模式并做出预测的技术。真正的数据挖掘大师应该在工具箱中放入许多工具,而不只是少数几种。因此,本书的使命是介绍一些通常仅在学校课本中出现的、鲜为人知的数据挖掘概念。
本书使用Python编程语言和基于项目的方法介绍多种常被忽视的数据挖掘概念,如关联规则、实体匹配、网络分析、文本挖掘和异常检测等。每章都全面阐述某种特定数据挖掘技术的基础知识,提供替代方案以评估其有效性,然后用真实的数据实现该技术。
专注于实际数据是本书不同于其他数据挖掘书籍的一个特征。为了验证我们是否掌握了某个概念,判断方法是看我们能否将某种方法应用于新的未知问题。对我们来说,这意味着将每种数据挖掘方法应用到一个新的问题领域或者新的数据集。强调真实数据还意味着,我们的结果可能不总像预先制作的示例数据集那样清晰。因此,每一章都包含对如何精密地评估方法的讨论。得到的结果是否有意义?结果意味着什么?如何改善这些结果?
所以,在许多方面,本书包含了其他一些数据挖掘书籍遗漏的知识。如果你想用一组有趣但常被忽视的技术补充日益增长的数据挖掘工具箱,那么学习我们介绍的特定主题,以及在每个章节中的应用方法。
本书主要内容
第1章简单介绍数据挖掘领域,在该章中,我们特别注意数据挖掘与类似主题(如机器学习和数据科学)的关系。还回顾了许多不同的数据挖掘方法,讨论它们的各种优点和缺点。这些基础知识对我们过渡到本书的其他章节很重要,后续的章节更偏重技术,专注于特定数据挖掘工具的应用。
第2章介绍我们的第一个数据挖掘工具:挖掘一组同时出现的项目,这有时候被称为频繁项集。这里扩展了对频繁项集挖掘的理解,包含关联规则的挖掘,并且学习如何评估所找到的规则是否有益。为了将知识用于实践,在该章的最后我们实施了一个小项目,寻找选择用来描述大量软件项目的关键词中的关联规则。
第3章的重点是找出看上去稍有不同但实际上相同的匹配数据元素对。学习如何通过使用数据属性,确定两个项目是否实际上是同一回事。在该章的最后,我们实施一个实体匹配项目,寻找从一个托管服务转移到另一个托管服务中的软件项目,即使该项目的名称和其他重要属性已经改变。
第4章是网络或者图形分析的教程,这两种分析用于描述各种相互联系的实体组之间的关系。我们研究各种类型的网络,学习描述和计量它们的方法。然后,将学习到的知识投入实践,描述一个软件开发人员网络是如何随时间而变化的。
第5章是本书4个文本挖掘章节中的第一个。该章简单介绍了发展中的文本情绪分析领域。比较情绪挖掘的各种方法并学习结果的评估手段之后,我们实践使用机器学习分类器来确定一组软件开发人员聊天记录和电子邮件记录中的情绪。
第6章是关于寻找文本中合适名词和名称的。我们花费一些时间,学习这一任务的用途,了解为什么寻找命名实体有时候比看上去更加困难。在该章的最后,我们在各种不同类型的实际文本(包括电子邮件、聊天记录和董事会会议纪要)上实现了一个命名实体识别系统。在实现过程中,我们应用了不同的技术以量化结果的成败。
第7章介绍多种自动创建浓缩的文本摘要的策略。该章强调摘要提取工具,这种工具用来找出文本样本中最重要的句子。为此,我们试验了3种实现这一目标的不同工具,测试摘要方法并了解它们之间的差异。在介绍了每种工具之后,我们尝试提取同一组文本文档的摘要,并对比结果。
第8章说明如何使用软件工具揭示给定文本中存在的主题或者概念。我们可以训练一个计算机程序,推断大量文本中存在的主题吗?在一系列试验中,我们学习使用常见的主题建模库揭示软件开发人员电子邮件中存在的主题,以及这些主题如何随时间推移而变化。
第9章中我们学习如何使用数据挖掘和统计技术改善自己的数据挖掘过程。虽然本书的其他章节都在寻找数据中不同类型的模式,但该章将重点放在寻找异常或者不匹配特定模式的数据。不管这是因为数据是空白、遗漏还是怪异的,本章都提供了寻找或者修复这类数据并使剩余数据可以被更有效挖掘的策略。
阅读准备
为了完成本书中的项目,你需要Python 3.5或者更高版本。我建议使用Anaconda Python,但是只要包含如下程序包,任何Python分发版本都是可行的:Numpy、MatPlotlib、NetworkX、PyMySQL、Gensim和NTLK。第1章会简单介绍Python的安装和以上程序库,此后,每次使用一个程序库,我们将同时安装或者升级它。
因为数据挖掘明显是以数据为中心的,而且我们使用的数据集有时候很大,需要某种持久化数据存储,所以本书选择在一个关系数据库系统上实现一些数据挖掘算法。我们选择MySQL实现这一目标,因为这是一个成熟、容易下载和安装的基础设施。第2章和第3章都使用MySQL与内存密集型算法搭配。同时,本书还在第9章中的某些例子里使用了MySQL,但是没有MySQL也可以完成该章的学习。
读者人群
如果你为了精通数据挖掘而选择书籍,那么可能已经熟悉了数据分析的基础知识,可能试验过回归、决策树、分类和聚类分析等机器学习技术;如果你有一定的Python经验,理解基本的关系数据库术语,对统计学基础有所了解,能够理解有监督与无监督机器学习技术的基本工作原理,那么就已经为本书的阅读做好了准备。让我们从你已有的知识入手,学习更加不同寻常的数据挖掘策略吧!
本书约定
在本书中,你将发现许多区分不同信息的文本格式。下面是这些格式的一些例子及对其意义的解释。
下面是一个代码块的示例:

任何命令输入或者输出使用如下格式:

表示警告或者重要说明。
表示提示和技巧。
下载示例代码
你可以在www.packtpub.com上用自己的账户下载示例代码文件。如果在其他地方购买本书,可以访问www.packtpub.com/support注册,这些文件将直接用电子邮件发送给你。
你也可以访问华章图书官网www.hzbook.com,通过注册并登录个人账号,下载本书的源代码。




Contents  目  录
译者序
关于审稿人
前言
1.2.1 Fayyad等人的KDD过程
1.2.2 韩家炜等人的KDD过程
1.2.3 CRISP-DM过程
1.2.4 六步过程
1.2.5 哪一种数据挖掘方法最好
2.1.1 都市传奇“尿布与啤酒”
2.1.2 频繁项集挖掘基础知识
2.2.1 支持度
2.2.2 置信度
2.2.3 关联规则
2.2.4 包含数据的示例
2.2.5 附加值—修复计划中的漏洞
2.2.6 寻找频繁项集的方法
第3章 实体匹配
3.1 什么是实体匹配
3.1.1 数据合并
3.1.2 匹配技术
3.1.3 基于属性的相似度匹配
3.1.4 属性匹配方法
3.1.5 利用不相交数据集
3.1.6 基于上下文的相似度匹配
3.1.7 基于机器学习的实体匹配
3.1.8 实体匹配技术的评估
3.2 实体匹配项目
3.2.1 软件项目匹配的难度
3.2.2 两个例子
3.2.3 根据项目名称匹配
3.2.4 根据人名匹配
3.2.5 根据URL匹配
3.2.6 按照主题和描述关键词匹配
3.2.7 数据集
3.2.8 代码
3.2.9 结果
3.3 小结
第4章 网络分析
4.1 什么是网络
4.2 网络计量
4.2.1 网络的度数
4.2.2 网络直径
4.2.3 网络中的通路、路径和迹
4.2.4 网络的成分
4.2.5 图的中心性
4.3 图数据的表示
4.3.1 邻接矩阵
4.3.2 边表和邻接表
4.3.3 图数据结构之间的差别
4.3.4 将数据导入图结构中
4.4 真实项目
4.4.1 探索数据
4.4.2 生成网络文件
4.4.3 以网络的形式理解数据
4.5 小结
第5章 文本情绪分析
5.1 什么是情绪分析
5.2 情绪分析基础知识
5.2.1 观点的结构
5.2.2 文档级和句子级分析
5.2.3 观点的重要特征
5.3 情绪分析算法
5.4 情绪挖掘应用
5.4.1 项目动机
5.4.2 数据准备
5.4.3 聊天消息的数据分析
5.4.4 电子邮件消息的数据分析
5.5 小结
第6章 文本中的命名实体识别
6.1 为什么寻找命名实体?
6.2 命名实体识别技术
6.3 NER系统的构建与评估
6.3.1 NER和部分匹配
6.3.2 处理部分匹配
6.4 命名实体识别项目
6.5 小结
第7章 自动化文本摘要
7.1 什么是自动化文本摘要
7.2 文本摘要工具
7.2.1 使用NTLK的简单文本摘要
7.2.2 使用Gensim的文本摘要
7.2.3 使用Sumy的文本摘要
7.3 小结
第8章 文本中的主题建模
8.1 什么是主题建模
8.2 潜在狄利克雷分配
8.3 Gensim主题建模
8.3.1 理解Gensim LDA主题
8.3.2 理解Gensim LDA的遍数
8.3.3 对新文档应用Gensim LDA模型
8.3.4 序列化Gensim LDA对象
8.4 用于更大项目的Gensim LDA
8.5 小结
第9章 挖掘数据异常
9.1 什么是数据异常
9.1.1 缺失数据
9.1.2 修复缺失数据
9.1.3 数据错误
9.1.4 离群值
9.2 小结
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
372 2
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
2月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
1442 1
|
2月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
445 0
|
2月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
347 0
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
3月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
455 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
369 1
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南

热门文章

最新文章

推荐镜像

更多