挖掘建模根据挖掘目标和数据形式可建立:分类与预测、聚类分析、关联规则、时序模式、偏差检测等模型
1.分类与预测
分类与预测是预测问题的两种主要类型,分类主要是:预测分类标号(离散属性);预测主要是:建立连续值函数模型,预测给定自变量对应的因变量的值。
1.1 实现过程
(1)分类
分类是构造一个分类模型,输入样本属性值,输出对应类别,将每个样本映射到预先定义好的类别。
分类模型,建立在已有类标记的数据集上,因此,属于“有监督学习”
(2)预测
预测,指建立两种或两种以上变量间相互依赖的函数模型,进行预测或控制
(3)实现过程
分类算法:
a:学习步,通过归纳分析训练样本集建立分类模型得到分类规则;
b:分类步,先用已知的测试样本集,评估分类规则的准确率
预测模型:
a:通过训练集建立预测属性的函数模型
b:在模型通过检验后进行预测或控制
1.2 常用分类与预测算法
算法名称 | 算法描述 |
回归分析 | 回归分析,确定预测属性与其他变量间相互依赖的定量关系。包括:线性回归、非线性回归、Logistic回归、岭回归、主成分回归、偏最小二乘回归等模型 |
决策树 | 决策树采用自顶向下的递归方式,在内部节点进行属性值比较,并根据不同的属性值从该节点向下分支,最终得到的叶节点是学习划分的类 |
人工神经网络 | 人工神经网络是一种模仿大脑神经网络结构和功能而建立的信息处理系统,表示神经网络的输入与输出变量之间关系的模型 |
贝叶斯网络 | 贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一 |
支持向量机 | 支持向量机是一种通过某种非线性映射,把低维的非线性可分转化为高维的线性可分,在高维空间进行线性分析的算法 |
1.3 回归分析
回归模型名称 | 适用条件 | 算法描述 |
线性回归 | 因变量与自变量是线性关系 | 对一个或多个自变量和因变量间的线性关系进行建模,可用最小二乘法求解模型系数 |
非线性回归 | 因变量与自变量间不都是线性关系 | 对一个或多个自变量和因变量间的非线性关系进行建模。若非线性关系可通过简单的函数变换转化成线性关系,用线性回归的思想求解,若不能转化,用非线性最小二乘法求解 |
Logistic回归 | 因变量一般有1和0(是、否)两种取值 | 广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0、1之间,表示取值为1的概率 |
岭回归 | 参与建模的自变量间具有多重共线性 | 是一种改进最小二乘估计的方法 |
主成分回归 | 参与建模的自变量间具有多重共线性 | 主成分回归是根据主成分分析的思想提出的,是对最小二乘法的改进,它是参数估计的一种有偏估计。可消除自变量间的多重共线性 |
Logistic回归建模步骤:
(1)根据分析目的设置指标变量(因变量和自变量),收集数据,根据收集到的数据,对特征(y,x1,x2....xp)进行筛选
(2)y=1时,概率p=P(y=1|X);y=0,概率为1-p。用In(p/(1-p))和自变量列出线性回归方程:In(p/(1-p))=β0+β1x1+.....+βpxp+ε
(3)估计回归系数
(4)进行模型检验
(5)模型应用:输入自变量的取值,得到预测变量的值或根据得到预测变量的值取控制自变量的取值
利用Scikit-Learn逻辑回归分析步骤:
首先,进行特征筛选,
特征筛选方法:
a:通过F检验给出各个特征的F值和p值,筛选变量(选择F值大或p值小的特征);
b:递归特征消除:主要思想是反复构建模型,选出最好的(最差的)特征(可根据系数来选),将选出的特征放在一边,在剩余的特征里重复这个过程,直至遍历所有特征。
该过程中特征被消除的次序即是:特征的排序。因此,也是一种寻找最优特征子集的贪心算法。
c:稳定性:一种基于二次抽样和选择算法相结合较新的方法,主要思想是:在不同的数据子集和特征的子集上运行特征选择算法,不断重复,最终汇总特征选择结果。
然后,利用筛选后的特征建立逻辑回归模型,输出平均正确率
#-*- coding: utf-8 -*- #逻辑回归 自动建模 import pandas as pd #参数初始化 filename = ‘../data/bankloan.xls‘ data = pd.read_excel(filename) x = data.iloc[:,:8].as_matrix() y = data.iloc[:,8].as_matrix() from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR rlr = RLR() #建立随机逻辑回归模型,筛选变量 rlr.fit(x, y) #训练模型 rlr.get_support() #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 print(u‘通过随机逻辑回归模型筛选特征结束。‘) print(u‘有效特征为:%s‘ % ‘,‘.join(data.columns[rlr.get_support()])) x = data[data.columns[rlr.get_support()]].as_matrix() #筛选好特征 lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print(u‘逻辑回归模型训练结束。‘) print(u‘模型的平均正确率为:%s‘ % lr.score(x, y)) #给出模型的平均正确率,本例为81.4%
1.4 决策树
决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性不同取值将其划分为若干个子集。
决策树构造的核心问题:在每一步如何选择适当的属性对样本做拆分。
决策树处理过程:对分类问题,应从已知类标记的训练样本中学习并构造出决策树,自上而下,分开进行解决。
决策树算法 | 算法描述 |
ID3算法 | 核心:在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所应采用的合适属性。 |
C4.5算法 | C4.5决策树生成算法相对于ID3算法的重要改进:使用信息增益率来选择节点属性。C4.5可客服ID3算法的不足:ID3算法只适用于离散的描述属性,而C4.5算法既能处理离散的描述属性,也可处理连续的描述属性 |
CART算法 | CART决策树是一种非参数分类和回归方法,通过构建树、修剪树、评估树来构造一个二叉树。当终结点是连续变量时,该树为回归树;当终结点是分类变量,该树为分类树 |
ID3算法原理:
ID3算法流程:
(1)对当前样本集合,计算所有属性的信息增益;
(2)选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划分为同一个子样本集;
(3)若子样本集的类别属性只含有单个属性,则分支为叶子节点,判断其属性值并标上相应的符号,然后返回调用处;否则对子样本集递归调用本算法。