Python与AI分析时间序列数据_第1页
Python与AI分析时间序列数据_第2页
Python与AI分析时间序列数据_第3页
Python与AI分析时间序列数据_第4页
Python与AI分析时间序列数据_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Python与AI分析时间序列数据目录简介序列分析或时间序列分析的基本概念安装实用软件包PandashmmlearnPyStructCVXOPTPandas:处理,切片和从时间序列数据中提取统计数据示例处理时间序列数据切片时间序列数据提取来自时间序列数据的统计数据平均值最大值最小值一次性获取所有内容重新采样使用mean()重新采样Re-samplingwithmedian()滚动平均值通过隐马尔可夫分析顺序数据模型(HMM)隐马尔可夫模型(HMM)状态(S)输出符号(O)状态转换概率矩阵(A)观察发射概率矩阵(B)先验概率矩阵()

简介

时间序列数据表示一系列特定时间内的数据间隔.如果我们想在机器学习中构建序列预测,那么我们必须处理顺序数据和时间.系列数据是顺序数据的摘要.数据排序是序列数据的一个重要特征.

序列分析或时间序列分析的基本概念

序列分析或时间序列分析是基于先前观察到的,在给定输入序列中预测下一个.预测可以是下一个可能出现的任何事情:符号,数字,次日天气,下一个语音等.序列分析在股票市场分析,天气预报和产品推荐等应用中非常方便.

示例

请考虑以下示例来了解序列预测.这里A,B,C,D是给定值,您必须使用序列预测模型预测值E.

安装实用软件包

用于时间序列数据分析使用Python,我们需要安装以下软件包:

Pandas

Pandas是一个开源的BSD许可库,提供高性能,易于使用的数据结构和Python数据分析工具.您可以使用以下命令安装Pandas:

pipinstallpandas

如果您使用的是Anaconda并希望使用conda包管理器进行安装,那么您可以使用以下命令:

condainstall-canacondapandas

hmmlearn

这是一个开源的BSD-licensed库,由简单的算法和模型组成,用于学习Python中的隐马尔可夫模型(HMM).你可以在以下命令的帮助下安装它:

pipinstallhmmlearn

如果您使用的是Anaconda并希望使用conda包管理器进行安装,那么您可以使用以下命令:

condainstall-comniahmmlearn

PyStruct

这是一个结构化学习,预测库.在PyStruct中实现的学习算法具有诸如条件随机场(CRF),最大边缘马尔可夫随机网络(M3N)或结构支持向量机之类的名称.你可以借助以下命令安装它:

pipinstallpystruct

CVXOPT

它用于基于Python编程语言的凸优化.它也是一个免费的软件包.您可以使用以下命令和减号安装它;

pipinstallcvxopt

如果您使用的是Anaconda并希望使用conda软件包管理器进行安装,那么您可以使用以下命令:

condainstall-canacondacvdoxt

Pandas:处理,切片和从时间序列数据中提取统计数据

如果您必须使用时间序列数据,Pandas是一个非常有用的工具.在Pandas的帮助下,您可以执行以下:

使用创建一系列日期pd.date_rangepackage使用pd.Series包索引带有日期的pandas使用ts.resample包进行重新采样更改频率

示例

以下示例显示您使用以下方式处理和切片时间序列数据大熊猫.请注意,这里我们使用的是每月北极涛动数据,可以从monthly.ao.index.b50.current.ascii,可以转换为文本格式供我们使用.

处理时间序列数据

对于处理时间序列数据,您必须执行以下步骤:

第一步涉及导入以下包:

importnumpyasnp

importmatplotlib.pyplotasplt

importpandasaspd

接下来,定义一个函数,它将从输入文件中读取数据,如下面给出的代码所示:

def

read_data(input_file):

input_data

=

np.loadtxt(input_file,

delimiter

=

None)

现在,将此数据转换为时间序列.为此,请创建我们时间序列的日期范围.在这个例子中,我们保留一个月的数据频率.我们的文件的数据从1950年1月开始.

dates=pd.date_range('1950-01',periods=input_data.shape[0],freq='M')

在这一步中,我们在Pandas系列的帮助下创建时间序列数据,如下图所示:

output=pd.Series(input_data[:,index],index=dates)

returnoutput

if__name__=='__main__':

输入输入文件的路径,如下所示:

input_file="/Users/admin/AO.txt"

现在,将列转换为时间序列格式,如下所示:

timeseries=read_data(input_file)

最后,使用显示和减去的命令绘制和可视化数据;

plt.figure()

timeseries.plot()

plt.show()

您将观察到如下图所示的图形:

切片时间序列数据

切片只涉及检索时间序列数据的某些部分.作为示例的一部分,我们仅从1980年到1990年对数据进行切片.观察执行此任务的以下代码:

timeseries['1980':'1990'].plot()

matplotlib.axes._subplots.AxesSubplotat0xa0e4b00

plt.show()

当您运行切片时间序列数据的代码时,您可以将以下图表视为图中显示的是:

提取来自时间序列数据的统计数据

如果需要得出一些重要结论,则必须从给定数据中提取一些统计数据.平均值,方差,相关性,最大值和最小值是一些此类统计数据.如果要从给定的时间序列数据中提取此类统计数据,可以使用以下代码;

平均值

您可以使用mean()函数,用于查找均值,如此处所示:

timeseries.mean()

然后,您将针对所讨论的示例观察到的输出是:

-0.11143128165238671

最大值

您可以使用max()功能查找最大值,如下所示:

timeseries.max()

然后,您将针对所讨论的示例观察到的输出是:

3.4952999999999999

最小值

您可以使用min()函数查找最小值,如下所示:

timeseries.min()

然后,您将针对所讨论的示例观察到的输出是:

-4.2656999999999998

一次性获取所有内容

如果您想一次计算所有统计数据,可以使用describe()函数,如下所示:

timeseries.describe()

然后,您将针对所讨论的示例观察到的输出是:

count817.000000

mean-0.111431

std1.003151

min-4.265700

25%-0.649430

50%-0.042744

75%0.475720

max3.495300

dtype:float64

重新采样

您可以将数据重新采样到不同的时间频率.执行重新采样的两个参数是:

时间段

方法

使用mean()重新采样

您可以使用以下代码使用mean()重新采样数据方法,这是默认方法:

timeseries_mm

=

timeseries.resample("A").mean()

timeseries_mm.plot(style

=

'g--')

plt.show()

然后,您可以观察以下图表作为重采样的输出使用mean():

Re-samplingwithmedian()

您可以使用以下代码使用median()方法重新取样数据:

timeseries_mm

=

timeseries.resample("A").median()

timeseries_mm.plot()

plt.show()

然后,您可以观察下图作为重新采样的输出,其中位数为():

滚动平均值

您可以使用以下代码计算滚动(移动)均值和减去;

timeseries.rolling(window=12,center=False).mean().plot(style='-g')

plt.show()

然后,您可以观察下图作为滚动的输出(移动)mean:

通过隐马尔可夫分析顺序数据模型(HMM)

HMM是一种统计模型,广泛用于具有延续性和可扩展性的数据,如时间序列股票市场分析,健康检查和语音反馈gnition.本节详细介绍了使用隐马尔可夫模型(HMM)分析顺序数据.

隐马尔可夫模型(HMM)

HMM是一个随机模型这是建立在马尔可夫链概念的基础上的,该假设未来统计数据的概率仅取决于当前的过程状态而不是之前的任何状态.例如,当掷硬币时,我们不能说第五次抛掷的结果将是一个头.这是因为硬币没有任何记忆,下一个结果不依赖于之前的结果.

数学上,HMM由以下变量和减号组成;

状态(S)

它是HMM中存在的一组隐藏或潜在状态.它由S表示.

输出符号(O)

它是HMM中存在的一组可能的输出符号.它由O表示.

状态转换概率矩阵(A)

它是从一个状态转换到另一个状态的概率状态.它由A表示.

观察发射概率矩阵(B)

它是在特定状态下发射/观察符号的概率.它用B表示.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论