本文总结下大数据挖掘的具体流程及落地细节,梳理下AI在数据挖掘中的应用。
一. 数据挖掘的目标与解决问题的分类
二. 数据挖掘的流程
1. 明确业务目标
深入了解业务背景知识,清晰明确的定义问题,知道要利用数据挖掘到达什么目标,以及如何量化的评估目标。
理解业务需求,将业务需求抽象为形式化的问题表示。形式化且量化的定义问题的解。
需要确定问题的类型,所有问题的分类在第一部分的图中已标出。
2. 准备数据
2.1 数据收集
按来源,数据分为:内部数据和外部数据
内部数据:公司内部的数据仓库
外部数据:如爬虫技术爬取的外部相关数据
按类型,数据分为:用户数据和商品数据
用户数据:用户属性数据,行为数据等,刻画用户的数据;
商品数据:商品属性数据,销售数据等,刻画商品的数据;
收集数据的方式:
内部数据,爬虫爬取,用户调查,数据公司购买;
2.2 数据清理
数据清理主要处理以下四种数据,异常数据,噪音数据,重复数据需要删除。
a) 属性有缺失的数据
依据在缺失值所在属性的重要程度以及缺失值的分布情况选择不同处理方式。
处理方式:全局常量填充,直接删除,插值法补值,建模法补值;
b) 异常数据
判断异常数据的常用方法,统计分析,聚类,基于密度,基于距离,基于模型检测;
c) 重复数据
找到重复数据的方式,对数据集排序并合并,看相邻项的相似程度,这里涉及两个步骤排序和计算相似度。
d) 噪音数据
噪音是被测变量的随机误差或者方差,可能是真实数据产生的,也可能是噪声带来的
检测噪音数据的方式有分箱法,回归,聚类
2.3 数据集成
在逻辑上或物理上合并来自多个数据源的数据。
数据集成要处理数据语义的多样性和结构的多样性。
数据集成需要处理的问题
实体识别问题:
是指从不同数据源识别出现实世界的实体,它的任务是统一不同源数据的矛盾之处。
如:同名异义,异名同义,单位不统一等。
属性冗余问题:
数据冗余,如:同一属性出现多次,同一属性命名不一致导致重复等。
相关分析也可检测出两个属性的蕴含关系。
处理方式:卡方检验,相关系数,协方差等
数据值冲突问题:
如,对于同一实体,来自不同数据源的属性值可能不同。属性也可能在不同的抽象层。
2.4 数据规约
对海量数据进行分析和挖掘需要大量时间,有时会不可性,分析海量数据的规约表示,得到少量数据,
对少量数据进行分析和挖掘,提高效率,又不影响挖掘效果。
降低无效,错误数据对建模的影响,提高建模的准确性;
少量但有代表性的数据能显著减少数据挖掘时间;
1) 维归约
使用数据编码和变换,规约数据
处理方式:小波变换,主成分分析。
2) 数量归约
用替代的、较小的数据表示形式替换原始数据。
处理方式有:
a) 回归或对数线性模型
多元线性回归:通过模型建立属性间的关系,并通过回归方程等进行拟合,求取相关的参数,这样在存取的时候只需要存取相关的模型参数,而不用存取实际数据,从而减少数据量。
对数线性模型:主要针对于近似离散的多维数据进行概率分布。
b) 直方图
c) 聚类:将数据对象聚类成群或簇,然后使用簇来替换原始的簇内数据对象,从而减少数据量
d) 抽样:聚类抽样,分层抽样
3) 数据压缩
数据采用“压缩”表示。适用于图像视频等多媒体数据。
分为有损压缩和无损压缩
无损压缩:原始数据可以从压缩后的数据重构,而不损失信息;反之是有损压缩
处理方式:
2.5 数据变换
将数据转换成适合于挖掘的形式。
1)平滑:去掉数据中的噪音
处理方式:分箱、聚类和回归。
2) 聚集:对数据进行汇总和聚集。例如,可以聚集日销售数据,计算月和年销售额。构造数据方。
3) 数据泛化
使用概念分层,用高层次概念替换低层次“原始”数据。例如,分类的属性,如street,可以泛化为较高层的概念,如city 或country。
4) 数据规范化
将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。
5) 属性构造
合并原属性构造新的属性并添加到属性集中,以帮助挖掘过程。
3. 建立模型
3.1 特征工程
特征工程作为学习模型的输入,主要有两个作用:
a) 减少特征数量,避免维度灾难,使模型泛化能力更强,减少过拟合;
b) 提高模型可解释性,增强对特征和特征值之间的理解;
特征工程可分为人工特征与机器特征。
a) 人工特征
指人为根据经验与技巧创建特征,这需要深刻理解业务,从实际角度出发,探索出好的特征;
b) 机器特征
指模型直接生成的特征,如PCA、神经网络特征等。
特征选择要考虑两个因素:
a) 特征的发散性
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分就没用。
b) 特征与目标的相关性
这点比较显见,与目标相关性高的特征,应当优选选择。除移除低方差法外,本文介绍的其他方法均从相关性考虑。
3种机器特征选择的方法:
1)过滤型
按照特征的发散性或者与目标的相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
特点:先选择特征,后训练模型(通常会指定需要特征的数目K);
处理方式:
a)方差选择法
使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。
b)相关系数法
使用相关系数法,计算各个特征对目标值的相关系数以及相关系数的P值。
c)卡方检验
经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量。这个统计量的含义就是自变量对因变量的相关性。
d)互信息法
评价定性自变量对定性因变量的相关性的。
2)嵌入型
使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。与过滤法类似,但是通过模型训练来确定特征的优劣。
特点:特征选取和模型的训练同时完成
处理方式
a)基于惩罚项的特征选择法
使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
基学习器通常选择逻辑回归LR。
b)基于树模型的特征选择法
树模型中GBDT可用来作为基模型进行特征选择。
还有普通决策树,随机森林(流行),逻辑回归、线性回归都可以当作正则化选择特征的基学习器,只有可以得到特征系数或者可以得到特征重要度的算法才可以作为嵌入式选择的基学习器。
3)包裹型
以最终使用的学习模型的性能作为特征子集的评价准则。是为最终使用的学习模型“量身定做”的特征子集。
针对每个单独的特征和响应变量建立预测模型,根据最终使用的学习模型的目标函数(通常是预测效果评分),每次选择若干特征或排除若干特征。
特点:以训练模型的结果优劣,评估特征选择是否恰当
处理方式:
递归特征消除法:递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。
过滤型 VS 嵌入型 VS 包裹型
a) 过滤式方法先对数据集进行特征选择,然后再训练学习器。特征选择过程与后续学习模型无关,这相当于先对初始特征进行“过滤”,再用过滤后的特征训练模型。
b) 包裹式从初始特征集合中不断的选择特征子集,训练学习模型,根据学习模型的性能来对子集进行评价,直到选择出最佳的子集。
c) 过滤式和包裹式特征选择方法中,特征选择过程是单独进行的,与学习模型训练过程分属两个阶段;
d) 嵌入式特征选择在学习模型训练过程中自动地进行特征选择。特征选择过程和模型训练同时完成;
e) 包裹式特征选择直接针对给定学习器进行优化。
优点是从最终学习器的性能来看,包裹式比过滤式更好;
缺点是特征选择过程中需要多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择要大得多。
3.2 数据集划分:测试集和训练集
时序问题,数据集顺序不可乱,否则会发生以未来预测过去的情况;
3.3 算法模型选择
根据业务目标所属问题分类,选择算法,不同问题分类的算法可见第一部分的图。
常用算法如,分类算法,预测算法,聚类算法,关联算法等。
目前单模型都不能得到很好的结果,都采用集成学习的理念,将模型进行融合。
集成学习两大原则:
a) 个体学习器之间强依赖关系、必须串行生成序列化方法,Boosting。
b) 个体学习器不存在强依赖关系、可同时生成的并行化方法,Bagging、RF。
3.4 确定模型评估标准
不同类型的算法有不同的评估标准,无监督学习目前没有统一的评估标准。
有监督学习
a) 回归预测模型的评估指标:
平均绝对误差(MAE),MAE,MSE
b) 分类模型的评估指标:
准确率,召回率,ROC曲线;
无监督学习
a) 聚类模型的评估:
距离度量和密度估计,概率分布,模型结果的易解释性,
3.5 构建模型
使用开源的机器学习包coding建模,如Sklearn
3.6 训练模型——调参
根据算法的不同,需要对算法的参数进行调整。
例如:KNN模型中调整K的值,或者深度神经网络算法调整隐藏层的数量等。
交叉验证确定最佳算法和参数:
在每次调整算法参数并实际生成模型之后,我们需要根据模型评估标准,记录模型的结果数据。这些结果数据将用来与其他的算法,以及同一个算法不同参数间的比较,确定最佳算法和参数。
模型训练结束后,输出最佳模型和参数。
4. 模型评估和解释
根据业务目标评估模型效果,若模型未达到业务目标,需要排查前面所有步骤。
用测试集多次测试模型,检查结果可再现性及稳定性。
对于无监督学习,业务目标在于发掘模式的模型,模式的评估可以通过模式兴趣度量来进行,
一个模式是有趣的,则它具有以下几个特征:
a) 易于被人理解;
b) 在某种确信度上,对于新的或检验数据是有效的;
c) 是潜在有用的
d) 是新颖的
模式兴趣度的两种度量
a) 客观度量
这个度量方法基于所发现模式的结构和关于它们的统计量。
如,关联分析中发掘出的一种模式:x→y的关联规则,
一种客观度量是规则的支持度,表示事务数据库中满足规则的事务所占的百分比。
另一种客观度量是置信度,它评估所发现的规则的确信程度。
关联规则的一般地,每个兴趣度度量都与一个阈值相关联,该阈值可以由用户控制。
b) 主观独立
主观兴趣度度量基于用户对数据的期望。
这种度量发现模式是有趣的,如果它们是出乎意料的(与用户的期望相矛盾),或者提供用户可以采取行动的至关重要的信息。在后一种情况下,这样的模式称为可行动的(actionable)。
意料之内的模式也可能是有趣的,如果它们证实了用户希望证实的假设,或与用户的预感相似。
其他兴趣度度量包括分类(IF-THEN)规则的准确率和覆盖率。
5. 结果部署
模型部署到生产环境后,脚步控制流程化执行。
监测模型各环节的运行情况,检查模型结果是否准确,是否满足预期的业务目标。