数学挖掘系列(四):挖掘建模(一)
经过前期对数据的探索和预处理,我们建模前的准备工作已经做好,接下来就是如何根据目标需求来进行模型算法的选择。在数据挖掘中,我们常用到的数据模型有以下几类:
分类与预测 (有监督)
聚类分析 (无监督)
关联规则
时序模式
偏差检验
下面主要对前三种类型中常用的算法和Python中的函数实现进行总结。
1
分类与预测
分类和预测都是预测问题,分类主要是预测分类的标号(目标一般为离散属性),而预测主要是建立连续值的函数模型,预测给定自变量(x)对应的因变量(y)的值。
模型实现过程:
第一步学习,通过给定样本学习到分类规则
第二步分类,通过对测试集进行第一步学习到的模型验证,如果验证准确性到达要求,则使用该模型对需要分类的样本进行预测分类。
常用的分类与预测算法:
以上算法中应用比较多的是 逻辑回归,决策树,支持向量机,神经网络结合卷积在深度学习中应用比较广泛。
下面针对这几种算法做简单的介绍(详细的算法推导和原理之后会在机器学习算法的板块单独写出)和在python 中如何调用函数。
1
逻辑回归(Logistic Regression)
逻辑回归虽然名称为回归,但是是一个常用的分类模型,他的因变量只有1-0 两种取值。对于某个输入样本有K个独自自变量x1,x2,x3.....xk, 因变量y 取值为1 的概率为 P, 取0 的概率是1-p, 取 1和0 的概率之比为odds=P/(1-P), 对此进行对数变换
Logit(p)=ln(p/1-p) =z
则 p=1/(1+e-z) 即为Logistic函数。
P>0.5 则分类为1,否则为0。
Logistic 回归模型的建模步骤如下图:
模型检验的指标一般为: 正确率,混淆矩阵,ROC曲线, KS统计量等等。
Python 中的函数调用:
2
决策树
决策树方法在分类、预测、规则提取等领域有着广泛应用。
决策树是一树状结构。它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性上的不同取值将其划分成若干个子集。构造决策树的核心问题是在每一步如何选择适当的属性对样本做拆分。
常见的决策树算法:
详细的算法会在机器学习模块中讲解。
下面是Python中决策树函数的调用
3
常见的模型在Python中的实现
Python中调用函数建模的步骤一般为:
建立模型对象,设定模型参数(具体可见官方文档说明)
利用 fit 函数进行模型的训练
通过predict()方法预测结果
最后可以通过score()函数来评价模型预测效果
2
分类与预测算法评价
评价模型的预测效果是否达到挖掘目标的要求,通常不是简单的预测准确率可以衡量的。例如在做用户推荐时,更看重模型的查全率,做反欺诈模型时,更看重查准率。对于回归问题,一般均方误差指标来衡量模型的好坏。下面列出常用的几种评价指标以及计算方式。
1
均方误差(MSE)
2
Kappa 统计
此指标是衡量不同观测者对同一观测对象的观测结果,或者同一观测者多次对同一观测对象的观测结果是否一致。Kappa统计量可以对无序和有序分类变量的一致性和重复性进行检验。Kappa 统计量的大小是在[-1,1]之间。
Kappa= 1,说明两次判断结果完全一致
Kappa=-1, 说明两次判断结果完全不一致
Kappa=0, 说明两次判断结果是机遇造成。
Kappa
Kappa>0.75, 说明一致性程度相当好
Kappa
3
准确度(accruracy)、精确度(precision )、反馈率(召回率 recall )、ROC曲线
这几个是分类算法中最常用的评价指标,它只适用于二分类问题
正确率(预测的结果中正确的比例)
查准率 (预测结果为正例的准确比例)
查全率 (预测结果正确的结果中正例占得的比例)
查准率与查全率是一对矛盾的度量,一方值高了另一方值就会低。为了解决兼顾二者大小,我们一般用下面P-R曲线来衡量。
为了调和查准率和查全率,一般常用F1值来做平衡:
ROC曲线
roc 曲线是把学习器的预测结果对样例进行排序,越可能是正例就越排在前面,越可能是反例越排在后面。最后可以以某个“截断点”把样本分成l 两类,前一部分为正例,后一部分为反例。
在不同的任务中,根据需求来选择截断点。需要准确率高,就靠前位置截断,需要查全率高,可以选择较为靠后的位置进行截断。ROC曲线综合反映了学习器或者模型的泛化能力。ROC曲线纵轴是“真正例率”(TPR)),横轴是“假正例率 ”(FPR)
(所有正例中预测为正例的)
(所有反例中被预测为正例的)
AUC 面积
AUC 是ROC曲线下的面积求和。AUC 值越大越好。
Python中评价指标的调用
聚类算法与关联规则见下篇内容。
领取专属 10元无门槛券
私享最新 技术干货