Python预测 数据分析与算法 学习笔记(特征工程、时间序列)1

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: Python预测 数据分析与算法 学习笔记(特征工程、时间序列)

第3章 探索规律

3.1 相关分析

相关关系是一种与函数关系相区别的非确定性关系,而相关分析就是研究事物或现象之间是否存在这种非确定性关系的统计方法。相关分析按处理问题的不同,通常可分为自相关分析、偏相关分析、简单相关分析、互相关分析以及典型相关分析。其中自相关分析、偏相关分析适用于分析变量自身的规律;简单相关分析通常可分析任意两个等长数列间的相的相关性;而互相关分析则允许在一定的间隔下讲行简单相关分析:典型相关分析适用于分析两组变量的相关性。

3.1.1自相关分析

在Python中,可使用statsmodels.graphics.tasplots模块下的plot_acf函数来分析时间序列的自相关性。

表 plot_acf函数定义及参数说明

函数定义
plot_acf(x,ax=None,lags=None,alpha=0.5,use_vlines=Ture,unbiased=True,fft=False,title='Autocorrelation',zero=True,vlines_kwargs=None,**kwargs)
参数说明
lags 可选项,表示延迟期数(横坐标),一般需要提供一个整数值或一个数值,当提供一个整数值时,它会按np.arange(lags)进行转换,默认情况下,它是np.arange(len(corr))
alpha 可选项,标量值,当设定该值时,对应函数会返回对应的置信区间,比如当设置 alpha=0.05时,将返回95%的置信区间。若将该值设定为None,则函数不该回置信区间
use_vlines 可选项,逻辑值。若为True,则绘制垂直线和标记。若为False,则只会绘制标记。默认为marker是'o',可以通过设置"marker"参数来修改
unbiased 逻辑值,如果是True,则自协方差的分母是n-k,否则为n
fft 逻辑值,如果是 True,则使用FFT来计算ACF
title 自相关图的标题,默认为Autocorrelation
zero 逻辑值,是否包含0-lag的自相关,默认为 True
vlines_kwargs 可选项,字典对象,包含传递给vlines的关键参数
**kwargs 可选项,直接传递给 Matplotlib中的 plot和 axhline函数的可选参数
ax 可选项,Matplotlib AxesSubplot 实例,当提供时,则直接基于ax来绘图,而不需要重新创建一个新画布来绘图
x 时间序列值组成的数组对象

3.1.2偏相关分析

在Python中,可使用statsmodels.graphics.tasplots模块下的plot_pacf函数来分析时间序列的偏相关性。

表 plot_pacf函数定义及参数说明

函数定义
plot_pacf(x,ax=None,lags=None,alpha=0.05,method='ywunbiased',use_vlines=True,title='Partial Autocorrelation',zero=True,vlines_kwargs=None,**kwargs)
参数说明
x 时间序列值组成的数组对象
ax 可选项,Matplotlib AxesSubplot 实例,当提供时,则直接基于ax来绘图,而不需要重新创建一个新画布来绘图
lags 可选项,表示延迟期数(横坐标),一般需要提供一个整数值或一个数值,当提供一个整数值时,它会按np.arange(lags)进行转换;默认情况下,它是np.arange(len(corr))
alpha 可选项,标量值,当设定该值时,对应函数会返回对应的置信区间,比如当设置alpha=0.05时,将返回95%的置信区间。若将该值设定为None,则函数不返回置信区间
method 可取的值包括'ywunbiased','ywmle'和'ols',可按如下方法来选择使用。-yw or ywunbiased:默认项,在acovf的分母中进行偏差纠正的yule walker-ywm or ywmle:没有偏差纠正的yule walker-ols:基于时间序列延迟和常数项构建的回归-ld or ldunbiased:进行偏差纠正的Levinson-Durbin递归-ldb or Idbiased:没有偏差纠正的Levinson-Durbin递归
use_lines 可选项,逻辑值。若为True,则绘制垂直线和标记。若为False,则只会绘制标记。默认为marker是'o',可以通过设置"marker"参数来修改
title 自相关图的标题,默认为 Partial Autocorrelation
zero 逻辑值,是否包含0-lag 的自相关,默认为 True
vlines_kwargs 可选项,字典对象,包含传递给vlines的关键参数
**kwargs 可选项,直接传递给Matplotlib中的plot和 axhline函数的可选参数

3.1.3简单相关分析

常见的相关分析的方法主要有散点图和相关图

1.散点图

散点图就是在数据点在直角坐标系上的分布图,通常分为散点图矩阵和三维散点图。其中散点图矩阵是变量两两组合,由数据点分布图构成的矩阵,而三维散点图就是从所有变量中选择3个变量进行绘制,进一步在三维空间里观察数据的形态。

  1. 散点图矩阵

Pandas.plotting模块下的scatter_matrix函数,使用该函数可快速绘制散点图。

import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import matplotlib.pyplot as plt
iris = pd.read_csv('http://image.cador.cn/data/iris.csv')
# 参数说明
#     figsize=(10,10) 设置画布大小为10x10
#     alpha=1,设置透明度,此处设置为不透明
#     hist_kwds={"bins":20} 设置对角线上直方图参数
#     可通过设置diagonal参数为kde将对角图像设置为密度图
pd.plotting.scatter_matrix(iris,figsize=(10,10),alpha=1,hist_kwds={"bins":20})
plt.show()

#对角线上为单变量的直方图

此外,我们还可以使用Seaborn库中的pairplot函数来绘制散点图矩阵。

import seaborn as sns
sns.pairplot(iris,hue="Species")
plt.show()


#通过hue参数指定了分组的变量,这里使用鸢尾花的种类进行分组。对角线上的图形表示各个变量在不同鸢尾花类型下的分布情况;其他图形分别用不同颜色为数据点着色。根据该图可以更进一步地知道不同类型鸢尾花各变量的相关分析,以及线性、非线性的变化规律。

  1. 三维散点图

常用于绘制散点图的方法是使用mpl_toolkits库,该库中的mplot3d模块可以帮助我们绘制三维图形,主要使用的是Axes3D类。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D 
dims = {'x':'Sepal.Length','y':'Petal.Length','z':'Petal.Width'}
types = iris.Species.value_counts().index.tolist()
# 绘制散点图
fig = plt.figure()
ax = Axes3D(fig)
for iris_type in types:
    tmp_data = iris[iris.Species==iris_type]
    x,y,z = tmp_data[dims['x']], tmp_data[dims['x']], tmp_data[dims['z']]
    ax.scatter(x, y, z, label=iris_type)
# 绘制图例
ax.legend(loc='upper left')
# 添加坐标轴(顺序是Z, Y, X)
ax.set_zlabel(dims['z'])
ax.set_ylabel(dims['y'])
ax.set_xlabel(dims['x'])
plt.show()


2.相关图

所谓相关图是基于变量间的相关系数大小,通过可视化方式反应不同变量组合间相关关系的差异的图形,可以把相关图分为相关矩阵图。相关层次图。

  1. 相关矩阵图

在python中绘制相关矩阵图可以使用Seaborn库的heatmap方法,用pandas.corr函数来获取相关系数矩阵。

  1. 相关层次图

相关层次图是通过计算变量间的距离来判断各变量是否属于同一类的方法,体现的是变量之间的相关性。此外,通过将相关系数转化为距离度量进行系统聚类,旨在分析各变量的相关关系及组合影响情况。

import pandas as pd
import numpy as np
mtcars = pd.read_csv("http://image.cador.cn/data/mtcars.csv")
mtcars.drop(columns="_",inplace=True)
# 计算第四种相异性度量
d=np.sqrt(1-mtcars.corr()*mtcars.corr())
from scipy.spatial.distance import pdist,squareform
from scipy.cluster.hierarchy import linkage
from scipy.cluster.hierarchy import dendrogram
row_clusters = linkage(pdist(d,metric='euclidean'),method='ward')
row_dendr = dendrogram(row_clusters,labels = d.index)
plt.tight_layout()
plt.ylabel('Euclidean distance')
plt.plot([0,2000],[1.5,1.5],c='gray',linestyle='--')
plt.show()

变量drat、am、gear相关性较强,cyl、disp、mpg、wt相关性较强,hp、vs、qsec、carb相关性较强。

相关文章
|
5天前
|
算法 数据可视化 Python
Python中利用遗传算法探索迷宫出路
本文探讨了如何利用Python和遗传算法解决迷宫问题。迷宫建模通过二维数组实现,0表示通路,1为墙壁,'S'和'E'分别代表起点与终点。遗传算法的核心包括个体编码(路径方向序列)、适应度函数(评估路径有效性)、选择、交叉和变异操作。通过迭代优化,算法逐步生成更优路径,最终找到从起点到终点的最佳解决方案。文末还展示了结果可视化方法及遗传算法的应用前景。
|
9天前
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
39 7
|
16天前
|
存储 监控 算法
员工电脑监控场景下 Python 红黑树算法的深度解析
在当代企业管理范式中,员工电脑监控业已成为一种广泛采用的策略性手段,其核心目标在于维护企业信息安全、提升工作效能并确保合规性。借助对员工电脑操作的实时监测机制,企业能够敏锐洞察潜在风险,诸如数据泄露、恶意软件侵袭等威胁。而员工电脑监控系统的高效运作,高度依赖于底层的数据结构与算法架构。本文旨在深入探究红黑树(Red - Black Tree)这一数据结构在员工电脑监控领域的应用,并通过 Python 代码实例详尽阐释其实现机制。
37 6
|
20天前
|
运维 监控 算法
基于 Python 迪杰斯特拉算法的局域网计算机监控技术探究
信息技术高速演进的当下,局域网计算机监控对于保障企业网络安全、优化资源配置以及提升整体运行效能具有关键意义。通过实时监测网络状态、追踪计算机活动,企业得以及时察觉潜在风险并采取相应举措。在这一复杂的监控体系背后,数据结构与算法发挥着不可或缺的作用。本文将聚焦于迪杰斯特拉(Dijkstra)算法,深入探究其在局域网计算机监控中的应用,并借助 Python 代码示例予以详细阐释。
42 6
|
29天前
|
人工智能 编解码 算法
如何在Python下实现摄像头|屏幕|AI视觉算法数据的RTMP直播推送
本文详细讲解了在Python环境下使用大牛直播SDK实现RTMP推流的过程。从技术背景到代码实现,涵盖Python生态优势、AI视觉算法应用、RTMP稳定性及跨平台支持等内容。通过丰富功能如音频编码、视频编码、实时预览等,结合实际代码示例,为开发者提供完整指南。同时探讨C接口转换Python时的注意事项,包括数据类型映射、内存管理、回调函数等关键点。最终总结Python在RTMP推流与AI视觉算法结合中的重要性与前景,为行业应用带来便利与革新。
|
29天前
|
存储 监控 算法
基于 Python 哈希表算法的员工上网管理策略研究
于当下数字化办公环境而言,员工上网管理已成为企业运营管理的关键环节。企业有必要对员工的网络访问行为予以监控,以此确保信息安全并提升工作效率。在处理员工上网管理相关数据时,适宜的数据结构与算法起着举足轻重的作用。本文将深入探究哈希表这一数据结构在员工上网管理场景中的应用,并借助 Python 代码示例展开详尽阐述。
43 3
|
30天前
|
人工智能 监控 算法
Python下的毫秒级延迟RTSP|RTMP播放器技术探究和AI视觉算法对接
本文深入解析了基于Python实现的RTSP/RTMP播放器,探讨其代码结构、实现原理及优化策略。播放器通过大牛直播SDK提供的接口,支持低延迟播放,适用于实时监控、视频会议和智能分析等场景。文章详细介绍了播放控制、硬件解码、录像与截图功能,并分析了回调机制和UI设计。此外,还讨论了性能优化方法(如硬件加速、异步处理)和功能扩展(如音量调节、多格式支持)。针对AI视觉算法对接,文章提供了YUV/RGB数据处理示例,便于开发者在Python环境下进行算法集成。最终,播放器凭借低延迟、高兼容性和灵活扩展性,为实时交互场景提供了高效解决方案。
118 4
|
1月前
|
存储 算法 文件存储
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
|
存储 Linux 索引
python基础学习笔记
服务器 1.ftp服务器         FTP是FileTransferProtocol(文件传输协议)的英文简称,中文名称为“文传协议”。
1563 0
|
数据安全/隐私保护 Python