0%

Python数据挖掘

概述

数据挖掘(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

[3]https://primobe.uestc.edu.cn/primo-explore/search?query=any,contains,Ahmed%20Moustafa&tab=primo_central&search_scope=article_scope&vid=uestc&facet=topic,include,Computer%20Science&lang=zh_CN&offset=0

[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数据科学基础与实践