夜的独白

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

完整的数据分析、挖掘流程简介

这是在一次面试过程中遇到的一个问题,自己回答了个大概,但是缺少了一部分的东西,所以就抽时间查阅了一些相关的资料来总结了一下,也算是自己的一个学习过程了,将学习总结的内容以markdown笔记的形式记录下来,仅做学习参考使用。

一个完整的数据分析或者是数据挖掘过程包括许多个不同的阶段,每个阶段的作用都不相同但却密不可分,下面简单对自己理解总结的一个完整的分析挖掘流程中的各个阶段进行简单介绍。

一个完整的分析挖掘流程大致包括以下几个方面:

  • 业务建模
  • 经验分析
  • 数据准备
  • 数据提取
  • 数据探索
  • 数据处理
  • 数据建模
  • 模型评价
  • 数据分析报告输出

业务建模阶段

业务建模(Business
Modeling)是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及它们的属性、行为和彼此关系,业务建模强调以体系的方式来理解、设计和构架企业信息系统。
业务建模(Business
Modeling)是一种建模方法的集合,目的是对业务进行建模。这方面的工作可能包括了对业务流程建模,对业务组织建模,改进业务流程,领域建模等方面。

经验分析阶段

经验分析阶段主要是对待执行的分析挖掘任务进行简单的梳理评估,依据就是基于自己以往完成的数据分析或者是挖掘类的任务,对任务的异同点进行对比分析,初步理出思路。

数据准备阶段

数据准备阶段主要是完成数据的获取工作,这里的获取可以是对指定源库中数据的采集也可以是基于爬虫的网络数据采集等等。
了解数据采集的意义在于真正了解数据的原始面貌,包括数据产生的时间、条件、格式、内容、长度、限制条件等。这会帮助数据分析师更有针对性的控制数据生产和采集过程,避免由于违反数据采集规则导致的数据问题;同时,对数据采集逻辑的认识增加了数据分析师对数据的理解程度,尤其是数据中的异常变化。
在数据采集阶段,数据分析师需要更多的了解数据生产和采集过程中的异常情况,如此才能更好的追本溯源。另外,这也能很大程度上避免“垃圾数据进导致垃圾数据出”的问题。
该阶段的主要目的就是为了获取到能够用于后续建模分析阶段的数据。

数据提取阶段

数据提取不同于数据准备,数据准备阶段只是获取到了我们完成任务所需要的数据源,数据提取主要是从指定的库、表或者是存储位置中提取出来所需的数据。
数据提取是将数据取出的过程,数据提取的核心环节是从哪取、何时取、如何取。
从哪取,数据来源——不同的数据源得到的数据结果未必一致。
何时取,提取时间——不同时间取出来的数据结果未必一致。
如何取,提取规则——不同提取规则下的数据结果很难一致。
例如:
对于网络爬取到数据数据来说,我们需要某几个字段,这就需要对原始的html数据进行解析处理来提取所需要的数据项。

数据探索

数据探索主要就是分析数据结构和规律过程,它不可能靠人力去探索,而是有工具可用有方向可循的,漫无目的的寻找不可能到达目的地。在数据探索方面也有2个方向:

  • 数据质量分析
    数据质量分析是数据预处理的前提,它主要包括:缺失值分析,异常值分析,一致性分析等。主要任务是检查原始数据中是否包括脏数据。
    脏数据:不符合要求,以及不能直接进行相应分析的数据。包括:缺失值,异常值,不一致的值,重复数据,含有特殊符号的数据。

1、缺失值处理方式:

    针对具体的任务场景使用对应的缺失值处理方式是非常重要的。常见的缺失值处理方式主要包括:直接删除、填充处理、忽略处理。其中,个人在实际工作中使用较多的方式对数据中的缺失值进行填充处理,目前使用到的填充算法主要包括:滑动平均数据填充、移动加权数据填充和卡尔曼滤波数据填充三种算法。

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

    简单统计量分析(判断变量取值是否超出范围);原则:如果数据服从正态分布,在 原则下,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。如果数据不服从正态分布,可以用远离平均值的多少倍标准差来描述。
    箱型图分析:以四分位数和四分为距为基础判断异常值。
    在实际工作中,异常值可以部分借鉴缺失值数据的处理方法。

3、一致性分析

    不一致数据的产生主要发生在数据集成的过程中,由于数据来自于不同的数据源等导致。在数据建模之前进行数据一致性分析是很有必要的。
  • 数据特征分析
    数据特征分析主要包括:分布分析,对比分析,统计量分析,周期性分析,贡献度分析、相关性分析等。对其中各种分析简单介绍如下:

1、分布分析:

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

2、对比分析:

    绝对数比较、相对数比较

3、统计量分析:

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

4、周期性分析
5、贡献度分析
6、相关性分析:

    绘制散点图、计算相关系数

总结来说:数据探索阶段主要是通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的机构和规律进行分析的过程就是数据探索。数据探索有助于选择合适的数据预处理和建模方法,甚至可以完成一些通常由数据挖掘解决的问题。常常从数据质量分析和数据特征分析两个角度对数据进行探索。

数据处理

数据处理包括:数据清洗(缺失值处理、异常值处理)、数据集成(实体识别、冗余属性识别)、数据变换(
简单函数变换,规范化,连续属性离散化,属性构造,小波变换)、数据规约(属性规约、数值规约)。数据处理的目的在于提高数据的质量,使数据更易于建模。

1、数据清洗

    对原始数据集中的数据进行缺失值处理和异常值处理。主要的操作包括:删除原始数据集中的无关数据、重复数据、平滑噪声数据、筛选掉与挖掘主题无关的数据、处理缺失值、异常值等。  

2、 数据集成

    将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。冗余属性识别:部分可以通过相关分析检测。单位不统一、同名异义、异名同义这几中情况的集成。

3、数据变换

    数据变换中常用的手段包括:简单函数变换,规范化,连续属性离散化,属性构造,小波变换等。主要目的是对数据进行规范化处理、以转换成适用于挖掘任务及算法的形式。

其中:

  • 简单函数变换:
    包括平方、开方、取对数、差分运算等。常用来将不具有正态分布的数据变换成具有正态分布的数据。在时间序列分析中,差分运算有时可以将非平稳序列转换成平稳序列。

  • 归一化
    为消除指标之间的量纲和取值范围差异的影响,将数据按照比例缩放,使之落入一个特定的区域,消除由于不同特征属性取值范围不同对模型造成的影响,加快模型的收敛速度,能够在一定程度上提升模型的精度。
    【对于基于距离计算的数据挖掘算法来说作用尤为明显,如:Kmeans、KNN等】
    a、最小-最大规范化:即离差标准化,对原始数据的线性变换,将数值映射到 [0,1] 之间。
    b、零-均值规范化:即标准差标准化,经过处理的数据的均值为0,标准差为1,最为常用。
    c、小数定标规范化:通过移动属性值的小数位数,将属性值映射到 [-1,1] 之间,移动的小数位数取决于属性值绝对值的最大值。

  • 连续属性离散化
    连续属性离散化主要是将一些连续的属性值转化为离散的属性值,比如:将温度数据转化为等级或者是区间的数据用于ID3决策树建模或者是Apriori关联规则挖掘算法进行关联规则分析。

  • 属性构造
    为提取更有用的信息,挖掘更深层次的模式,提高挖掘结果的精度,需要利用已有属性构造出新属性,并加入到现有的属性集合中。这一点有点类似于PCA主成分分析的性质,这是一个新特征生成的过程,不是特征选择的过程,之前有人采用GBDT+LR的模型组合方式夺得了广告点击预测大赛的冠军,里面的核心思想就是基于GBDT对原始的特征数据进行了再编码处理,生成了新的更加有效的特征,及时后面使用的是很简单的模型也可以取得很不错的预测效果,这里也凸显了特征工程的重要性。

  • 小波变换
    小波变换主要是在数据信号处理里面使用到的,之后开始广泛用于其他数据的处理中。小波变换在时域和频域都有表征信号局部特征的能力。选取适当的小波系数,即完成了信号的特征提取。(Scipy
    提供了一些信号处理函数,PyWavelets 是一个非常好的信号处理库)。

4、数据规约

    数据规约产生更小但保持原数据完整性的新数据集,使得在规约后的数据集上进行分析和挖掘更有效率,降低存储数据的成本。 

其中:

  • 属性归约
    这里常用方法包括决策树、主成分分析,通过属性合并来创建新属性维数,或通过删除不相关属性来减少数据维数。目标:寻找出最小的属性子集并确保新数据子集的概率分布尽可能接近原来数据集的概率分布。
    决策树归纳:直接删除不相关属性
    主成分分析(Scikit_learn中的PCA函数):用于连续属性的数据降维方法。在应用中,通常是选出比原始变量个数少,能解释大部分数据中的变量的几个新变量,即主成分,来代替原始变量进行建模。

  • 数值归约
    通过选择替代的、较小的数据来减少数据量
    方法:直方图、聚类、抽样、参数回归

数据建模

模型构建是整个数据分析挖掘过程中最为核心的一个节点,目前使用到的模型大都已经有非常成熟的实现,可以直接调用了。模型的本质就是一个函数或者是公式,通过标准化的输入后输出计算结果。

主要的建模的方法包括:分类与预测(分类算法,预测算法,回归分析,决策树,人工神经网络)、聚类分析、关联规则、时系模式、离群点检测等等。
其中:

[外链图片转存失败(img-
NoHCMBix-1567240214326)(https://github.com/yishuihanhan/markdown-
pictures/blob/master/models.png)]

  • 分类
    属于有监督学习,需要提供标注的样本数据集

  • 聚类
    属于无监督学习,不需要人工数据标注

模型评价

模型的评价对于我们分析挖掘任务来说同样十分重要,对于分类算法模型来说常用的评价指标包括:精确率(Precision)、召回率(Recall)、准确率(Accuracy)、F1值(F-Measure)、ROC曲线、AUC值和PR曲线;对于聚类算法模型来说常用的评价指标主要包括:纯度(purity)、熵(Entropy)、归一化互信息(NMI)、调整兰德指数(ARI)等等。

基于有效的评价指标对构建的模型性能进行全方面综合的计算分析有助于我们了解模型的工作情况,进一步通过模型参数优化等方式来优化模型的性能。

在这里插入图片描述

posted on 2021-06-30 14:06  夜的独白  阅读(877)  评论(0编辑  收藏  举报