Advertisement

数据挖掘流程总结及挖掘算法比较

阅读量:

一、数据前期探索

数据质量分析:

是数据预处理的前提

主要任务:检查原始数据中是否存在脏数据

脏数据是指不符合既定标准的数据,并且也包含无法进行深入分析的各类异常情况。具体来说主要包括以下几种情况:缺失值、异常观测值、分类不一致的数据以及重复记录等,并且这些数据还可能包含非标准字符(如特殊符号)的情况

1、缺失值处理方式:删除存在缺失值的记录; 对可能值进行插补; 不处理。

2、异常值(离群点)处理方式:

简单统计量分析(判断变量取值是否超出范围);

3artial

原则:如果数据服从正态分布,在

3artial

基于统计学原理,在测量数据集中,异常值被定义为超出一般性的波动范围的测定数值。

如果数据不服从正态分布,可以用远离平均值的多少倍标准差来描述。

箱型图分析:以四分位数和四分为距为基础判断异常值

3、一致性分析

不同数据源间的数据不一致现象的形成通常是在各个系统或数据库集成时出现。

数据特征分析:

1、分布分析:

定量数据:绘制频率分布直方图

定性数据:根据变量的分类来分组,绘制饼图和条形图

2、对比分析:绝对数比较、相对数比较

3、统计量分析:分析集中趋势、离中趋势

集中趋势度量:均值、中位数、众数

离中趋势度量:极差、标准差、变异系数、四分位数间距

4、周期性分析

5、贡献度分析

6、相关性分析:绘制散点图、计算相关系数


二、数据预处理

(可以使用 Hive 进行数据的导入,存储和预处理)

1、数据清洗

去除原始数据集中的非相关数据,并去除冗余样本以减少噪声干扰;剔除与挖掘主题无关的数据后进行处理缺失值和异常值的调整

缺失值:

三种处理方法:删除记录、数据插补、不处理

数据填补方法:拉格朗日插值法 (在Scipy库中可用函数):给定n个互不共线的数据点(其中无两点在一条直线上),我们可以构造一个次数不超过n-1的多项式,并使其恰好经过这些点。代入该多项式计算缺失点处的近似函数值。

复制代码
 data[u'a']=None  #置为空值

    
 data=data[data.notnull()]  #剔除空值
    
  
    
 if(data[i].isnull())[j]  #判断是否为空值

API参考资料:https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.lagrange.html#scipy.interpolate.lagrange]

进行记录删除操作:当原始数据集规模较大且缺失值的比例相对较低时,则可将其进行删除处理。

该文介绍了一种利用Hive、Scipy以及data.describe( )函数来处理数据空值的技术。具体而言,在数据分析过程中,首先需要识别数据中的缺失项;随后,在涉及数值型字段的情况下,默认选择将其替换为其所在数据集的平均值;对于非数值型字段,则可直接采用零填充的方式解决缺失问题。

异常值:(箱型图,data.boxplot( ))

处理方法:删除记录、平均值修正、不处理

2、数据集成

将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。

冗余属性识别:部分可以通过相关分析检测

单位不统一、同名异义、异名同义这几中情况的集成。

3、数据变换

对数据进行规范化处理、以转换成适用于挖掘任务及算法的形式。

简单函数变换:

包括平方运算、平方根计算、log transformation以及差分运算等技术。这些方法通常用于将原始数据中不符合正态分布的特征转换为符合正态分布的状态。

在时间序列分析中,差分运算有时可以将非平稳序列转换成平稳序列。

规范化(归一化):对于基于距离的挖掘算法尤为重要

通过减小各项指标之间由于量纲和取值范围的不同所造成的影响,对数据进行标准化处理,使其进入一个统一的标准区间,从而有助于综合评估

最小-最大规范化(min-max normalization),也称作基于偏差的标准化(standardization based on deviation),是一种针对原始数据的一种线性转换方式。这种技术能够确保经过处理后的数值被缩放到0到1之间。

/-data.min\(\)

Zero-zero-centered normalization: it is also known as standard scaling. After this process, the mean of the data is zero, and the standard deviation is one. It is commonly employed.

/data.std\(\)

3)、小数定标规范化:通过调整属性值的小数点位置,并使这些数值落在区间[-1,1]内;其中选择适当的小数值以确保数据范围的一致性。

data/10**np.ceil.max\(\)

连续属性离散化:常应用于分类算法(ID3算法、Apriori 算法)

分类算法通常要求数据呈现为分类属性的形式,在实际应用中常会遇到将连续型属性转化为离散型类别的问题,并这一过程被称为连续属性的离散化处理

过程:确定分类数 -> 将连续属性值映射到这些分类值

方法:等宽法、等频法、基于聚类分析的方法(如 K-Means**** 算法)

属性构造:

为了提取更有价值的信息,并深入挖掘更具层次感的模式以便进一步提高分析结果的质量与准确性 需要通过现有属性生成新的特征 并将其纳入现有属性集合中

小波变换:

小波变换在时域和频域都有表征信号局部特征的能力。

选择适当的Wavelet系数,并成功实现了对信号特征的提取。(Scipy提供了丰富的信号处理工具函数,并且PyWavelets是一个功能强大的信号处理库)

4、数据规约

通过数据规约生成规模更小但保留原有数据完整性的新数据集,从而对规约后数据分析与挖掘更为高效,并且显著减少了存储成本

属性归约:(常用方法包括决策树、主成分分析)

利用属性融合来生成新的维度,并通过剔除冗余属性来降低数据量

目标:识别出最少的属性子集,并保证新数据子集的概率分布尽量趋近于原来数据集的概率分布。

决策树归纳:直接删除不相关属性

主成分分析(Scikit_learn中的PCA函数):被用于对连续属性数据进行降维的方法。通常是在应用中选择一组新变量(称为主成分),这些新变量能够解释大部分数据变异性的数量少于原始变量的数量,并以替代原始变量来进行模型构建。

主成分分析 API REFERENCE:

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA

复制代码
 from sklearn.decomposition import PCA

    
  
    
 pca=PCA(3)   #选取 n_components=3
    
 pca.fit(data)
    
 pca.components_  #返回模型的各个特征向量
    
 pca.explained_variance_ratio_  #返回各个成分各自的方差百分比
    
  
    
 low_d=pca.transform(data)  #降低维度
    
 pd.DataFrame(low_d).to_excel(outputfile)  #保存结果
    
 pca.inverse_transform(low_d)  #必要时可以复原数据

相关系数矩阵:

复制代码
 data.corr( ) #相关系数矩阵

    
 data.corr( )[u'白灼生菜'] #只显示白灼生菜与其他菜式的相关系数
    
 data[u'a'].corr(data[u'b'])  #计算 a 与 b 的相关系数

去除重复元素:

复制代码
    data.unique()

数值归约:

通过选择替代的、较小的数据来减少数据量

方法:直方图、聚类、抽样、参数回归


三、挖掘建模

算法名称 具体算法 适用条件 算法描述 算法目的
回归分析 Logistic 回归 因变量一般有 1 和 0 两种取值 (Logistic) 研究的是当 y 取 “是” 发生的概率p与自变量 x 的关系。 用
lneft

和自变量建立线性回归模型,并估计模型中各变量的回归系数。|rlr.get_support() 1.提供特征重要性评估结果,在筛选出的关键特征上训练模型 2.通过量化分析确定预测目标与影响因素之间的具体关联关系|
|决策树|ID3 算法|仅适用于离散型变量;连续型属性需先进行离散化处理(ID3算法)|在决策树构建过程中采用信息增益作为选择标准,在非叶子节点上实现分类属性的选择目标|
|人工神经网络 ANN|BP 神经网络|基于训练样本数据调整网络参数以实现输出与目标值的高度一致性|BP算法通过正向传播计算输出误差并反向传播修正误差信息,在迭代更新权值的过程中逐步优化网络性能|
|支持向量机SVM|非线性映射+高维线性分类器|擅长分类与模式识别任务|||
|K-Means聚类算法|大数据集处理方案|基于最小化误差函数划分预设类别数量K;采用距离度量评估相似性程度|||
|关联规则挖掘|Apriori算法|通过最小支持度与最小置信度筛选出强关联规则|||
|时间序列分析中的ARIMA模型(差分自回归移动平均)|(ARIMA) |适用于差分平稳序列建模(若原始序列为单位根过程则需进行差分处理)|||
|RIMA 模型(多元线性回归形式)|(多元线性回归)|适用于平稳非白噪声序列建模|||

分类 有监督学习 分类模型建立在已有类标记的数据集上,计算模型在已有样本上的准确率 分类模型需要使用有类标记样本构成的训练数据
聚类 无监督学习 聚类是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。 聚类模型可以建立在无类标记的数据上

1.1、分类(有监督的学习)

主要目的是对离散型分类标签进行预测。通过构建一个分类模型,在给定输入样本的特征向量基础上确定对应的类别标签,并将每个样本映射到预先设定好的类别集合中。该分类模型是基于包含预设类别标签的学习数据集训练而成,并通过计算其在已有测试样本上的准确率来评估其性能表现。

1.2、预测

主要是建立连续值函数模型,预测给定自变量对应的因变量的值。

常用分类与预测算法:

回归分析

决策树

人工神经网络

贝叶斯网络

支持向量机

分类、预测分析步骤总结:

1.3、聚类(无监督的学习)

无监督的学习事先没有任何训练样本,而是直接对数据进行建模。

在划分类别时不同的是,在无需预先设定类别划分依据的情况下进行样本分组的一种方法

该算法接收一组未预先标记的数据作为输入,并通过计算数据间的相似性指标将它们分组成多个群体。分类标准则要求每个群体内部的数据点尽可能接近,而不同群体之间的数据点则应尽可能远离。

一般需要度量样本之间的距离、样本与簇之间的距离、簇与簇之间的距离。

常用的有哪些衡量样本之间相似程度的方法?包括欧几里得距离、曼哈顿距离以及闵可夫斯基距离等

K-Means:

复制代码
 from sklearn.cluster import KMeans

    
 model=KMeans(n_clusters=3,n_jobs=4,max_iter=500)   #聚类类别3,并发数4,最大循环次数500
    
 model.fit(data)

聚类分析步骤总结:

1.4、关联规则

Apriori 算法实现过程:

1.找出所有频繁项集:连接步与剪枝步相互融合

基于给定的支持度阈值参数 minimum support threshold ,我们从候选集中筛选出不符合标准的部分并将其去除,并生成包含所有符合条件的一项目前集合 L₁. 因为每个 frequent itemset 的所有非空子都必须是一个 frequent itemset ,所以需要检查并去除所有不满足条件的部分;接着通过自身连接生成候选项前集合C₂,并剔除不符合标准的部分以获得两项目前集合L₂. 进一步去除那些不属于两项目前集合的所有部分;依此类推直到最终获得最大的 k-个项目前集合 L_k.

提取出满足最小支持度阈值的最大项集 Lk后, 如果该集合又达到设定的 最小置信度阈值 , 则进一步挖掘出强关联规则

Apriori 算法主要性质:

频繁项集的所有非空子集也必须是频繁项集

支持度筛选主要步骤实现方法:

复制代码
 #创建连接数据,

    
 d_2=pd.DataFrame(list(map(sf,column)),index=[ms,join(i) for i incolumn]).T  
    
  
    
 #计算连接后的支持度
    
 support_series_2=1.0*d_2[[ms,join(i) for i in column]].sum()/len(d)               
    
                                           
    
 #剔除支持度小于最小支持度阈值的项集
    
 #剪枝,因为频繁项集的所有非空自己也必须是频繁项集,剪掉不符合条件的子集
    
 column=list(support_series_2[support_series_2>support].index)
    
 support_series= support_series.append (support_series_2)  #更新序列,连接L1+L2

1.5、时序模式

时间序列预处理:平稳性检验、纯随机性检验

参考链接:<>


四、算法评价

1、分类与预测:

为了准确评估一个预测模型的表现,通常采用未参与训练的数据进行验证能够达到预期效果

方法:

1.绝对误差、2.相对误差、3.平均绝对误差、4.均方误差

  1. root mean square error(RMS):代表了预测值的分散程度,在最优拟合模型中达到最小值 RMSE=0

6.kappa统计:反映一致性大小的”量“值,用于一致性、重现性检验。

7.识别准确度、8.识别精确度、9.反馈率:TP、TN、FP、FN

  1. ROC 曲线:表示分类器正确分类的概率、其数值越接近 1,则表明该算法的效果越好。具有较高的有效性。

混淆矩阵(Confusion Matrix):在模式识别领域中常见的一种表现形式。该工具通过展示样本数据真实属性与识别结果类型之间的关系来评估分类器性能的标准之一。

2、聚类分析:

评价标准:组内相似性越大,组间差别越大,聚类效果越好

方法:

purity 评价法:计算正确聚类数占总数的比例

RI评价法:应用排列组合原理进行评价。

F值评价法:基于 RI,

全部评论 (0)

还没有任何评论哟~