数据挖掘
数据挖掘
数据挖掘定义
从数据中“淘金”,从大量数据(包括文本)中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程,就是数据挖掘。
数据挖掘基本任务
利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业竞争力。
数据挖掘建模过程
1.定义挖掘目标
针对需求,明确挖掘目标,系统完成后达成什么样的效果?
2. 数据取样
明确目标后,需要从业务系统中抽取一个与挖掘目标有关的样本数据子集,抽取数据的标准,一是相关性,二是可靠性,三是有效性,而不是动用全部企业数据。
3. 数据探索
带着对如何实现数据挖掘目标的先验认识进行操作,拿到一个样本数据集后,它能否达到我们原来设想的要求,样本中没有什么明显的规律和趋势?有没有出现未设想过的数据状态?属性之间有什么相关性?它们可区分什么样的一些类别,这都是探索的内容。
主要包括:异常值分析、缺失值分析、相关性分析、周期性分析等
4. 数据预处理
主要包括:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约等
5.挖掘建模(核心)
思考本次建模属于数据挖掘应用中哪类问题(分类、聚类、关联规则、时序模式或者智能推荐),选择哪种算法进行模型构建?
6. 模型评价
目的之一就是从这些模型中找到一个最好的模型,另外要根据业务对模型进行解释和应用,对分类与预测模型和聚类分析模型的评价方法是不同的。
数据结构及工具库
数据结构
函数式编程:主要有lambda()、map()、reduce()、filter()函数
- Lambda为行内函数。
- Map()函数,将函数逐一应用到map列表中的每个元素,最后返回一个数组。Map(lambda x,y:x*y,a,b)表示将a、b两个列表的元素对应相乘,并把结果返回新列表。Map()函数比列表解析(for命令效率)执行效率更高,循环命令速度相当于C语言。
- Reduce() 函数,有点像map()函数,但是map()函数用于逐一遍历,而是reduce()函数用于递归计算,例:求出n的阶乘
From fuctools import reduce
Reduce(lambda x,y:x*y,range(1,n+1)) - Filter()函数,它是一个过滤器,用来筛选列表中符合条件的元素
数据分析工具库
Numpy 提供数组支持,以及相应的高效的处理函数
Scipy 提供矩阵支持,以及矩阵相关的数值计算模块
statsModels 统计建模和计量统计学,包括描述统计、统计模型估计和推断
scikit-learn 支持回归、分类、聚类等的强大的机器学习库
Keras 深度学习库,用于建立神经网络以及深度学习模型
Gensim 用来做文本主题模型的库,文本挖掘可能用到
数据探索
数据质量分析
数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提。主要任务是检查原始数据是否存在脏数据(缺失值、异常值、不一致的值、重复数据及含有特殊符号的数据),以及不能直接进行相应分析的数据。
缺失值分析
数据确实主要是记录的缺失和记录中字段信息的缺失,主要对缺失值产生的原因和影响等方面进行分析,总体来说,缺失值的处理分为删除存在缺失值的记录、对可能值进行插补和不处理三种情况。
异常值分析
异常值也称为离群点,异常值分析也称未离群点分析。
(1) 简单统计量分析
(2) 3deta 原则 ,若数据服从正态分布,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值,若数据不服从正态分布,可以用远离平均值的多少倍标准差来描述。
(3) 箱型图分析
一致性分析
数据不一致是指数据的矛盾性、不相容性,直接对不一致的数据进行数据挖掘,可能会产生于实际相违背的挖掘结果。
数据特征分析
分布分析
分布分析能揭示数据的分布特征核分布类型。对定量数据,欲了解其分布形式是对称还是非对称,发现某些特大或特小的可疑值,可通过绘制频率分布表、绘制频率分布直方图、茎叶图进行直观的分析;对于定性分类数据,可以用饼图核条形图直观地显示分布情况。
对比分析
对比分析是指两个互相联系的指标进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。特别适用指标间横纵向比较、时间序列的比较分析。
统计量分析
通统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析。
贡献度分析
贡献度分析又称帕累托分析,原理是帕累托法则,又称20/80定律。
相关性分析
分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析。
- 直接绘制散点图 常用于两个变量之间线性关系
- 绘制散点图矩阵 进行多元线性回归时,可以快速发现多变量的主要相关性。
- 计算相关系数 二元变量的相关分析过程中比较常用的有person相关系数、Spearman秩相关系数和判定系数。