数据挖掘建模实战

article/2025/9/26 22:43:57

什么是数据挖掘

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

听起来比较抽象,我们举个例子。

傍晚小街路面上沁出微雨后的湿润,和煦的细风吹来,抬头看看天边的晚霞,嗯,明天又是一个好天气。走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,心里期待着享受这个好瓜。

由路面微湿、微风、晚霞得出明天是个好天气。根蒂蜷缩、敲声浊响、色泽青绿推断出这是个好瓜,显然,我们是根据以往的经验来对未来或未知的事物做出预测。

人可以根据经验对未来进行预测,那么机器能帮我们做这些吗?

能,这就是数据挖掘。

“经验”通常以“数据”的形式存在,数据挖掘的任务就是从历史数据(之前挑瓜的经历,注意是经历还不是经验)中挖掘出有用的“知识”,也就是所谓“模型”(现在就形成经验了),在面对新情况时(未抛开的瓜)模型就可以用来预测(是不是好瓜)。

用高中生能理解的数学语言来讲,数据挖掘建模任务的本质就是,根据一些历史已有的、从输入空间 X(如 {[色泽青绿;根蒂蜷缩;敲声浊响],[色泽乌黑;根蒂蜷缩;敲声沉闷],[色泽浅白;根蒂硬挺;敲声清脆]} )到输出空间 Y(如 {好瓜,坏瓜,坏瓜})的对应,找出一个函数 f,来描述这个对应关系,这个函数就是我们要的模型。

有了模型之后再做预测就简单了,也就是拿一套新 x,用这个函数算一个 y 出来就完了。

那么,模型又是怎么建立出来,也就是这个函数是怎么找出来的呢?

想想如何让一个人拥有判断瓜好坏的能力呢?

需要用一批瓜来练习,获取剖开前的特征(色泽、根蒂、敲声等),然后再剖开它看好坏。久而久之,这个人就能学会用剖开前瓜的特征来判断瓜的好坏了。朴素地想,用来练习的瓜越多,能够获得的经验也就越丰富,以后的判断也就会越准确。

用机器做数据挖掘是一样的道理,我们需要使用历史数据(用来练习的瓜)来建立模型,而建模过程也被称为训练或学习,这些历史数据称为训练数据集。训练好了模型后,好像发现了数据的某种规律,就可以拿来做预测了。

也就是说,数据挖掘是用来做预测的,而要做到这种预测,需要有足够多已经有结果的历史数据为基础。

数据挖掘能干什么

那么,这种预测技术如何应用在我们的生产销售过程中呢?

以贷款业务为例,金融机构要做风险控制,防止坏帐,就要在放贷前知道这个贷款人将来不能按时还款的风险,从而决定是否放贷以及贷款利率。

要做到这件事,我们要有一定数量的历史数据,也就是以前贷款人及贷款业务的各种信息,比如贷款人的收入水平、受教育程度、居住地区、信用历史、负债率等等可能会影响违约率的因素,还有贷款本身的金额、期限、利率等等。

然后就可以使用数据挖掘技术建立模型来寻找用户及贷款的各种信息 X 和是否会发生违约 Y 之间的关系。

建好的模型可以用来预测,及时发现高风险用户。

需要说明的,数据挖掘模型的预测并不能保证 100% 准确(比如再有经验的瓜农也有选错瓜的时候),如果只有一例目标(比如只有一笔贷款)需要预测时,那就没有意义了。但通常,我们都会需要预测很多例目标,这样即使不是每一例都能预测正确,但能保证一定的准确率,这仍然是很有意义的。

对于贷款业务,模型找出来的高风险客户未必都是真的,但准确率只要足够高,仍然能够有效的防范风险。

数据挖掘技术的应用非常广泛,比如工业领域中可以根据历史生产数据来预测良品情况,从而改进工艺参数降低不良率;畜牧业可以使用数据挖掘技术根据测量牲畜体温来预测牲畜是否生病,从而提前防治;医院也可以使用历史医疗记录基于数据挖掘技术找出关联规律,帮助医生更好地诊断疾病。

总之,只要是有数据有场景几乎都会考虑用数据挖掘解决某些问题。

数据挖掘需要哪些流程

通常一个完整的数据挖掘项目包含业务理解、数据理解、数据准备、数据预处理和建模、模型评估、模型部署应用。

业务理解的主要工作有需求调研,了解商务背景;明确业务目标和成功的标准。数据理解和业务理解一般是同时进行的,主要内容包括确定建模所需要的数据,描述数据,探索数据,检验数据质量,明确数据挖掘目标和成功标准。这两个阶段的主要任务就是明确挖掘目标和建模数据,目标和数据都明确以后就可以开始着手准备数据。

数据准备的主要工作包括选择数据、清洗数据、构造数据、整合数据、格式化数据等等。如果企业的数据仓库建设比较完善,那么这个步骤的工作就非常简单,只需要做一些数据筛选,表间关联工作即可。反之,如果数据都是一些非常原始的数据比如日志数据、流水数据,数据准备这部分就比较耗费时间和精力了,需要做很多数据汇总,特征提取的工作。

数据预处理和建模,这个环节是整个项目中技术难度最大的部分,通常必须由专业的挖掘工程师来完成。虽然,通俗地看,建模就是我们前面说过的在挑瓜过程中积累经验的事情,但实际上针对大量数据时仍然非常复杂。不同类型的数据和不同的预测目标会有不同的积累经验方案,也就是不同的算法。业界有数十种数据挖掘的算法,各有各的适应场景和数据要求以及参数,都需要根据实际情况来选择使用和准备数据并调整参数。这个阶段的主要工作有:样本选取,确定训练样本和测试样本、数据预处理、模型算法技术选型、筛选变量、模型训练、模型测试等。

需要理解的是:(1)数据预处理是非常有必要的,好的预处理往往比单纯的调参更能提高模型性能;(2)预处理和建模过程并非一次性执行完毕就大功告成了,需要不断的迭代优化,才能获得比较理想的结果。

模型评估,是对模型进行较为全面的评价的过程,计算模型的各种指标,比如 AUC,Gini,KS,Lift,模型稳定性等等,这样才能判断出建出来的模型是不是足够好。然后再进行模型的业务应用测试,判断是否能实现商业目标。模型合格后,就可以部署应用,即把数据挖掘的成果部署到商业环境,应用于生产活动。

普通人能用数据挖掘做预测吗?

既然,数据挖掘是一项很实用的技能,那么普通人能学会吗?

从数据挖掘的流程来看,最难掌握的就是数据预处理和建模部分,而其他部分看起来专业术语也不少,但只要稍加学习都能掌握,没什么技术难度。

为什么说预处理和建模部分难学。因为这部分对数学能力的要求较高,一般只有统计学或数学相关专业的人士才具备相关的能力,普通人要想掌握,需要学习很多数学相关的课程,比如,概率论,数理统计,线性代数,随机过程……,这些知识是难以速成的。

虽然在 Python 里有很多现成的算法包,通过调包也能建出模型,但不懂得数学原理模型效果又如何保证呢?比如精确度不好,或者不稳定。如果没有充分的数学知识就不知道如何改进,只能无方向的随机尝试,如同大海捞针。

例如,5% 的顾客没有指定年龄,是整体忽略该变量,还是忽略这部分有缺失的样本,又或者是将缺失值补充完整(使用平均值填充还是中位数填充又或者更复杂的方法的填充),或者是训练一个带这个特征的模型,再训练一个不带这个特征的模型。同样是缺失值处理,当缺失率为 90% 时,是否还采用相同的处理方法呢。

再例如,高基数变量如何处理,数据噪音如何处理,不平衡样本,高偏数据,各种模型参数……

这些都需要建模师结合自己的知识和经验反复的去调试。要知道,有专业知识的选手其实也会用这些现成的函数包,但建一个好模型通常仍然要几天甚至数周时间,其中大部分时间都是在不断地调整优化。并不是把数据往算法里一丢就完事的。

虽然有了封装好的算法,要学会数据挖掘,也还是要学数学,学算法。这事在培训班中速成是没有戏的。

那么,对于普通人来说还有没有什么办法不学这些晦涩难懂的知识也能做数据挖掘呢?

答案是,有的。那就是利用工具,自动数据挖掘工具。自动数据挖掘工具将建模所需要知识和流程整合起来,这样就可以利用前人的知识自动建模和预测了。借助自动建模工具,我们只需要完成业务理解,数据准备过程,剩下的难度较大,并且需要反复迭代进行的建模过程尽可交给工具来完成。

这样解决掉最难的部分,剩下的环节就容易多了,只要熟悉业务,了解一些基本概念,就能够用数据挖掘做预测了。

有哪些简单易用的数据挖掘工具?

既然工具可以帮助我们解决技术难度最大的部分,那么有哪些好用的自动建模工具可以供大家使用呢?

实际上市面上已经有不少很受欢迎数据挖掘工具,比如 weka,rapidminer,knime 等,不过大部分的工具还是比较沉重,安装使用都比较复杂。这里向大家推荐一款无基础人士也能用的简单工具:由国内著名数据软件公司润乾出品的易明建模

易明建模采用的是全自动化的建模流程,只需一键式的操作就能够自动进行预处理和模型搭建。什么缺失值,异常值,高基数变量,时间特征……统统不用担心,还有算法选择,参数寻优等,易明建模都会自动帮你搞定。

在算法种类方面易明建模涵盖了常用的机器学习算法,比如线性回归,逻辑回归,树类算法,集成算法,pca 等,能够解决分类问题,回归问题和时间序列问题,大部分的商业场景问题都能用。

在模型质量方面,易明建模拥有顶级科学家的经验和理论,并且经过了大量的实践验证。远超培训班选手,能够达到中上等数据挖掘师的水平。当然作为一个通用的数据挖掘软件,和苦读 N 年的专业选手精心调出来的模型可能还会稍差一些,但对于大多数的场合已经足够用了。

易明建模还有一大亮点,就是耗费资源少,建模速度快。百万级的样本量,PC 机也能跑,万级的样本量,更是几分钟就搞定。当然巧妇难为无米之炊,如果数据量太少也是不行的。

借助易明自动建模,普通人也能做数据挖掘,重要的是,这么好用的软件竟然还是免费的,免费的羊毛不薅白不薅。直接到润乾的官网上就可以下载。

虽然借助自动建模可以省去学习算法原理的过程,但是数据挖掘流程的其它部分也还是需要了解一些基本的知识,起码要学会评估模型,知道我们建出的模型到底好不好。

比如模型质量,因为是用于预测,我们很容易简单地想像可以用准确率来评估,然而并不是。数据挖掘模型的质量通常会用一个叫做 AUC 的指标来评估,比单纯一个准确率复杂得多。不同的场景侧重的指标也不相同,比如还有查全率,提升度等。如果是回归问题则需要用 mse, rmse, ……来评估。如果这些都不懂,那样就算能建出模型也是一头雾水。

好在,这些东西虽然听起来有点复杂,但其实学起来并不难,只要有高中数学基础,花一两周时间就能理解学会了,这属于可速成的知识。和学数学,学算法相比,相当于打了一个粉碎性折扣。

这里有一套课程可以看http://www.raqsoft.com.cn/wx/course-data-mining.html,从零开始,深入浅出讲解数据挖掘的基础概念和实用知识,特别偏重从应用的角度教大家如何做数据挖掘,课程中的一些案例也来源于真实业务场景,很适合没什么基础的人看。


http://chatgpt.dhexx.cn/article/ls04djYk.shtml

相关文章

数据挖掘—数据探索

文章目录 数据探索数据探索的角度1 数据质量分析缺失值分析异常值分析一致性分析 2 数据特征分析分布分析对比分析统计量分析周期性分析贡献度分析相关性分析 数据探索 根据观测、调查收集到初步的样本数据集后,接下来要考虑的问题是: 样本数据集的数量…

数据分析项目实战——Airbnb数据分析

爱彼迎官网: 1、业务背景与分析目的 Airbnb是一款短租产品,作为旅行者和房东之间的媒介颠覆了酒店行业。目前,Aribnb作为短租产品的头部品牌,业务涉及到190个国家的34,000 个城市。 在Airbnb发展如此迅速的同时,是否…

一个企业级数据挖掘实战项目|教育数据挖掘

数据集描述 本案例数据集来自Balochistan的6000名学生。其基本情况:一共13个字段,其中RESULT为结果标签; 语言字段是经过独热编码后的四个字段,分别为Lang1, Lang2, Lang3, Lang4; 另外性别、学校、是否残疾、宗教信仰…

二、大数据实践项目——数据分析与处理

一、数据处理主要任务 二、数据集处理 1、查看数据集基本情况 调用 info() 函数来查看数据data的基本情况,包括数据维度,字段名称和类型以及有无缺失值,数据占用内存等。(以下为部分字段信息) 可见总的数据47447行&a…

数据挖掘项目总结文档

数据挖掘项目总结文档 1、文档概述 1.1 编写目的 记录本次实验思路及流程,备忘用。 1.2 适用对象 个人学习总结,描述有偏差之处陆续更进。 2、业务理解与分析定义 2.1 需求概述 针对传统网络入侵检测系统存在的误判以及漏检情况,采用数据挖掘…

数据挖掘开源项目立项

项目背景 因为最近一直都在搞数据挖掘类的项目,且现在国内的大数据潮火热。在前几天与群里的几位兄弟聊天所以有了做一个开源项目的想法,以前也搞过一个开源的项目,当时只是想把权限集中化做一下,项目的名称和地址是: …

数据挖掘项目(1)对数据进行探索和分析

1.数据类型的分析(假设数据为data.csv) 首先读入数据,这个数据是csv格式,可以用pandas来读,如果读不进来的时候,可以用记事本打开data.csv然后另存为data_2.csv并且保存为utf-8的编码格式。然后读取数据。…

python数据挖掘项目——航空公司客户价值分析(详解)

一、选题背景 信息时代的来临使得企业营销的焦点从产品中心转变为客户中心,客户关系管理成为企业的核心问题,客户关系管理的关键问题是客户分类,通过客户分类,区分不同客户的价值,企业针对不同价值的客户制定个性化的服…

网络通信协议分类

协议分类 通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。 java.net 包中提供了两种常见的网络协议的支持&#…

各种基础协议

了解几个概念: 1. HTTP 协议:基于TCP协议,超文本传输协议,对应于应用层,用于如何封装数据.。也就是在底层是基于socket, http只不过是在收发数据的时候定义了很多规则,http头信息之类。 TCP/I…

TCP协议格式

1、16位源端口号:16位的源端口中包含初始化通信的端口。源端口和源IP地址的作用是标识报文的返回地址。 2、16位目的端口号:16位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。 3、32位序号:32位的序列号由…

以太网各种协议详解

板子处于复位状态时,先做好一系列的准备工作。 1、从EEROM中读取板子的MAC 地址(事先已经写在地址0xFA to 0xFF 中了)。 2、配置PHY 寄存器,并读取该寄存器的值,检查一下,此时的寄存器配置时候是合理的&am…

汽车通信协议系列1_通信协议类型

当前比较通用的五种协议,任何一款标准OBD2的车辆都会采用以下五种协议中的一种。以下几种按照物理层编码相关性来划分 ISO9141,ISO 14230.这类是以UART为基础的。 CAN ISO 11898(车载网络),ISO15768,SAE J…

网络协议分类

Http协议:应用层。 tcp/udp协议:传输层。udp提供不可靠通信:无流控等。 ip协议:网络层。 TCP/IP是是一套协议族,是一种说法,由早期的某标准化组织制定,规定了使用tcp和ip等一系列协议的规范。…

IP协议及分类

文章目录 TCP/IP协议IP地址分类默认子网掩码网关公有IP地址和私有IP地址 基本环境设置连网介质及设备重点 TCP/IP协议 TCP/IP通信协议是目前最完整、最被广泛支持的通信协议,它可以让不同网络架构、不同操作系统的计算机之间通信,是Internet的标准通信协…

常见的协议汇总(小白个人理解,大佬勿喷)

背景 接触了一些芯片,发现所有的芯片而言,库和API接口随着芯片,开发环境甚至开发情况,公司都有着明显的区别。基于这种情况的话,了解协议的底层个人觉得是十分必要的,同时也是找工作的必备选项。所以对常见…

常用协议类型值

Ethertype ( 十六进制 ) 协议 0x0000 - 0x05DC IEEE 802.3 长度 0x0101 – 0x01FF 实验 0x0600 XEROX NS IDP 0x0660 0x0661 DLOG 0x0800 网际协议(IP) 0x0801 X.75 Internet 0x0802 NBS Internet 0x0803 ECMA Internet 0x0804 Chao…

TCP协议格式和特点

文章目录 1.协议格式:2.协议特性:2.1 面向链接2.1.1三次握手建立连接2.1.1四次挥手断开连接相关问题和知识点:1. 握手为啥三次,挥手是四次?2. 三次握手失败两端是如何处理的?3. SYN泛洪攻击是怎么回事?4. …

典型几种协议(协议以及作用)

一 .典型协议: 传输层: 常见的协议有 TCP/UDP 协议 应用层: 常见的协议有 HTTP,FTP 协议 网络层: 常见的协议有 IP 协议,ICMP 协议,IG…

ICMP协议 详解,ICMP协议的功能及实现原理,ICMP协议报文类型。

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》 ICMP协议 一、工作原理二、数据报格式三、报文类型 ICMP协议是IP的…