什么是数据挖掘(python)

文章目录

  • 1.什么是数据挖掘
  • 2.为什么要做数据挖掘?
  • 3数据挖掘有什么用处?
    • 3.1分类问题
    • 3.2聚类问题
    • 3.3回归问题
    • 3.4关联问题
  • 4.数据挖掘怎么做?
    • 4.1业务理解(Business Understanding)
    • 4.2数据理解(Data Understanding)
    • 4.3数据准备(Data Preparation)
    • 4.4 构建模型(Modeling)
    • 4.5 评估模型(Evaluation)
    • 4.6模型部署(Deployment)

我将借助5W1H 的思想来带你从整体上了解下数据挖掘,比如什么是数据挖掘、为什么要做数据挖掘、在哪些场景下用数据挖掘,以及怎么做数据挖掘。我会从这条主线上逐渐细化,为这个“骨架” 填充肌肉和血液,让它逐渐丰满起来。

1.什么是数据挖掘

这个问题看似很简单,但似乎也很难有一个明确的答案。
如果非要给数据挖掘一个定义的话,那么我认为数据挖掘就是寻找数据中隐含的知识并用于产生商业价值。也就是说,它是我们在数据中(尤其是在大量的数据中)找到一些有价值,甚至是非常有价值的东西的一种手段。

2.为什么要做数据挖掘?

技术与商业就像一对双生子,在互相促进中不断演进发展,随之而来的就是各大公司业务突飞猛进,很多新模式也涌现出来,使得数据量激增。
面对数以千万甚至上亿,以及不同形式的数据,很难再用纯人工,或者纯统计的方法从成千上万的变量中找到其隐含的价值。
我们需要一种规范的解决方案,能够利用并且充分利用这些数据里的每一个部分,通过一些自动化的机器学习算法,从数据中自动提取价值。而数据挖掘就提供了这样一系列的框架、工具和方法,可以处理不同类型的大量数据,并且使用复杂的算法部署,去探索数据中的模式。
总之,数据挖掘的产生动因主要有以下3 点。

  • 海量数据。随着互联网技术的发展,数据的生产、收集和存储也越来越方便,海量数据因此产生。比如,我们常用的微信,每天要产生超过380 亿条数据;今日头条每天要发布上百万的新文章;淘宝每天有上千万的包裹要发出。
  • 维度众多。在一个多维度的数据中,每增加一个维度都会增加数据分析的复杂程度。比如点外卖事件涉及的维度就有:浏览饭店的菜品(形式有文字、图片或语言、视频等)、浏览时间、下单价格、交易处理、分配配送员及GPS 信息、完成订单后的评价等。
  • 问题复杂。通常用数据挖掘解决的问题都比较复杂,很难用一些规则或者简单的统计给出结果。如果让开发者写一个微波炉的智能控制逻辑,我想难度不是很大,即便是有十几个,甚至几十个按钮的控制中心也不过是多花费一点时间而已。但如果编写一段代码来区分某图片中是否有一只猫咪,那要考虑的问题就太多了,使用传统的方法很难解决,而这恰恰是数据挖掘所擅长的。
    以上是我们进行数据挖掘的初衷,在后续的课程中你也会看到,随着这些问题的出现,它们在数据挖掘中是如何被解决的。

3数据挖掘有什么用处?

既然数据挖掘是一种方法,那就要用它去解决一些问题。下面我就来具体讲一下你最关心的,也是最实际的问题,数据挖掘到底有什么用处。

3.1分类问题

分类问题是最常见的问题。比如新闻网站,判断一条新闻是社会新闻还是时政新闻,是体育新闻还是娱乐新闻?这就是一个分类问题,也就是对已知类别的数据进行学习,为新的内容标注一个类别。

3.2聚类问题

聚类与分类不同,聚类的类别预先是不清楚的,我们的目标就是要去发现这些类别。聚类的算法比较适合一些不确定的类别场景。
比如我们出去玩,捡了一大堆不同的树叶回来,你不知道这些树叶是从什么树上掉落的,但是你可以根据它们的大小、形状、纹路、边缘等特征给树叶进行划分,最后得到了三个较小的树叶堆,每一堆树叶都属于同一个种类。

3.3回归问题

简单来说,回归问题可以看作高中学过的解线性方程组。它的最大特点是,生成的结果是连续的,而不像分类和聚类生成的是一种离散的结果。
比如,使用回归的方法预测北京某个房子的总价(y),假设总价只跟房子的面积(x)有关,那么我们构建的方程式就是ax+b=y。如何根据已知x 和y 的值解出a 和b 就是回归问题要解决的。回归方法是通过构建一个模型去拟合已知的数据(自变量),然后预测因变量结果。

3.4关联问题

关联问题最常见的一个场景就是推荐,比如,你在京东或者淘宝购物的时候,在选中一个商品之后,往往会给你推荐几种其他商品组合,这种功能就可以使用关联挖掘来实现。

4.数据挖掘怎么做?

数据挖掘,也是有方法论的。实际上,数据挖掘经过了数十年的发展和无数专家学者的研究,有很多人提出了完整的流程框架,这对于我们来说简直是福音。当然,如果你在使用的过程中觉得这些东西有问题,或者还有改进的空间,那也不要惧怕权威,尽信书则不如无书嘛。
在这里,我讲一个应用最多的CRISP-DM(Cross-industry Standard Process for Data Mining,跨行
业数据挖掘标准流程)方法论,不要被这么长的名字吓到,这里我们先简单地了解数据挖掘的操作步骤有哪些,后面我也会逐一详细讲解。
下面我们就来看一下,如何依照这6 个步骤进行数据挖掘。

4.1业务理解(Business Understanding)

想象你在一个外贸公司上班,有一天,你的老板突然给你说:“小明啊,你能不能训练一个模型来预测一下明年公司的利润呢?”这就是一个业务需求了,若要解决这个问题,首先要弄明白需求是什么,这就是业务理解,或者也可以叫作商业理解。比如,你要搞清楚什么是利润、利润的构成是什么样的、利润受什么影响,同时老板说的利润是净利润还是毛利润等问题。
业务理解,主旨是理解你的数据挖掘要解决什么业务问题。任何公司启动数据挖掘,都是想为业务赋能,因此我们必须从商业或者从业务的角度去了解项目的要求和最终的目的,去分析整个问题涉及的资源、局限、设想,甚至是风险、意外等情况。从业务出发,到业务中去。

4.2数据理解(Data Understanding)

明白了问题,还要明白解决问题需要什么数据。比如这个时候,你的老板又跟你说了:“小明啊,我想改改需求,能不能多做几个模型,把竞品公司明年的利润也都算算,我想对比一下。” 然而“巧妇难为无米之炊”,你根本就没有这个数据,这个需求也就无从完成了。数据理解阶段始于数据的收集工作,但我认为重点是在业务理解的基础上,对我们所掌握的数据要有一个清晰、明确的认识,了解有哪些数据、哪些数据可能对目标有影响、哪些可能是冗余数据、哪些数据存在不足或缺失,等等。需要注意的是,数据理解和业务理解是相辅相成的,因此你在制定数据挖掘计划的时候,不能只是单纯地谈需求,这也是大多数初入门的数据挖掘工程师容易忽略的。数据理解得不好,很可能会导致你对业务需求的错误评估,从而影响后续进度甚至是结果。

4.3数据准备(Data Preparation)

完成上面两个步骤后,我们就可以准备数据了。你需要找销售要销售数据,找采购要采购数据,找财务要各种收入、支出数据,然后整理所有需要用到的数据,想办法补全那些缺失的数据,计算各种统计值,等等。数据准备就是基于原始数据,去构建数据挖掘模型所需的数据集的所有工作,包括数据收集、数据清洗、数据补全、数据整合、数据转换、特征提取等一系列动作。
事实上,在大多数的数据挖掘项目中,数据准备是最困难、最艰巨的一步。如果你的数据足够干净和完整,那么在建模和评估阶段所付出的精力就越少,甚至都不必去使用什么复杂的模型就可以得到足够好的效果,所以这个阶段也是十分重要的。

4.4 构建模型(Modeling)

也可以叫作训练模型,在这一阶段,我们会把准备好的数据喂给算法,所以这个阶段重点解决的是技术方面的问题,会选用各种各样的算法模型来处理数据,让模型学习数据的规律,并产出模型用于后续的工作。
对于同一个数据挖掘的问题类型,可以有多种方法选择使用。如果有多重技术要使用,那么在这一任务中,对于每一个要使用的技术要分别对待。一些建模方法对数据的形式有具体的要求,比如SVM 算法只能输入数值型的数据,等等。因此,在这一阶段,重新回到数据准备阶段执行某些任务有时是非常必要的。

4.5 评估模型(Evaluation)

在模型评估阶段,我们已经建立了一个或多个高质量的模型。但是模型的效果如何,能否满足我们的业务需求,就需要使用各种评估手段、评估指标甚至是让业务人员一起参与进来,彻底地评估模型,回顾在构建模型过程中所执行的每一个步骤,以确保这些模型达到了目标。在评估之后会有两种情况,一种是评估通过,进入到上线部署阶段;另一种是评估不通过,那么就要反过来再进行迭代更新了。

4.6模型部署(Deployment)

整理了数据,研究了算法模型,并通过了多方评估,终于到了部署阶段。此时可能还要解决一些实际的问题,比如长期运行的模型是否有足够的机器来支撑,数据量以及并发程度会不会造成我们部署的服务出现问题,等等。但是,关于数据挖掘的生命周期可能还远未结束,关于一些特殊情况的出现可能仍然无法处理,以及在后续的进程中,随着新数据的生产以及变化,我们的模型仍然会发生一些变化。所以部署是一个挖掘项目的结束,也是一个数据挖掘项目的开始。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生态共建 | 华宇TAS应用中间件与新华三服务器完成兼容互认证

近日,华宇TAS应用中间件完成与新华三技术有限公司的R4930系列和R4970 G7服务器的兼容适配,认证测试报告显示,双方产品兼容性良好,运行稳定、安全,可以满足用户对双方功能的要求。 新华三技术有限公司 新华三技术有限公…

行业洞察 | 2024应用程序安全领域现状报告

在信息爆炸的时代,我们每天都在使用各种应用,从社交娱乐到工作学习,应用已经成为我们生活中不可或缺的一部分。然而,你是否知道,在这些便捷的背后,隐藏着巨大的安全风险? 近年来,应用…

2024年前端面试题及答案

7、 nginx代理跨域 8、 nodejs中间件代理跨域 9、 WebSocket协议跨域 前端数据加密问题 1 一般如何处理用户敏感信息? 前端一般使用md5、base64加密、sha1加密,想要了解详情请自行百度。 前端http相关问题 1 HTTP常用状态码及其含义? …

win10系统让当前用户拥有管理员权限

本方法应该也适用于win11 大家在安装系统的时候,如果开始你不重新建立一个账号。直接使用默认的administror登录,那么这个时候电脑只有1个账户,但是如果你在刚开始的时候建立了一个新的,比如你姓李 名字叫帅哥,那么这…

[ES6] 箭头函数

JavaScript 是一种广泛使用的编程语言,随着其发展和演变,引入了很多新的特性来提高代码的可读性和开发效率。其中一个重要的特性就是 ES6(ECMAScript 2015)中引入的箭头函数(Arrow Function)。箭头函数不仅…

css---before和after伪元素

1.什么是伪元素 伪元素不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用如页面元素一样的CSS样式,表面上看上去貌似是页面的某些元素来展现,实际上CSS样式展现的行…

这样一位美丽的女子

在《生有热爱》这本书中看到这样一句话“斯人若彩虹,遇上方知有”,瞬间击中了我的灵魂,这句话完美的表达了我对爱人的情感。以前我总以为“遇上爱人是我这辈子最大的幸运”是我此生对爱人的完美表达,直到遇到这句话我才深刻体会到…

django models对应的mysql类型

Django模型字段类型与MySQL数据库类型的对应关系如下: Django 模型字段类型MySQL 数据库类型AutoFieldBIGINT UNSIGNEDCharFieldVARCHARIntegerFieldINTDecimalFieldDECIMALDateFieldDATEDateTimeFieldDATETIMEFileField, ImageFieldVARCHAR (用于文件路径)Boolean…

Python容器 之 字典--字典的遍历

字典存在 键(key), 值(value) , 遍历分为三种情况 1.遍历字典的键 循环拿到字典中的每个键名 # 方式一 for 变量 in 字典: print(变量) # 方式二 for 变量 in 字典.keys(): # 字典.keys() 可以获取字典所有的键 print(变量) my_dict {name: 小明, age: 18, sex: 男}…

Node.js的应用场景

Node.js具有广泛的应用场景,其基于Chrome V8引擎的JavaScript运行环境使得JavaScript能够运行在服务器端,极大地扩展了其应用范围。以下是Node.js的主要应用场景: 1. 服务器端开发 Web服务器和API服务器:Node.js非常适合构建服务…

Kamailio-Web管理页面Siremis的安装与部署

siremis 是针对于 Kamailio 的web管理接口,使用PHP书写,更新至2020年,相对不是太新但是是官方友链的 以下就采用 Ubuntu 22.04Siremis 5.8.0apache http server 2.4php7.0 如有疑问请参看官方指南 以下开始介绍操作步骤 安装apache2.4 we…

python转换其他分辨率的图片为固定分辨率的方法

**需求:**把其他分辨率转换成1920*960的分辨率,并保存下来 你可以使用Pillow库,这是一个非常流行的图像处理库。以下是一段示例代码,演示如何使用Pillow来调整图片的分辨率: from PIL import Imagedef resize_image(…

《艺术品交易导报》

《艺术品交易导报》 《艺术品交易导报》是由心海集团主管,北京心海文化艺术研究院主办的,鉴于国家的扶持政策和艺术品交易中心的崛起,为推动艺术品交易走向更加成熟和规范化道路而做的一份艺术品交易领域的专业报刊。在追求艺术品价值的同时…

学习一个新的知识点的五个状态

# 学习一个新的知识点的五个状态是: # 未知,接触,熟悉,模仿,创造。# 其中 接触 熟悉 模仿 是我们学习要经历的状态。 # 接触,主要是了解名称,有什么功能 # 熟悉,就是有功能如何使用…

【Qt项目学习--使用QTcpserver和libssh的区别】

很多Qt的教程都是基于QTcpServer实现的服务器客户端架构,而我想实现的用户名密码登陆,跟下来教程视频发现并没有实现,于是去了解libssh,实现IP地址登陆之后使用用户名密码实现。 libssh和QTcpServer之间的主要不同点:…

14-5 小语言模型SLM 百科全书

想象一下这样一个世界:智能助手不再驻留在云端,而是驻留在你的手机上,无缝理解你的需求并以闪电般的速度做出响应。这不是科幻小说;这是小型语言模型 (SLM) 的前景,这是一个快速发展的领域,有可能改变我们与…

MySQL数据库数据迁徙:从本地到Linux服务器

"男人的浪漫,绝对是拥有一台属于自己的服务器" MySQL数据库数据迁徙就两步:本地导出和服务器导入。 本地导出 本地导出的时候,需要注意你的CMD命令行必须是以管理员身份运行。如果你的计算机找不到mysqldump这个命令,…

移动端如何调试本地运行的前端项目

1.问题场景 本地通过Live Server开启服务,http://127.0.0.1:5500/html/test.html,调试移动端兼容性问题 2.解决办法 要在手机上访问电脑本地运行的服务http://127.0.0.1:5500/html/test.html,需要确保手机和电脑处于同一局域网内&#xff0…

Android手机拍照或从本地相册选取图片设置头像-高版本适配

GitHub传送门 问题点 Android 7.0 新增FileProvider 参考链接 图片裁减需要的临时权限 intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);Android 10 只能读取自己APP目录下的文件 Unable to open /storage/emulated…

三、Prometheus监控Tidb

1.下载node_exporter https://download.pingcap.org/node_exporter-v1.3.1-linux-amd64.tar.gz将其配置为系统服务: vim /usr/lib/systemd/system/node_exporter.service[Unit] Descriptionnode_exporter Documentationhttps://prometheus.io [Service] ExecStart…