《Python数据挖掘:概念、方法与实践》——1.2节如何进行数据挖掘

简介:

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

1.2 如何进行数据挖掘
由于数据挖掘传统上被视为KDD全过程中的一步,并且越来越成为数据科学过程的一部分,在本节中我们将熟悉其所涉及的步骤。进行数据挖掘有多种流行的方法。本书中我们重点介绍4种方法:其中两种取自数据挖掘理论的教科书,一种取自行业中非常实用的过程,一种是为教授入门者而设计的。
1.2.1 Fayyad等人的KDD过
知识发现和数据挖掘过程的早期版本之一由Usama Fayyad、Gregory Piatetsky-Shapiro和 Padhraic Smyth在1996年的一篇论文(The KDD Process for Extracting Useful Knowledge from Volumes of Data)中定义。这篇论文在当时很重要,它将快速变化的KDD方法论精炼为具体的一组步骤。如下步骤以原始数据开始,以知识作为结束:
数据选择。这一步的输入是原始数据,输出是较小的数据子集,称为目标数据。
数据预处理。目标数据得到清理,删除异常值,处理缺失数据。这一步的输出是预处理数据或清理后数据。
数据变换。清理后的数据组织成适合于挖掘步骤的格式,如果有必要,精简特征或者变量的数量。这一步的输出是变换后数据。
数据挖掘。用适合于问题的一种或者多种数据挖掘算法对变换后数据进行挖掘,这一步的输出是发现的模式。
数据解释/评估。评估所发现模式解决手上问题的能力。这一步的输出是知识。
由于这一过程从原始数据得出知识,因此,这些作者对“数据库中的知识发现”这一术语作出了真正的贡献,而不仅仅是简单的数据挖掘。
1.2.2 韩家炜等人的KDD过程
韩家炜、Micheline Kamber和裴健所著的流行数据挖掘教科书《Data Mining: Concepts and Techniques》描述了知识发现过程的另一个版本,其中的步骤也是从原始数据导出知识:
数据清理。这一步的输入是原始数据,输出是清理后的数据。
数据整合。在这一步中,清理后数据被整合(如果它们来自多个来源)。这一步的输出是整合数据。
数据选择。数据集被精简为仅包含手上问题所需的数据。这一步的输出是较小的数据集。
数据变换。较小的数据集被合并为一种适合于将来的数据挖掘步骤的形式,称为变换后数据。
数据挖掘。变换后的数据由设计用于发现数据中模式的智能算法处理。这一步的输出是一种或者多种模式。
模式评估。评估所发现模式的兴趣度和解决手上问题的能力。这一步的输出是适用于每个模式(代表知识)的兴趣度计量。
知识表示。在这一步中,通过各种手段(包括可视化)将知识传达给用户。
在Fayyad和韩的方法中,都预计该过程在必要时需要多次重复这些步骤。例如,如果在变换步骤中,分析人员发现需要再进行一次数据清理或者预处理,这两种方法都规定分析人员应该按原路返回,完成前面未完成步骤的第二次迭代。
1.2.3 CRISP-DM过程
KDD过程的第3种流行版本称为CRISP-DM,其用于许多商业和应用领域,它的全称是CRoss-Industry Standard Process for Data Mining(跨行业数据挖掘标准过程),包含如下步骤:
1)业务理解。在这一步中,分析人员花时间从业务视角理解数据挖掘项目的动机。
2)数据理解。在这一步中,分析人员熟悉数据及其潜在优势和不足,并开始生成假设。分析人员的任务是在必要时重新评估第1步的业务理解。
3)数据准备。这一步包含其他模型作为单独步骤列举的选择、整合、变换和预处理步骤。CRISP-DM模型对这些任务的执行顺序没有要求。
4)建模。这一步中对数据应用算法以发现模式。这一步骤最接近于其他KDD模型中的数据挖掘步骤。分析人员的任务是在建模和挖掘步骤需要的时候重新评估第3步的数据准备。
5)评估。评估模型和发现的模式在回答手上的业务问题中的价值。分析人员的任务是在必要时重温第1步的业务理解。
6)部署。呈现发现的知识和模型,并投产以解决手上的原始问题。
这种方法的优势之一是,迭代是内建的。在特定步骤之间,分析人员将检查当前步骤仍然与之前的某些步骤保持一致。另一个优势是明确地提醒分析人员,即使在评估步骤中也要将业务问题放在项目的核心位置。
1.2.4 六步过程
当我在大学里教授数据科学入门课程时,使用了自己创造的一种混合方法。这种方法称为“六步过程”,这种专门设计的方法对于授课很合适。我的六步方法消除了没有经验的学生在CRISP-DM中的开放式任务(如业务理解)或者基于企业任务(如部署)中可能遇到的歧义问题。此外,六步方法要求学生在过程的开始和最后回答“为什么这么做”和“这有什么意义”的问题,以拓展学生的批判性思维技能。我的六步方法如下:
1)问题陈述。在这一步中,学生确定他们试图解决的问题。在理想状况下,了解进行这些工作的原因可以提高他们的积极性。
2)数据收集和存储。在这一步中,学生们定位数据并规划这一问题所需数据的存储。他们还提供一些信息,这些信息与回答他们感兴趣的问题所需数据的来源、格式以及所有字段含义相关。
3)数据清理。在这一步中,学生们认真选择真正需要的数据,并将数据处理成挖掘步骤所需的格式。
4)数据挖掘。在这一步中,学生形式化所选择的数据挖掘方法。他们描述使用的算法以及原因。这一步的输出是模型和发现的模式。
5)表示和可视化。在这一步中,学生直观地展示工作成果。这一步的输出可以是表格、图示、图形、图表、网络框图、映射图等。
6)问题解决。这一步对数据挖掘初学者很重要,它明确地鼓励学生评估第5步中展示的模式是不是第1步中提出的问题的答案。学生们被要求说明模型或者结果的局限性,确定用这种方法无法回答的部分相关问题。
1.2.5 哪一种数据挖掘方法最好
2014年,Gregory Piatetsky-Shapiro在其非常受欢迎的数据挖掘电子邮件通讯KD-Nuggets上进行的调查包含了一个问题:“你在分析、数据挖掘或者数据库科学项目中使用哪一种主要方法?”
43%的调查对象表示他们使用CRISP-DM方法。
27%的调查对象使用自己的方法或者混合方法。
7%的调查对象使用传统的KDD方法。
其余调查对象选择另一种KDD方法。
这些结果和2007年同一邮件通讯所做的相同调查结果类似。
我的最佳建议是,不要过于重视用于数据挖掘项目的方法,随便挑一种即可。如果完全不使用任何方法,那么就有遗漏重要步骤的危险。选择看上去对你的项目和需求有效的方法,然后尽可能遵循该方法的步骤。
在本书中,我们将根据相关章节中研究的技术,选择不同的数据挖掘方法。例如,尽管本书的焦点是数据挖掘步骤,但是仍然需要对每章中的项目实施健全的业务理解(CRISP-DM)或者问题陈述(六步过程)步骤,以便理解我们执行任务的原因和结果的意义。此外,为了学习特定的数据挖掘方法,我们可能还必须进行一些预处理,不管这一过程称为“数据清理”、“整合”还是“变换”。但是通常来说,我们将尽可能减少此类任务,将焦点清晰地置于数据挖掘之上。在最后一章有个显著的例外,我们将在那里展示处理缺失数据和异常数据的具体方法。最后,尽管对于将数据挖掘过程的结果展示给受众来说,数据可视化通常非常重要,我们仍然将尽可能减少这些任务,以便将重点放在主要的工作—数据挖掘上。

相关文章
|
4天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
7天前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
8天前
|
JSON API 数据格式
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
|
12天前
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据
|
13天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
19天前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
20天前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
20天前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
138 83
|
21天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
47 12
|
26天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据

热门文章

最新文章

推荐镜像

更多