《Python数据分析与挖掘实战-张良均等人著》读书笔记

第一章 数据挖掘概念

以餐饮行业中所存在的数据挖掘需求作为切入点,引出了数据挖掘的概念。

数据挖掘的定义:从大量数据(包括文本)中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程。

数据挖掘的基本任务:利用分类和预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力。

数据挖掘建模过程

定义挖掘目标
数据取样
数据预处理
模型构建
模型评价
  1. 定义挖掘目标:理解挖掘任务,定义挖掘目标。
  2. 数据取样:全部样本数据太多、太杂,需要抽取相关性可靠性有效性更高的样本。
  3. 数据预处理:缺失值、异常值处理,相关性分析,数据转换、数据标准化等。
  4. 模型构建:根据数据挖掘的目标使用相应的挖掘算法(分类、聚类、关联规则、时序模式、智能推荐)。
  5. 模型评价:不同的模型评价方法也是不同的。

常用建模工具

  1. SAS Enterprise Miner,集成数据挖掘系统
  2. IBM SPSS Modeler,
  3. SQL Server,
  4. Python,面向对象的解释型高级编程语言
  5. WEKA,知名度较高的机器徐文琪和数据挖掘软件
  6. KNIME,可以扩展使用WEKA中的挖掘算法
  7. RapidMiner,
  8. TipDM,数据挖掘建模平台

第二章 Python数据分析

简单介绍了Python的语法和使用。

安装
直接使用yum install python,sudo apt-get install python或者使用Anaconda(Python的科学计算发行版)

python语法和数据结构
请移步Python官网

Python数据分析包
Numpy:科学计算的包,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

Scipy:是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。

Matplotlib:是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。

pandas:是一种快速,强大,灵活且易于使用的开源数据分析和处理工具。

StatsModels:是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。

scikit-learn:是基于 Python 语言的机器学习工具。

Keras:是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。

Gensim:Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。

第三章 数据探索

为什么要数据探索?
判断样本数据集的数量和质量是否满足模型构建的要求。

数据探索
数据质量分析
数据特征分析
  1. 数据质量分析:任务是检查原始数据中是否存在脏数据(异常值、缺失值、不一致值、重复值等)。

    异常值分析:分析哪些是异常值,为什么会产生这些异常值。

    缺失值分析:可以使用pandas中的某些方法来得到缺失值属性的个数等相关信息,针对不同的情况使用不同的缺失值填充方法。

    一致性分析:数据的矛盾性、不相容性。

  2. 数据特征分析:通过绘制图表、计算某些特征量来分析不同特征对结果的影响,选择少而精的特征进行后期的模型构建工作。

    分布分析
    对比分析
    统计量分析
    周期性分析
    相关性分析

第四章 数据预处理

对原始数据进行处理,提高数据的质量,并让数据更好第适应特定的挖掘技术活工具。统计发现,数据预处理占据了数据挖掘工作量的60%。

  1. 数据清洗

    删除无关数据、重复数据,平滑噪声数据,处理缺失值、异常值等。

  2. 数据集成

    将多个数据源中的数据合并存放在一个一直的数据存储位置(如:数据仓库)中的过程。

  3. 数据变换

    对数据进行处理,将数据转完成“适当的”形式,已使用与挖掘任务和算法的需要。

    数据标准化。不同评价指标往往具有不同的量纲,数值间的差别可能很大,不进行标准化(归一化)处理可能会影响数据分析的结果。

  4. 数据归约

    数据归约产生更小且保持原数据完整性的新数据,在归约后的数据集上进行分析和挖掘将提高效率。主要分为:属性归约(将多个相关的属性合并为一个新属性)和数值归约(将数值合并到一个数值区间)。

    意义

    降低无效、错误数据对建模的影响,提高建模的准确性;
    少量且具有代表性的数据将大幅缩减数据挖掘所需的时间;
    降低存储数据的成本。

第五章 模型构建

根据任务需求选择建立的模型:分类与预测、聚类分析、关联规则、时序模式、离群点检测等。

1. 分类与预测

分类是预测分类标号(离散,预先已经划分了有哪些类别了),预测是建立连续值函数模型(连续)。分类是一种监督学习算法。

分类算法
评价
数据集
训练集
测试集
分类器

常用分类与预测算法

算法名称算法描述
回归分析确定预测属性和其他变量间定量关系的统计学方法
决策树自顶向下的递归方式,在内部节点进行属性值的比较,并根据不同的属性值从该节点向下分支,最终的叶节点则是学习划分的类
人工神经网络模仿大脑神经网络结构和功能而建立的信息处理系统
贝叶斯分类基于统计学中的贝叶斯理论,其实就是根据各类特征,计算具有这些特征的对象属于某一给定类别的概率最大,即将该对象分为此类
支持向量机通过某种非线性映射,把低维的非线性可分转化为高维的线性可分,在高维空间进行线性分析的算法

2. 聚类分析

聚类与分类不同的是,聚类没有给定划分的类别,而是根据数据相似度进行样本分组。聚类是一种非监督学习算法。聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将他们划分为不同的组,划分原则是组内样本最小化而组间距离最大化。

常用聚类算法

算法名称算法描述
K-MeansK-均值聚类,在最小化误差函数的基础上将数据划分为预定的类数k
K-中心点以簇中距离平均值最近的对象作为簇中心
系统聚类多层聚类

3. 关联规则

也称为购物篮分析。目的是在一个数据集中找出各项之间的关联关系。最经典的例子就是“啤酒与尿布”。

常用关联规则算法

算法名称算法描述
Apriori通过连接产生候选项及其支持度,然后通过剪枝生成频繁项集
FP-Tree针对Apriori算法固有的多次扫面事务数据集的缺陷,提出的不产生候选频繁项集的方法,Apriori和FP-Tree都是寻找频繁项集的算法
Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间
灰色关联法分析和确定各因素之间的影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法

4. 时序模式

时序模式的目的是根据给定一个已被观测了的时间序列,预测该序列的未来值。

常用时序模式算法

算法名称算法描述
平滑法利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑化
趋势拟合法把时间作为自变量,相应的序列观察值作为因变量,建立回归模型
组合模型构建加法模型和乘法模型
AR模型-
MA模型-
ARMA模型-
ARIMA模型-
ARCH模型-
GARCH模型-

5. 离群点检测

也称为偏差检测。离群点检测的目的是发现与大部分其他对象显著不同的对象。探究这些数据中可能蕴含的研究价值。

常用离群点检测方法

算法名称算法描述
基于统计构建一个概率分布模型,计算对象符合该模型的概率,把低于某一概率值的对象认为是离群点
基于邻近度在数据对象之间定义邻近性度量,把远离大部分点的对象视为离群点
基于密度离群点是处于低密度区域中的那些点
基于聚类聚类所有对象,评估对象属于某类的程度,程度低于某一临界值的为离群点

总结

后面还有很多实战的例子,有兴趣的自己买书看。

参考文献

[1] 《Python数据分析与挖掘实战-张良均等人著》

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值