Python数据分析与实战挖掘

基础篇

书推荐:《用python做科学计算》

扩展库 简介

Numpy数组支持,以及相应的高效处理函数

Scipy矩阵支持,以及相应的矩阵数值计算模块

Matplotlib强大的数据可视化工具、作图库

Pandas强大、灵活的数据分析和探索工具

StatsModels 统计建模和计量经济学,包括描述统计、统计模型估计和推断

Scikit-Learn支持回归、分类、聚类等的强大机器学习库

Keras深度学习库,用于建立神经网络以及深度学习模型

Gensim 文本主题模型的库,文本挖掘用

----- 贵阳大数据认证 -----

Numpy

提供了数组功能,以及对数据进行快速处理的函数。是Scipy、Matplotlib、Pandas等高级扩展库的依赖库。其内置函数处理速度是C语言级别的。

Scipy

包含最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程常用的计算

Matplotlib

提供二维绘图,也可以三维绘图,与Matlab相似但更为丰富

使用时如果使用中文无法正常显示,需要作图前手动指定默认字体为中文,如SimHei

Pandas

python下最强大的数据分析和探索工具。构建在Numpy之上。

支持类似于SQL的增删改查,有丰富的数据处理函数,支持时间序列分析功能,支持灵活处理缺失数据等

Pandas基本的数据结构实Series和DataFrame,序列(一维数组)和表格(二维数组)

StatsModels

Pandas着眼于数据的读取、处理和探索;而StatsModels更注重数据统计建模分析(R的味道)

StatsModels和Pandas——python最强数据挖掘组合

Scikit-Learn

机器学习库,包括数据预处理、分类、回归、聚类、预测和模型分析等;依赖于NumPy、SciPy、Matplotlib

Keras

Scikit-Learn没有人工神经网络模型,Keras用于搭建神经网络,是一个机遇Theano的深度学习库。

安装Keras前需要安装Numpy、Scipy和Theano,安装Theano要先准备一个C++编译器。在windows下需要先安装MinGW(Windows下的GCC和G++),然后安装Theano,最后Kera。如果要实现GPU加速还要配置CUDA

Gensim

用于处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等

--贵阳大数据培训--

数据探索

1、数据质量分析:检查原始数据中是否存在不符合要求的数据。主要包括缺失值、异常值、不一致值、重复数据及特殊符号数据

缺失值,包括记录缺失和记录的某字段缺失等

产生原因:无法获取、遗漏、属性值不存在;

影响:有用信息缺乏、不确定性加重、不可靠

异常值,不合常理的数据,剔除可消除不良影响,分析可进行改进。异常值分析也称离群点分析。

常用的分析方法:简单统计量分析(如max、min);3σ原则(99.7%);箱型图(QL-1.5IQR,QU+1.5IQR)

一致性分析:直属局矛盾性、不相容性

产生原因:数据集成过程中,数据来自不同数据源,存放等未能进行一致性更新

2、数据特征分析

分布分析:数据分布特征与分布类型

定量数据分布分析:求极差(其最大值与最小值之间的差距;即最大值减最小值后所得之数据)——决定组距和组数——决定分点——列频率分布表——绘频率分布直方图

定性数据分布分析:采用分类类型来分组,用饼图或条形图来描述分布

对比分析:两个指标进行比较,展示说明大小水平高低,速度快慢,是否协调等

绝对数比较

相对数比较:结构相对数(比重),比例相对数(比值),比较相对数(同类不同背景),强度相对数(密度),计划完成程度相对数,动态相对数

统计量分析:统计描述

集中趋势:均值、中位数、众数

离中趋势:极差、标准差、变异系数(CV=标准差/平均值*100%)、四分位数间距(上下四分位数之差)

周期性分析:是否随时间呈周期变化趋势

贡献度分析:又称帕累托分析,原理是帕累托法则,又称20/80定律。同样的投入在不同的地方产生不同的收益。

相关性分析

直接绘制散点图

绘制散点图矩阵,对多个变量两两关系的散点图

计算相关系数,[1]Pearson相关系数(要求数据服从正态分布);[2]Spearman秩相关系数。两者都要经过假设检验,t检验方法检验其显著性水平以确定其相关成。正态分布下,二者效率等价。对连续测量值,更适合pearson相关系数。[3]判定系数r²

3、主要函数

主要是Pandas用于数据分析和Matplotlib用于数据可视化

《贵阳大数据分析师培训机构 》

Pandas主要统计特征函数

sum 总和(按列)

mean 算数平均值

var 方差

std 标准差

corr Spearman/Pearson相关系数矩阵

cov 协方差矩阵

skew 偏度(三阶矩)

kurt 峰度(四阶矩)

describe 基本描述

《贵州数据分析培训班》

cumsum 依次给出前1-n个数的和

cumprod 依次给出前1-n个数的积

cummax 。。。最大值

cummin 。。。最小值

rolling_sum(D,n)、rolling_mean。。。。D中相邻n个数的计算特征

《贵州大数据培训机构 》

统计作图函数,基于Matplotlib

Python主要统计作图函数

《贵阳大数据报名学习 》

plot 绘制线性二维图,折线图

pie 绘制饼图

hist 绘制二维条形直方图

boxplot 绘制箱型图 Pandas

plot(logy=True) 绘制y轴的对数图形 Pandas

plot(yerr=error) 绘制误差条形图 Pandas

《贵阳大数据培训中心》

作图前通常要加上以下代码

import matplotlib.pyplot as plt #导入图像库

plt.rcParams[‘font.sans-serif’] = [‘SimHei’] #用来正常显示中文标签

plt.rcParams[‘axes.unicode_minus’] = False #用来正常显示负号

plt.figure(figsize=(7,5))#创建图像区域,指定比例

完成后用plt.show()显示

数据预处理

数据清洗:删除原始数据集中的无关数据、重复数据、平滑噪声数据,处理缺失值、异常值等

缺失值处理

删除记录、数据插补、不处理

常用插补方法

《贵阳数据分析人才培训》

均值/中位数/众数 根据属性值类型,取均值、中位数、众数进行插补

使用固定值 将缺失属性用常量替代

最近邻插补法 在记录中找到与缺失样本最接近的样本的该属性值进行插补

回归方法 根据已有数据和与其有关的其他变量数据建立拟合模型来预测

插值法 建立合适的插值函数f(x),未知值计算得到。

拉格让日插值法、牛顿插值法。前者不灵活,增删节点要重来。Scipy库中提供前者。

例:将异常点取空,然后取缺值点前后5个值进行拉格朗日插值

异常值处理:异常值是否剔除看情况,因为有些异常值可能含有有用信息

常用异常值处理方法

删除记录 直接删除

视为缺失值 视为缺失值进行缺失值的处理

平均值修正 取前后两个正常值的平均

不处理 判断其原因,若无问题直接使用进行挖掘

《贵阳大数据培训中心》

数据集成:将多个数据源合并存在一个一致的数据存储中,要考虑实体识别问题和属性冗余问题,从而将数据在最低层上加以转换、提炼和集成

实体识别:同名异义、异名同义、单位不统一

冗余属性识别:多次出现、同属性不同名导致重复

数据变换:对数据规范化处理

简单函数变换,如平方、开方、对数、差分运算

规范化,也称归一化,消除量纲和取值范围的差异,进行标准化处理。映射到[-1,1]或[0,1]内。

[1]最小-最大规范化,也称离差标准化。x*=(x-min)/(max-min);缺点:异常值影响;之后的范围限制在[min,max]中

[2]零-均值规范化,也称标准差规范化,处理后[0,1]。x*=(x-mean)/std

[3]小数定标规范化,移动属性值小数位,映射到[-1,1]。x*=x/10^k

离散化过程就是在取值范围内设立若干个离散花粉店,将取值范围划分为离散区间

等宽法、等频发、基于聚类分析方法

属性构造

小波变换:信号分析手段,小波分析的理论和方法在信号处理、图像处理、语音处理、模式识别、量子物理等领域得到越来越广泛的应用

数据规约:产生更小且保持数据完整性的新数据集。意义在于降低无效、错误数据;降低存储成本;少量且具有代表性的数据大幅加快。

属性规约:属性合并或删除无关维,目标是寻找最小子集使子集概率分布尽可能与原来相同

属性规约常用方法

《贵州大数据培训》

合并属性 将就属性合并为新属性 ——

逐步向前选择 从空集开始,逐个加入最优属性,直到无最优或满足条件 {}——

逐步向后删除 从全集开始,每次删除最差属性,直到无最差或满足阈值

决策树归纳 利用决策树归纳能力进行分类,删除未出现的属性,即效果差的属性

主成分分析 用少量变量解释大部分变量,保留大部分信息,将相关性高的数据转为彼此独立

数值规约:通过选择替代的、较小的数据来较少数据量,包括有参数(回归、对数线性模型)和无参数方法(直方图、聚类、抽样)

Python主要数据预处理函数

《贵阳大数据培训》

interpolate 一维、高维插值,如拉格朗日、样条插值等 Scipy

unique 去除重复 Pandas/Numpy

isnull 判断是否为空 Pandas

notnull 判断是否非空 Pandas

PCA 主成分分析 Scikit-Learn

random 生成随机矩阵 Numpy

挖掘建模

分类与预测

主要分类与预测算法

回归分析 确定预测值与其他变量关系。线性、非线性、Logistic、岭回归、主成分回归等

决策树 自顶向下分类

人工神经网络 用神经网络表示输入与输出之间的关系

贝叶斯网络 又称信度网络,是不确定知识表达和推理领域最有效的理论模型之一

支持向量机 将低维非线性可分转化为高维线性可分进行分析

常用插补方法

《 贵阳数据分析师》

均值/中位数/众数 根据属性值类型,取均值、中位数、众数进行插补

使用固定值 将缺失属性用常量替代

最近邻插补法 在记录中找到与缺失样本最接近的样本的该属性值进行插补

回归方法 根据已有数据和与其有关的其他变量数据建立拟合模型来预测

插值法 建立合适的插值函数f(x),未知值计算得到。

拉格让日插值法、牛顿插值法。前者不灵活,增删节点要重来。Scipy库中提供前者。

例:将异常点取空,然后取缺值点前后5个值进行拉格朗日插值

异常值处理:异常值是否剔除看情况,因为有些异常值可能含有有用信息

常用异常值处理方法

《贵州大数据培训》

删除记录 直接删除

视为缺失值 视为缺失值进行缺失值的处理

平均值修正 取前后两个正常值的平均

不处理 判断其原因,若无问题直接使用进行挖掘

数据集成:将多个数据源合并存在一个一致的数据存储中,要考虑实体识别问题和属性冗余问题,从而将数据在最低层上加以转换、提炼和集成

实体识别:同名异义、异名同义、单位不统一

冗余属性识别:多次出现、同属性不同名导致重复

数据变换:对数据规范化处理

简单函数变换,如平方、开方、对数、差分运算

规范化,也称归一化,消除量纲和取值范围的差异,进行标准化处理。映射到[-1,1]或[0,1]内。

[1]最小-最大规范化,也称离差标准化。x*=(x-min)/(max-min);缺点:异常值影响;之后的范围限制在[min,max]中

[2]零-均值规范化,也称标准差规范化,处理后[0,1]。x*=(x-mean)/std

[3]小数定标规范化,移动属性值小数位,映射到[-1,1]。x*=x/10^k

离散化过程就是在取值范围内设立若干个离散花粉店,将取值范围划分为离散区间

等宽法、等频发、基于聚类分析方法

属性构造

小波变换:信号分析手段,小波分析的理论和方法在信号处理、图像处理、语音处理、模式识别、量子物理等领域得到越来越广泛的应用

数据规约:产生更小且保持数据完整性的新数据集。意义在于降低无效、错误数据;降低存储成本;少量且具有代表性的数据大幅加快。

属性规约:属性合并或删除无关维,目标是寻找最小子集使子集概率分布尽可能与原来相同

属性规约常用方法

《贵州大数据培训中心》

合并属性 将就属性合并为新属性 ——

逐步向前选择 从空集开始,逐个加入最优属性,直到无最优或满足条件 {}——

逐步向后删除 从全集开始,每次删除最差属性,直到无最差或满足阈值

决策树归纳 利用决策树归纳能力进行分类,删除未出现的属性,即效果差的属性

主成分分析 用少量变量解释大部分变量,保留大部分信息,将相关性高的数据转为彼此独立

数值规约:通过选择替代的、较小的数据来较少数据量,包括有参数(回归、对数线性模型)和无参数方法(直方图、聚类、抽样)

Python主要数据预处理函数

interpolate 一维、高维插值,如拉格朗日、样条插值等 Scipy

unique 去除重复 Pandas/Numpy

isnull 判断是否为空 Pandas

notnull 判断是否非空 Pandas

PCA 主成分分析 Scikit-Learn

random 生成随机矩阵 Numpy

主要回归模型分类

线性回归 因/自变量是线性关系 对一个或多个自/因变量线性建模,用最小二乘法求系数

非线性回归 因/自变量是非线性 非线性建模

Logistic回归 因变量为0或1 广义线性回归特例,利用Logistic函数将因变量控制0-1内表示取值为1的概率

岭回归 参与建模的自变量间具有多重共线性 改进的最小二乘法

主成分回归 同上 根据PCA提出,是参数估计的一种有偏估计

逻辑回归——Scikit-Learn

决策树——sklearn.tree;输出一个tree.dot文件,许安装Graphviz进行可视化

人工神经网络——keras

BP神经网络 信息正传播,误差逆传播

LM神经网络 给予梯度下降法和牛顿法的多层前馈神经网络,迭代次数少,收敛块,精度高

RBF径向基神经网络 能以任意精度逼近任意连续函数,输入层-隐含层是非线性,隐含层-输出成是线性,特别适合解决分类问题

FNN模糊神经网络 具有模糊权系数或输入信号是模糊两的神经网络,汇聚NN和模糊系统的有点

GMDH神经网络 也称多项式网络,网络结构在训练中变化

ANFIS自适应神经网络 NN镶嵌在一个全模糊的结构中,自动产生、修正、高度概括出最佳隶属函数和模糊规则

SVM——sklearn.svm

随机森林——sklearn.ensemble

朴素贝叶斯——sklearn.naive_bayes

建模的第一步都是建立一个空白的对象,然后设置模型参数,利用fit进行巡林啊,最后用predict方法预测结果,之后进行一些评估如score等

误差评价:绝对误差、相对误差、平均绝对误差、均方误差、均方根误差、平均绝对百分误差、Kappa统计、识别准确度、识别精确率、反馈率、ROC曲线、混淆矩阵

聚类分析

常用方法:划分方法、层次分析方法、基于密度的方法、基于网格的方法、给予模型的方法

常用算法:K-Means、K-中心点、系统聚类(多层次聚类)

评价方法:purity评价法(正确的比例)、RI评价法、F值评价法

聚类可视化工具——TSNE

关联规则:也称为购物篮分析,目标是找出各项之间的关系

常用算法:Apriori、FP-Tree、Eclat算法、灰色关联法

时序模式:给定一个已被观测的时间序列,预测该序列的未来值

常用模型:平滑法、趋势你合法、组合模型、AR模型、MA模型、ARMA模型、ARIMA、ARCH、GARCH模型及衍生

python主要时序算法函数:acf自相关,plot_acf画自相关系数图、pacf计算偏相关系数、plot_pacf画偏相关系数图、adfuller对观测值序列进行单位根检验、diff差分计算、ARIMA创建ARIMA时序模型、summary或summaty2给出ARIMA模型报告、aic/bic/hqic计算ARIMA模型的指标值、forecast预测、acorr_ljungbox检验白噪声

离群点检测

成因:数据源不同、自然变异、测量和收集误差

类型:全局离群点和局部离群点;数值型离群点和分类型离群点;一维离群点和多维离群点

检测方法:基于统计、基于邻近度、基于密度、基于聚类

END.

本文来自企鹅号 - CPDA数据分析师媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习自然语言处理

详解机器学习之感知机理论与实践

阅读大概需要5分钟 上期回顾 详解机器学习之the Learning Problem 导读 本章讲的是让他机器学习说yes/no,目录分为: 感知机假设集合 ...

36912
来自专栏大数据文摘

没有完美的数据插补法,只有最适合的

数据缺失是数据科学家在处理数据时经常遇到的问题,本文作者基于不同的情境提供了相应的数据插补解决办法。没有完美的数据插补法,但总有一款更适合当下情况。

1595
来自专栏ATYUN订阅号

使用Keras建立Wide & Deep神经网络,通过描述预测葡萄酒价格

你能通过“优雅的单宁香”、“成熟的黑醋栗香气”或“浓郁的酒香”这样的描述,预测葡萄酒的价格吗?事实证明,机器学习模型可以。

3364
来自专栏数据科学与人工智能

【陆勤践行】机器学习中距离和相似性度量方法

在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻...

2988
来自专栏机器之心

专栏 | 监督&强化学习模型在金融市场的应用

4804
来自专栏量化投资与机器学习

【深度】监督&强化学习算法在A股中的应用

6554
来自专栏数据派THU

手把手教线性回归分析(附R语言实例)

本文为你介绍线性回归分析。 通常在现实应用中,我们需要去理解一个变量是如何被一些其他变量所决定的。 回答这样的问题,需要我们去建立一个模型。一个模型就是一个公式...

1.1K2
来自专栏数据科学与人工智能

【数据挖掘】聚类算法总结

一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchicalmethods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算...

6289
来自专栏图形学与OpenGL

模拟试题B

1.灰度等级为256级,分辨率为2048*1024的显示器,至少需要的帧缓存容量为( )

3531
来自专栏人工智能头条

胡新辰:LSTM学习教程、资料以及最新进展介绍总结

3492

扫码关注云+社区

领取腾讯云代金券