挖掘建模根据挖掘目标和数据形式可建立:分类与预测、聚类分析、关联规则、时序模式、偏差检测等模型
分类与预测是预测问题的两种主要类型,分类主要是:预测分类标号(离散属性);预测主要是:建立连续值函数模型,预测给定自变量对应的因变量的值。
(1)分类
分类是构造一个分类模型,输入样本属性值,输出对应类别,将每个样本映射到预先定义好的类别。
分类模型,建立在已有类标记的数据集上,因此,属于“有监督学习”
(2)预测
预测,指建立两种或两种以上变量间相互依赖的函数模型,进行预测或控制
(3)实现过程
分类算法:
a:学习步,通过归纳分析训练样本集建立分类模型得到分类规则;
b:分类步,先用已知的测试样本集,评估分类规则的准确率
预测模型:
a:通过训练集建立预测属性的函数模型
b:在模型通过检验后进行预测或控制
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-*-#逻辑回归自动建模importpandasaspd#参数初始化filename='../data/bankloan.xls'data=pd.read_excel(filename)x=data.iloc[:,:8].as_matrix()y=data.iloc[:,8].as_matrix()fromsklearn.linear_modelimportLogisticRegressionasLRfromsklearn.linear_modelimportRandomizedLogisticRegressionasRLRrlr=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%
决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性不同取值将其划分为若干个子集。
决策树构造的核心问题:在每一步如何选择适当的属性对样本做拆分。
决策树处理过程:对分类问题,应从已知类标记的训练样本中学习并构造出决策树,自上而下,分开进行解决。
ID3算法原理:
ID3算法流程:
(1)对当前样本集合,计算所有属性的信息增益;
(2)选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划分为同一个子样本集;
(3)若子样本集的类别属性只含有单个属性,则分支为叶子节点,判断其属性值并标上相应的符号,然后返回调用处;否则对子样本集递归调用本算法。
人工神经网络:模拟生物神经网络进行信息处理的一种数学模型。
人工神经网络的学习也称为训练,指的是:神经网络在受到外部环境的刺激下调整神经网络的参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。
分类预测时,人工神经网络主要使用有指导的学习方式,即根据给定的训练样本调整人工神经网络参数使网络输出接近于已知的样本类标记或其他形式的因变量。
分类预测时,常用的算法是:误差校正学习算法
误差校正算法,根据神经网络的输出误差对神经元的连接强度进行修正,属于有指导学习。
设神经网络中神经元i作为输入,神经元j为输出神经元,它们的连接权值为wij,则对权值的修正为△wij=ηδjYi,其中η为学习率,δj=Tj-Yj为j的偏差,即输出神经元j的实际输出和教师信号之差。
神经网络训练是否完成通过误差函数E衡量。当误差函数小于某个设定值时,停止神经网络训练。
误差函数计算:
人工神经网络算法
BP算法
BP算法的学习过程由:信号的正向传播及误差的逆向传播组成。
正向传播时,输入信号经过隐层的处理,传向输出层。
若输出层节点未能得到期望的输出,则转入误差的逆向传播。
逆向传播时,将输出误差按某种子形式,通过隐层向输出层返回,并分摊给隐层的节点与输入层节点,获得各层单元的参考误差,作为修改各单元权值的依据。
信号正向及逆向传播周而复始,不断修改权值,即神经网络的训练过程。
算法开始时,给定学习次数上限,初始化学习次数为0,对权值和阙值赋予小的随机数,一般在[-1,1]。
输入样本数据,网络正向传播,得到中间层与输出层的值,比较输出层的值与教师信号的误差,用误差函数判断误差是否小于误差上限。
若不小于误差上限,则对中间层和输出层权值和阙值进行更新
更新权值和阙值后,再次将样本数据作为输入,重复计算误差E。
算法结束两条依据:达到学习次数货误差达到预期
分类与预测模型对训练集进行预测,得到的准确率,不能很好的反映预测模型未来的性能
为有效判断一个预测模型的性能表现,需一组没有参与预测模型建立的数据集,并在该数据集上评价预测模型的准确率,这组独立的数据集叫测试集。
模型预测效果评价指标:
(1)绝对误差E与相对误差e
(2)平均绝对误差MAE
(3)均方误差MSE
(4)均方根误差RMSE
(5)平均绝对百分误差MAPE(一般认为MAPE小于10时,预测精度较高)
(6)Kappa统计
Kappa统计是比较两个或多个观测者对同一事物,或观测者对同一事物的两次或多次观测结果是否一致。Kappa统计量和加权Kappa统计量不仅可以用于无序和有序分类变量资料的一致性,重现性检验。
Kappa取值在[-1,+1]间时:
Kappa=+1,说明两次判断结果完全一致;
Kappa=-1,说明两次判断结果完全不一致
Kappa<0,说明一致程度比机遇造成的还差,两次结果很不一致,在实际应用中毫无意义
Kappa>0,说明有意义,Kappa越大,说明一致性越好
Kappa≥0.75,说明已经取得相当满意的一致程度
Kappa<0,说明一致程度不够
(7)识别准确度Accuracy
Accuracy=(TP+FN)/(TP+TN+FP+FN)
TP为正确的肯定表示正确肯定的分类数,TN为正确的否定表示正确否定的分类数;
FP为错误的肯定表示错误肯定的分类数,FN为错误的否定表示错误否定的分类数。
(8)识别精确率Precision
Precision=TP/(TP+FP)
(9)反馈率Recall
Recall=TP/(TP+TN)
(10)ROC曲线
(11)混淆矩阵
聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。
聚类模型建立在无类标记的数据上,是一种非监督的学习算法。
聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将其划分为若干组,划分原则是:组内距离最小化而组间距离最大化。
常用聚类方法:
常用聚类算法:
K-Means算法是典型的基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性评价指标,即认为两个对象的距离越近,其相似度越大。
(1)算法过程
a:从N个样本数据中随机选取K个对象作为初始的聚类中心;
b:分别计算每个样本到各个聚类中心的距离,将对象分配到距离最近的聚类中;
c:所有对象分类完成后,重新计算K个聚类的中心;
d:与前一次计算得到的K个聚类中心比较,若聚类中心发生变化,转过程2,否则,转过程5;
e:当质心不发生变化时,停止并输出聚类结果。
(2)数据类型与相似性变量
连续属性,先对各属性值进行零——均值规范,再进行距离计算。K-Means算法,一般需先度量样本间(欧几里得距离、曼哈顿距离、闵可夫斯距离),样本与簇间(样本到簇中心的距离)及簇与簇间距离(簇中心距离)。
文档数据,使用余弦相似性度量,先将文档数据整理成文档——词矩阵格式,再计算相似性
(3)目标函数
使用误差平方和SSE作为度量聚类质量的目标函数,对两种不同的聚类结果,选择误差平方和较小的分类结果。
连续属性的SSE
文档数据的SSE
簇Ei的聚类中心ei
聚类目标:实现组内对象相互间是相似的结果。
聚类评价:组内相似性越大,组间差别越大,聚类效果越好。
评价方法:
(1)purity评价法【计算正确聚类数占总数的比例】
xk表示第k个聚类的组合,x是聚类的集合,y表示需要被聚类的集合,yi表示第i个对象,n表示被聚类集合对象总数。
(2)RI评价法【排列组合原理对聚类进行评价】
R表示应该被聚在一类的两个对象被正确分类,W表示不应该被聚在一类的两个对象被正确分类,M表示不应该聚在一类的对象被错误归在一类,D表示不应该分开对象被错误分开
(3)F值评价法【RI方法衍生】
TSNE:聚类结果可视化工具
#-*-coding:utf-8-*-#接k_means.pyfromsklearn.manifoldimportTSNEtsne=TSNE()tsne.fit_transform(data_zs)#进行数据降维tsne=pd.DataFrame(tsne.embedding_,index=data_zs.index)#转换数据格式importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号#不同类别用不同颜色和样式绘图d=tsne[r[u'聚类类别']==0]plt.plot(d[0],d[1],'r.')d=tsne[r[u'聚类类别']==1]plt.plot(d[0],d[1],'go')d=tsne[r[u'聚类类别']==2]plt.plot(d[0],d[1],'b*')plt.show()3.关联规则关联规则目的:在一个数据集中,找出各项之间的关联关系。
A:关联规则的一般形式:
项集A、B同时发生的概率称为关联规则的支持度
项集A发生,则项集B发生的概率为关联规则的置信度
B:最小支持度和最小置信度
最小支持度:衡量支持度的一个阙值,表示项目集在统计意义上的最低重要性
最小置信度:衡量置信度的一个阙值,表示关联规则的最低可靠性
同时满足最小支持度阙值和最小置信度阙值的规则称为强规则
C:项集
项集是项的集合。包括k个项的项集称为k项集
项集的出现频率是所有包含项集的事务个数
若项集I的相对支持度满足预定义的最小支持度阙值,则I是频繁项集
D:支持度计数
项集A的支持度计数是事务数据集中包含项集A的事务个数,简称为项集的频率或计数
已知项集的支持度计数,则规则A→B的支持度和置信度易从所有事务计数、项集A和项集AUB的支持度计数推出
Aprior算法主要思想是:找出存在于事务数据集中的最大的频繁项集,在利用得到的最大频繁项集与预先设定的最小置信度阙值生成强关联规则
序列预处理:观察值序列的纯随机性和平稳性检验称为序列预处理
平稳非白噪声序列:通常是建立一个线性模型来拟合该序列的发展,借此提取该序列额有用信息。常用的模型是:ARMA(平稳序列拟合模型)。
非平稳序列:均值、方差不稳定,处理方法,将其转变为平稳序列,再进行分析。
(1)平稳性检验
单个随机变量X,可计算其均值(数学期望)μ、方差σ2
b:平稳性检验
时序图检验
单位根检验
(2)纯随机性检验
纯随机性检验,一般是构造检验统计量来检验序列的纯随机性。常用的检验统计量有Q统计量、LB统计量
(1)AR模型
(2)MA模型
(3)ARMA模型
C:估计模型未知参数的值并进行参数检验
D:模型检验
E:模型优化
F:模型应用,短期预测
(5)ARMA模型识别原则
(1)差分运算(具有较强的确定性信息提取能力)
p阶差分:相距一期的两个序列值之间的减法运算称为1阶差分运算
k步差分:相距k期的两个序列值之间的减法运算称为k步差分运算
(2)ARIMA模型
离群点分类:
二维、三维的数据可做散点图观察,大数据不适用,对参数选择敏感,具有全局阙值,不能处理具有不同密度区域的数据集
(1)丢弃远离其他簇的小簇,该过程可简化为丢弃小于某个最小阙值的所有簇。
(2)基于原型的聚类,该过程首先聚类所有对象,然后评估对象属于簇的程度,可用对象到它的簇中心的距离来度量属于簇的程度。
对于基于原型的聚类,有两种方法评估对象属于簇的程度(离群点得分)
a:度量对象到簇原型的距离,并用它作为该对象的离群点得分
b:考虑到簇具有不同的密度,可以度量簇到原型的相对距离,相对距离是点到质心的距离与簇中所有点到质心的距离的中位数之比。