概述
数据挖掘(Data Mining)就是从大量不完整、有噪声、模糊、随机的实际应用数据中,提取隐含在其中、人们事先不知道、但是又潜在有用的信息和知识的过程。
实际上是一个决策支持过程,对数据进行高度自动化的分析从而做出归纳性推理,从中挖掘出潜在的模式,辅助决策者调整策略、减少风险、做出正确的决策。
数据挖掘有别于数据分析,数据分析是人为驱动的,数据挖掘是数据驱动的。
Ex.垃圾邮件的判断和筛选
数据分析方法需要针对邮件的发送人、标题、关键字等因素进行分析,如果含有违法违规信息则判定为垃圾邮件;
数据挖掘方法只需要把标注是否是垃圾邮件的数据交给模型学习,训练成功后就可以用来自动识别垃圾邮件。
Python语言语法清晰、逻辑性强、易读性高,且初始安装环境就已经附带许多高级数据类型,便于操作。
一般流程
(一)数据读取
- 读取数据,进行展示
- 统计数据各项指标
- 明确数据规模和要完成的任务
(二)特征理解分析
- 单特征分析,逐个变量分析其对结果的影响
- 多变量统计分析,综合考虑多种情况影响
- 统计绘图得出结论
(三)数据清洗与预处理
- 对缺失值进行填充
- 特征标准化/归一化
- 筛选有价值的特征
- 分析特征之间的相关性
(四)建立模型
- 特征数据与标签准备
- 数据集切分
- 多种建模算法对比
- 集成策略等方案改进
常用方法
分类
找出样本数据集的共同特征,将数据集划分为不同的类型。
目的:寻找重要变量因素、了解族群特征或建立分类规则。
应用:商品分类、垃圾邮件过滤、新闻分类、智能推荐等。
常用算法:决策树、朴素贝叶斯、K近邻和支持向量机。
回归
输入数据往往为数值型。
目的是预测输入内容的数值,或者说找到一条尽可能接近数据集的各个点的最优拟合线。
应用:预测销售趋势、房价变动、产品生命周期分析、股市成交额及天气状况。
关联
又称关联规则挖掘。在大规模数据集中寻找数据之间关系的算法。
目的:发现频繁项集,从频繁项集中发现关联规则。关联规则反映了物品和其他物品之间的关联性。即给定一组事务,根据事务中物品项的出现情况预测物品项出现的规则。
应用:预测客户需求、关联推荐营销、客户交叉营销、风险防范等。
常用算法:Apriori、FP-Growth
聚类
不给定数据特征种类,根据数据间相似度进行数据集簇,使得簇内距离最小化、簇间距离最大化的分析方法。
应用:根据一些特定的症状归纳特定的疾病,通过对住宅区的居民信息聚类来确定店铺的选址。
常用算法:K-Means算法、凝聚聚类算法、DBSCAN算法
异常检测
找出数据集中与正常数据差异较大的数据点(离群点或异常值)。
常用检测方法:统计方法检测、距离检测、密度检测、数据可视化检测和无监督模型检测。
聚类分析也是常见的用于异常检测的方法。
应用:识别诈骗、防范风险、发现新的营销热点。
可用的Python库
Numpy - 科学计算库,主要用来做矩阵运算
Pandas - 数据分析处理库
Matplotlib - 可视化库
Seaborn - 更简单的可视化库,封装在Matplot基础上
Scikit-learn - 机器学习库
Scikit-learn 构建数据挖掘模型
支持常用的机器学习算法——分类、回归、聚类与降维,提供了特征提取、数据处理和模型评估等功能模块。
Sklearn封装了大量的机器学习算法,并内置了大量数据集。
步骤:
数据获取→数据预处理→数据集拆分→构建模型→训练模型→评估模型→保存模型→使用模型
数据预处理
4种常见的数据预处理方法:数据的归一化、数据的正则化、特征的二值化和One-hot编码转换。
回归预测任务的参考框架
1、理解数据
首先,了解数据的基本情况,包括各个属性的类型、缺失值情况、分布等。
2、数据清洗
处理缺失值,可以选择删除、填充,或者根据其他属性进行预测填充。还需要处理其他可能存在的异常值或不一致性。
3、特征工程
根据问题的要求和对数据的理解,选择合适的特征。可能需要对一些属性进行编码(如独热编码)、标准化或归一化,以便在建模过程中更好地处理。
4、数据分割
将数据集分为训练集和测试集,训练集用于建模,测试集用于评估模型的性能。
5、选择模型
选择适当的回归模型,常见的如线性回归、决策树回归、随机森林回归等。
6、模型训练:
使用训练集对选择的模型进行训练。
7、模型评估
使用测试集对选择的模型进行评估,考虑使用评价指标如均方误差等。
8、调整模型
根据评估结果,可能需要调整模型的超参数或尝试其他模型。
线性回归
决定是否使用线性回归填充缺失值取决于数据的性质和关系。
1、线性关系
线性回归假设目标变量与特征之间存在线性关系。通过绘制散点图或使用相关性系数等方法来初步判断。而且特征和残差之间的关系是平均的。
2、多重共线性
如果特征之间存在多重共线性(即特征之间高度相关),线性回归的效果可能受到影响,这种情况下可能需要采取措施来处理共线性或者选择其他模型。
3、残差分析
使用线性回归填充缺失值后,使用残差分析可以帮助评估模型的拟合情况。如果残差的分布显示模型的拟合效果不好,可能需要尝试其他模型。
标称属性(nominal attribute):代表某种类别、编码或者状态。比如头发颜色如黑色、棕色、黄色等。标称属性值不具有有意义的序且并不是定量的。众数是该属性的人中心趋势度量。均值和中位数都无意义。
阅读清单
[1]https://www.zhihu.com/question/439511942
[2]https://zhuanlan.zhihu.com/p/507174864
[4]https://blog.csdn.net/wokaowokaowokao12345/article/details/109441753
[5]https://cloud.tencent.com/developer/article/1654313
[6]https://blog.csdn.net/qq_28168421/article/details/105190203
参考文献
[1] 王仁武 Python数据科学基础与实践