再次尝试将我的脚趾浸入高级数据科学中,我决定尝试 高斯流程模块 in sci-kit learn. I’一直在使用气压数据进行研究 尘埃魔鬼,并且该工作涉及在速度慢慢变化的时间序列中发现短逢低。
原则上,高斯过程提供了一种模拟时间序列缓慢变化部分的方法。基本上,这样的分析假定噪声侵扰每个数据点取决于其他附近数据点的值。说这的技术方法是 协方差矩阵 对于数据流是非对角线的。
因此,我将pc蛋蛋平台下载安装数据文件加载到iPython笔记本中,并应用了SCI-套件学习高斯进程模块以建模背景振荡。这里’s the notebook.
%matplotlib inline
#2015 Feb 15 -- A lot of this code was adapted from
# http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gp_regression.html.
import numpy as np
从 sklearn.gaussian_process import GaussianProcess
从 matplotlib import pyplot as pl
import seaborn as sns
import pandas as pd
sns.set(palette="Set2")
#from numpy import genfromtxt
my_data = np.genfromtxt('Location-A_P28_DATA-003.CSV', delimiter=',', skip_header=7, usecols=(0, 1), names=['time', 'pressure'])
X = np.atleast_2d(np.array(my_data['time'])[0:1000]).T
y = np.atleast_2d(np.array(my_data['pressure'])[0:1000]).T
y -= np.median(y)
# Instanciate a Gaussian Process model
gp = GaussianProcess(theta0=1e-2, thetaL=abs(y[1]-y[0]), thetaU=np.std(y), nugget=1e-3)
# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)
# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, MSE = gp.predict(X, eval_MSE=True)
sigma = np.sqrt(MSE)
data = pd.DataFrame(dict(time=X[:,0], pres=y[:,0]))
sns.lmplot("time", "pres", data=data, color='red', fit_reg=False, size=10)
predicted_data = pd.DataFrame(dict(time=X[:,0], pres=y_pred[:,0]))
pl.plot(X, y_pred, color='blue')
不幸的是,时间序列有一些大的跳跃,并且这些慢慢改变高斯过程中的慢速描述。导致这些跳跃是pc蛋蛋平台下载安装很好的问题,但是对于这个小分析的目的,他们是pc蛋蛋平台下载安装麻烦的源泉。
可能需要追求其他一些技术。更不用说执行高斯进程分析所需的时间与数据点数的第三个电源,因此它会非常慢。