教材:数据挖掘基于R语言的实战。

1数据挖掘

数据挖掘的定义

数据挖掘是对大量数据进行探索和分析,以便发现有意义的模式和规则的过程。“有意义”针对的是具体需要用数据分析来回答和解决的问题。

数据挖掘活动

  1. 无监督数据挖掘:对各个变量不区别对待,而是考查他们之间的关系。
    描述和可视化
    关联规则分析
    主成分分析、聚类分析等
  2. 有监督数据挖掘:建立根据一些变量来预测另一些变量的模型,前者被称为自变量,后者被称为因变量。
    线性及广义线性模型
    神经网络
    决策树
    随机森林等

数据挖掘基本流程

  • 数据收集
  • 数据准备
  • 建立模型
  • 模型评估与选择
  • 模型检测与更新

数据的标准形式

数据挖掘统计 数据挖掘数据_python

  • 在数据挖掘的项目中,我们往往需要将数据整理为图中的标准形式,X1-Xp为自变量,Y为因变量。
  • 建模数据集含有自变量和因变量的值,用于建立并评估统计模型。
  • 预测数据集只含有自变量的值,不含因变量的值,所以需要将统计模型应用于预测数据集,以预测因变量的值。

关于数据挖掘关注的三个问题

  1. 建模数据集能代表预测数据集吗
    在一些数据挖掘的应用场景下,建模数据集和预测数据集的来源一样。例如都来自某个组织内部的数据集,建模数据集代表历史,预测数据集代表未来。在与数据相关的外部和内部环境比较稳定的状态下,由历史可以预见未来,我们可以认为建模数据集对预测数据集具有代表性,因而能够将根据数据集建立的统计模型应用于预测数据集。
    在另外一些应用场景下,建模数据集和预测数据集来源不一样,这时需要仔细考查建模数据集对预测数据集是否具有代表性。如果建模数据集对预测数据集不具有代表性,我们称建模数据集存在抽样偏差
  2. 自变量和因变量之间的关系有因果性的解释吗
    统计模型通常发现的是相关性,不能确保得出因果结论,但是在建立统计模型时,我们依然希望考虑自变量和因变量之间的因果解释。
    因果效应的一个最基本要求是“因”发生在“果”之前。因此,在数据挖掘中,自变量需要发发生在因变量之前,这样才能根据自变量的值预测因变量的值。
  3. 模型预测精度对于实际应用的价值如何
    数据挖掘模型的预测精度多高才算好依赖于具体的应用。

CRISP-DM数据挖掘方法论

CRISP-DM(cross-industry standard process for data mining)即数据挖掘的跨行业标准过程。

数据挖掘统计 数据挖掘数据_python_02


业务理解(关键步骤)

从需要用数据分析来回答和解决的问题的角度,理解项目实施的目的和要求。将这种问题转化为一个数据挖掘问题,即需要收集哪些变量的数据,这些数据能从什么渠道获得。

数据理解
收集原始数据,考查数据的质量。

数据准备
从原始数据中构建建模数据集,构建过程包含:观测选择和变量选择;数据转换;清理等。

建模
选择并应用多种建模方法,优化各种模型。

模型评估
全面评估模型,回顾建模的各个步骤,确保模型与业务目标一致,并决定如何使用模型的结果。

模型发布
在模型评估阶段确认模型可以投入使用的前提下,以用户友好的方式组织并呈现从数据挖掘中所获取的知识。

SEMMA数据挖掘方法论

针对数据挖掘过程中直接与数据相关的部分,核心过程为:数据抽样、数据探索、数据修整、建模、模型评估。

数据抽样
数据集不能过大或过小,避免出现过度拟合,创建下列三个数据集:

  • 训练数据集,用于拟合各个模型,相当于平时的训练习题
  • 验证数据集,用于评估各个模型并进行模型选择,相当于模拟试题
  • 测试数据集,用于对被选中的模型的普适性形成真实的评价,相当于真实考题

数据探索
使用可视化方法或主成分分析、聚类等无监督数据挖掘方法对数据进行探索性分析,发现未曾预料的趋势和异常情况,对数据形成初步整理,寻求进一步分析的思路。

数据修整
生成新变量
对变量进行转换
处理异常值
变量选择等

建模
搜寻能够可靠地预测因变量的数据组合,具体而言是指采用哪些观测,使用哪些自变量能够可靠地预测因变量,然后建立各个模型。

模型评估
评估模型的预测效果、实用性、可靠性。

2数据理解

2.1收集初始数据

通常一个组织内部的数据分散在不同部门,以不同的格式储存,所属的数据库架构不一样;如果从组织外部获得数据,外部数据的格式和数据库架构与内部数据业委会不一致,所以收集数据需要进行格式转化。

需要记录的数据信息:

  • 收集了哪些数据集
  • 来源是什么
  • 如何获取这些数据集
  • 在收集数据的过程中遇到的问题及解决方法

2.2描述数据

数据的准确含义

  • 准确理解每一个数据集包含什么样的观测
  • 准确理解每一个变量的含义

数据粒度

数据粒度指的是数据的细化程度或综合程度的级别。比如时间层面的精确到年、月、日、天、时、分、秒。

变量类型

分类变量/离散变量:定类变量和定序变量
定量变量/连续变量:定距变量和定比变量

定类变量=名义变量
定类变量指只对观测进行分类并给各类别标以名称,类别之间没有顺序的变量。

定序变量
定序变量指对观测进行分类并且类别之间存在有意义的排序的变量。

定距变量
定距变量指不仅变量之间存在有意义的顺序,而且变量取值之间的差也有意义的变量,但是定距变量之间的商没有意义。

定比变量
定比变量指不仅变量取值之间的差有意义,而且存在一个有实际意义的零点,使变量取值之间的商也有意义的变量。

冗余变量

冗余变量指有些变量对所有观测取值都相同,或者有些变量合起来含有重复信息。

缺省值

关注缺省变量的取值意义,否则分析会有误差。

数据链接

通过关键字将不同数据集的观测链接起来,以便能在数据准备阶段通关合并多个数据集构造建模数据集。(R中数据合并的思路就是这样)

2.3检查数据质量

抽样偏差

抽样偏差指的是用来建立及评估模型的建模数据集无法代表未来应用模型的预测数据集。

数据取值检查

  1. 数据集之间的关系:当有多个数据集时,需要检查数据集之间的对应关系是否正确。
  2. 取值范围:每个变量都有自己允许的取值范围,取值范围之外的值为错误值。
  3. 取值的一致性
  4. 异常值:有些异常值是超出常规边界的值,需要查验是否正确。
  5. 整体正确性

数据缺失模式

假设某个数据集含有N个观测,J个变量。定义缺失指示变量mij(i= 1,… ,N, j= 1…,J),其中,mij= 1表示第i个观测的第j个变量被观测到,mij= 0表示第i个观测的第j个变量缺失。由缺失指示变量组成缺失指示矩阵M=(mij)NxJ,它给出了数据集的缺失模式。

单变量缺失模式

数据挖掘统计 数据挖掘数据_数据_03

单调缺失模式

数据挖掘统计 数据挖掘数据_数据集_04

一般缺失模式

数据挖掘统计 数据挖掘数据_数据_05

实操相关

#dplyr()是数据处理的程序包
#mice()是处理缺失数据的程序包
#str()函数查看数据框中各个变量的基本情况
#"%>%"为管道函数 将上一个步骤的结果作为下一步的输入相当于一个说明
#a <- a %>% 即上一步的a作为本步骤的输入 操作结束以后再赋值给a
#mutate_if(is.character,list(~na_if(.," "))) 先判断是否为字符型 然后将其取值为空的地方进替代
#is.character判断是否为字符型 结果是TorF 
#mutate_if()函数中第一个是变量 第二个是操作 即对字符型变量执行操作
#na_if()函数将当前变量(.表示)中的空格用缺失值NA替代