大家好,又见面了,我是你们的朋友全栈君。
数据挖掘的方法有哪些?
- 01 数据挖掘方法分类介绍
-
- 1. 预测性——有监督学习
- 2. 描述性——无监督学习
- 02 数据挖掘方法论
-
- 1. CRISP-DM方法论
- 2. SEMMA方法论
- 03 数据挖掘建模框架的3个原则
-
- 1. 以成本-收益分析为单一分析框架
- 2. 以分析主体和客体为视角
- 3. 构建全模型生命周期工作模板
数据挖掘是一个多学科交叉的产物,涉及统计学、数据库、机器学习、人工智能及模式识别等多种学科,如图1-4所示。
01 数据挖掘方法分类介绍
数据挖掘方法按照来源进行分类显得过于庞杂,而且不便于理解和记忆。按照其目的,将数据挖掘方法分为预测性和描述性两大类,如下所示。
目的:预测性
- 定义:有监督学习,分类模型,用一个或多个自变量预测因变量的值
- 举例:客户是否会违约是一个因变量,可以根据客户的性别、年龄、收入、职位、经济状况、历史信用状况等因素进行预测
- 主要算法:决策树、线性回归、逻辑回归、支持向量机、神经网络、判别分析等
目的:描述性
- 定义:无监督学习,分析具有多个属性的数据集,找出潜在的模式,没有因变量
- 举例:观察个体之间的相似程度,如根据年龄、性别、收入等因素进行客户细分。根据客户对多个产品的购买情况发现产品之间的相关性
- 主要算法:聚类、关联分析、因子分析、主成分分析、社交网络分析等
1. 预测性——有监督学习
预测性分析指的是用一个或多个自变量预测因变量的值,以历史数据为训练集,从中学习并建立模型,然后将此模型运用到当前数据上,推测结果。
以客户违约作为预测性分析的研究场景,客户是否会违约是一个因变量,我们可以根据客户的性别、年龄、收入、职位、经济状况、历史信用状况等进行预测。
根据商业案例,分类模型可分为三大类。
- 决策类,如银行卡欺诈检测、人体生物特征识别。
- 等级评定类,如客户信用评分。
- 估计类,如违约损失准备金估计、收入预测等。
有些数据挖掘算法在某类应用上表现得更好,如最近邻域法、支持向量机在决策类应用上表现良好,但是在解决排序类和估计类问题时表现一般。
而有些数据挖掘算法的表现比较稳定,如决策树和逻辑回归对三类问题都适用,但是在决策类问题上没有在后两类问题上表现好。
2. 描述性——无监督学习
描述性分析指的是分析具有多个属性的数据集,找出潜在的模式并进行分类。
描述性分析是一种无监督的学习过程。区别于有监督的学习,无监督学习算法没有参照指标,需要结合业务经验来判断数据分类是否正确。无监督学习比较耗时,而且对建模人员的业务素质要求较高。
描述性分析主要应用于以下两种场景:
- 第一种是观察个体之间的相似程度,如根据年龄、性别、收入等进行客户细分;
- 第二种是根据客户购买的多个产品发现产品之间的相关性,主要算法包括样本聚类、关联规则等。
02 数据挖掘方法论
下面讲解最为常用的CRISP-DM方法论
和SEMMA方法论
。
1. CRISP-DM方法论
CRISP-DM方法论由NCR、Clementine、OHRA和Daimler-Benz的数据挖掘项目总结而来,并被SPSS公司大力推广。CRISP-DM方法论将数据挖掘项目的生命周期分为6个阶段,分别是商业理解
、数据理解
、数据准备
、建模
、评估
、准备工作
,如图所示。
在实际项目进行过程中,由于使用者的目标背景和兴趣不同,有可能打乱各阶段顺承的关系。
上图呈现了CRISP-DM方法执行流程的6个阶段。各个阶段的顺序不是保持不变的,有时需要在某个阶段向前或向后移动,这取决于每个阶段的结果和下一个阶段的具体任务。箭头指出了各个阶段之间的关联。
在上图,最外圈的循环表示数据挖掘本身的循环特征。数据挖掘是一项持续的工作。在上一个流程和解决方案中获得的经验与教训,可以给下一个项目提供指导。下面简要介绍每个阶段的特点。
1)商业理解
该阶段的特点是从商业角度理解项目的目标和要求,通过理论分析找出数据挖掘可操作问题,制订实现目标的初步计划。
2)数据理解
该阶段开始于原始数据的收集,然后是熟悉数据、标明数据质量问题、探索对数据的初步理解、发掘有趣的子集,以形成对探索关系的假设。
3)数据准备
该阶段包括所有从原始的、未加工的数据构造数据挖掘所需信息的活动。数据准备任务可能被实施多次,而且没有任何规定的顺序。这些任务的主要目的是从源系统根据维度分析的要求,获取所需要的信息,同时对数据进行转换和清洗。
4)建模
该阶段主要是选择和应用各种建模技术,同时对参数进行校准,以达到最优值。通常,同一类数据挖掘问题会有多种建模技术。一些技术对数据格式有特殊的要求,因此常常需要返回到数据准备阶段。
5)评估
在模型最后发布前,根据商业目标评估模型和检查模型建立的各个步骤。此阶段的关键目的是,确认重要的商业问题都得到充分考虑。
6)准备工作
模型完成后,由模型使用者(客户)根据当时的背景和目标完成情况,决定如何在现场使用模型。
2. SEMMA方法论
除了CRISP-DM方法论,SAS公司还提出了SEMMA方法论。其与CRISP-DM方法论内容十分相似,流程为定义业务问题、环境评估、数据准备、循环往复的挖掘过程、上线发布、检视。其中循环往复的挖掘过程包含探索
、修改
、建模
、评估
、抽样
5个步骤,如图下图所示。
1)抽样
该步骤涉及数据采集、数据合并与抽样操作,目的是构造分析时用到的数据。分析人员将根据维度分析获得的结果作为分析的依据,将散落在公司内部与外部的数据进行整合。
2)探索
这个步骤有两个任务,第一个是对数据质量的探索。
变量质量方面涉及错误值(年龄=-30)、不恰当(客户的某些业务指标为缺失值,实际上是没有这个业务,值应该为“0”)、缺失值(没有客户的收入信息)、不一致(收入单位为人民币,而支出单位为美元)、不平稳(某些数据的均值变化过于剧烈)、重复(相同的交易被记录两次)、不及时(银行客户的财务数据更新滞后)等。
探索步骤主要解决错误的变量是否可以修改、是否可以使用的问题。比如,缺失值很多,平稳性、及时性很差的变量不能用于后续的数据分析,而缺失值较少的变量需要进行缺失值填补。
第二个是对变量分布形态的探索。
对变量分布形态的探索主要是对变量偏态和极端值进行探索。由于后续的统计分析大多是使用参数统计方法,这要求连续变量最好是对称分布的,这就需要我们了解每个连续变量的分布情况,并制定好变量修改的方案。
3)修改
根据变量探索的结论,对数据质量问题和分布问题涉及的变量分别做修改。数据质量问题涉及的修改包括错误编码改正、缺失值填补、单位统一等操作。变量分布问题涉及的修改包括函数转换和标准化,具体的修改方法需要与后续的统计建模方法相结合。
4)建模
根据分析的目的选取合适的模型,这部分内容在1.3节已经做了详细的阐述,这里不再赘述。
5)评估
这里指模型的样本内验证,即使用历史数据对模型表现的优劣进行评估。比如,对有监督学习使用ROC曲线和提升度等技术指标评估模型的预测能力。
03 数据挖掘建模框架的3个原则
笔者提出了数据挖掘建模框架的3个原则,即以成本-收益分析为单一分析框架、以分析主体和客体为视角构建全模型生命周期工作模板,将纷繁多样的数据挖掘应用主题归纳为3大分析范式和9大工作模板,如图下图所示。
1. 以成本-收益分析为单一分析框架
世上万事万物都具有矛盾的两面性,金融数据挖掘建模力图通过数据反映行为背后的规律,紧抓主要矛盾就是找寻规律的捷径。大家都知道,挖掘有效的入模特征是数据建模的难点。一旦我们了解了分析课题的主要矛盾,这个难点就迎刃而解了。下面讲解如何使用这个框架进行分析。
首先举3个例子。
- 信用评分模型中,是否逾期是被预测变量,而解释变量中经常出现的收入稳定性、职业稳定性、家庭稳定性、个人社会资本都是在度量客户违约成本。信用历史既是被解释变量的滞后项,也能反映违约成本。收益会用贷存比、贷收比、首付占比等指标来衡量。
- 申请欺诈模型的标签往往是客观存在的。入模特征以反映异常为主,比如异常高的收入、异常高的学历、异常密集的关系网络等。这背后隐藏着统一的成本-收益分析框架。之所以会显示异常,是因为造假是有成本的,信用卡申请欺诈者知道收入证明造假可以获得更高的信用额度,但是由于其居住地、职业和学历没有造假,因此按照这三个维度对其收入进行标准化之后很容易发现其收入异常。这可以说是公开的秘密,因为信用卡发放公司会根据造假成本对非可靠申请者进行授信,使得欺诈者无利可图。
- 运营优化模型比如资产组合的持仓问题,其收益是资产的收益率,而成本是该资产市场价格的波动率。建模人员需要选择收益-成本最优的组合。
2. 以分析主体和客体为视角
在数据挖掘建模中,定义标签是主体视角。比如营销预测模型中客户是否响应,是建模人员自己定的规则,这个规则有可能是收到营销短信后三天内注册账号并产生订单。
在构建入模的特征集时需要采用客体视角,比如手机银行的营销响应模型中,入模的特征应该反映客体的成本-收益的变量,比如年龄反映的是使用手机银行和去实体渠道的成本。
当建模人员意识到标签是自己主观臆断的时候,便会对该标签的选择更用心;当意识到入模的特征来自客体时,才会从客体的视角出发更高效地构建特征集。
3. 构建全模型生命周期工作模板
我们在CRIP-DM和SEMMA的基础上提出“高质量数据挖掘模型开发七步法”,如图1-19所示。
前三步是蓄势阶段,更多的是从业务人员、数据中吸收经验并形成感知。制作特征、变量处理和建立模型阶段是丰富特征、寻找有效模型的阶段,需要通过各种手段探查到最有效的特征和精度最高的模型。最后是模型输出阶段,选出的模型不但精度高,还要稳定性强。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148517.html原文链接:https://javaforall.cn