整个系列实战源码下载地址:https://github.com/wltongxue/python-DataMining-Practice
本次学习我们将从4个方面进行深入介绍:
1、数据挖掘的定义。(了解什么是数据挖掘?它是用来干什么的?)
2、数据挖掘的过程。(明白数据挖掘要做什么事情?)
3、挖掘建模中的算法和评价。(了解挖掘中最重要的建模部分都有哪些?)
4、所使用的python库。(使用代码进行实现时我们要具备的环境?)
一、什么是数据挖掘
1、数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。(这里如果不懂,可以先往下看,会举例说明)
2、基本任务包括利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,从数据中提取蕴含价值的信息。
3、根据问题决定属于哪一类任务,确定任务以后再决定使用什么算法建模
注:机器学习算法指的是分类与预测 和 聚类分析算法(每一次从数据集的学习都是不确定的,这样的算法叫做机器学习算法)
二、数据挖掘的过程
数据挖掘的过程及描述:
过程 | 描述 |
---|---|
定义挖掘目标 | 要实现什么样的功能,找到什么样的信息 |
数据取样 | 需要哪些原始的数据 |
数据探索 | 对数据进行了解分析(直观或统计)、数据质量分析(脏数据等)、数据特征分析(分布等) |
数据预处理 | 数据清洗、数据集成、数据变换、数据规约;降维、补缺等修剪来获得“好”数据 |
挖掘建模 | 首先判断属于哪类问题(分类、聚类等);选用对应的算法和模型进行数据分析 |
模型评估 | 对所选用的模型进行评测;利用该类模型的评估指标(方差、ROC等) |
注:数据探索和数据预处理都是为了获取到好的数据训练而服务的
脏数据包括:缺失、异常、一致
特征分析:分布、对比、统计量、周期性、贡献度、相关性
统计数据清洗:缺失值、异常值处理
数据集成:实体识别、冗余属性识别
数据变换:简单函数变换、规范化、连续属性离散化、属性构造、小波变换
数据规约:属性规约、数值规约
三、挖掘建模中常用的算法和评价
机器学习算法指的是分类与预测和聚类分析算法(每一次从数据集的学习都是不确定的),并且模型在不断学习提升(变化),所以机器学习获得的模型或者算法是需要评价,评价学习结果的好坏。
1、分类与预测
分类与预测常用算法
解决的问题:预测分类标号、预测某个值
1、回归分析:线性、非线性、Logistic、岭回归、主成分
2、决策树:ID3、C4.5、CART
3、人工神经网络:BP、LM、RBF、FNN、GMDH、ANFIS
4、贝叶斯网络
5、支持向量机(SVM)
分类与预测算法评价指标
1、绝对误差与相对误差
2、平均绝对误差
3、均方误差
4、均方根误差
5、平均绝对百分误差
6、Kappa统计
7、识别准确度
8、识别精确率
9、反馈率
10、ROC曲线
11、混淆矩阵
2、聚类分析
聚类分析常用算法
解决的问题:非监督、无类标记、自行分类
1、K-means
2、K-中心点
3、系统聚类
聚类分析算法评价
1、purity评价法
2、R1评价法
3、F值评价法
3、关联规则
关联规则的常用算法
解决的问题:找出数据之间的关系
1、Apriori
2、FP-Tree
3、Eclat算法
4、灰色关联法
4、时序模式
时序模式常用时序模型
解决的问题:给定时间序列、预测未来值
1、平滑法、趋势拟合法、组合模型
2、AR模型、MA模型、ARMA模型、ARIMA模型
3、ARCH模型、GARCH模型
5、离群点检测
离群点检测方法
解决的问题:发现信息的噪声点
1、基于统计的
2、基于邻近度的
3、基于密度的
4、基于聚类的
四、所使用的python库
Python数据挖掘相关扩展库:
扩展库 | 描述 |
---|---|
Numpy | 提供数组支持,以及相应的高效的处理函数 |
Scipy | 提供矩阵支持,以及矩阵相关的数值计算模块 |
Matplotlib | 强大的数据可视化工具、作图库 |
Pandas | 强大、灵活的数据分析和探索工具 |
StatsModels | 统计建模和计量经济学,包括描述统计、统计模型估计和推断 |
Scikit-Learn | 支持回归、分析、聚类等的强大的机器学习库 |
Keras | 深度学习库,用于建立神经网络以及深度学习模型 |
Genism | 用来做文本主题模型的库,本文挖掘可能用到 |
五、实践展示
- 电力窃漏电用户自动识别
- 航空公司客户价值分析
- 中医证型关联规则挖掘
- 基于水色图像的水质评价
- 家用电器用户行为分析与事件识别
- 应用系统负载分析与磁盘容量预测
- 电子商务网站用户行为分析及服务推荐
- 财政收入影响因素分析及预测模型
- 基于基站定位数据的商圈分析
- 电商产品评论数据情感分析