时间序列数据的特征提取

CDA数据分析师 出品

当你想对时间序列数据做分类时,有两种选择,一个是用时间序列特定的方法,比如说说LSTM模型。另外一种方法就是来从时间序列中提取特征从而将这些特征用在有监督的模型上。在这篇文章中,我们来看下如何使用tsfresh包自动的提取时间序列数据。

这份数据的来源是 。这个网站中提供对很多数据集有高精度的模型,如何有兴趣的,可以去详细了解一下。时间序列比一般标准的目标要难一些,这是因为在时间序列里的数据本身每个样本就不是独立的,两个时间上月接近的样本,就越有相关性。比如说温度,如果今天的温度问20度,那明天更加有可能是15或者25度,而不是5或者35度。

这表明这我们不能用常见的分类器来拟合数据,因为对于普通的分类器来说,数据的假设前提都是需要是样本和样本是独立的。并且更重要的是,有的和时间相关的数据集有更加复杂的结构,一个样本包含了多个特征,比如说温度,湿度,分速等等。

虽然说时间序列的数据很特别,但是我们可以使用特征提起的方法将一个序列降低到一个点。比如说,如果我们现在是在对一个月内的天气相关的数据做处理,我们可以使用以下多个特征:

  • 最小最大温度
  • 温度平均值
  • 温度方差
  • 最小最大湿度

这里只是给出了几个例子而已,当然了这里可以有很多种特征,将他们全部列举出来会特别麻烦,幸运的是,有一个tsfresh包,可以自动的提取出很多特征。

tsfresh包在提取出的众多的特征中,需要选取其中最为相关的,最具有预测能力的特征。并且为了防止过拟合,需要首先对数据集做切分,并且只对训练集做特征选择,否则会造成过拟合的问题。tsfresh包使用的是成对检验法来做特征选择的。

我们先来从 数据列表列提取3个时间序列数据集,FordA, FordB, 和Wafre.并且这些数据集中提取特征。首先我们需要将这些1维的数据给上下拼接起来。

In [9]: d.head()Out[9]: 0 1 2 30 1.01430 1.0143 1.01430 1.014301 -0.88485 -1.0375 -0.97771 -1.016902 0.58040 0.5804 0.59777 0.597773 -0.88390 -1.0371 -0.97998 -1.012104 1.10500 1.2856 1.19630 1.25610

需要使用stack做一次拼接

d = d.stack()d.index.rename([ ‘id’, ‘time’ ], inplace = True )d = d.reset_index()

得出以下的结果

In [11]: d.head()Out[11]: id time 00 0 0 1.01431 0 1 1.01432 0 2 1.01433 0 3 1.01434 0 4 1.0143

特征提取的工作量是非常大的,所以tsfresh使用分布计算的方法来高效的做特征提取。另外一种方式就可以直接设置n_jobs为1。具体代码为以下

f = extract_features( d, column_id = “id”, column_sort = “time” )# Feature Extraction: 20it [22:33, 67.67s/it]

这个时候f中有一些特征是空值,可以使用tsfresh提供的impute函数过滤掉这些特征

impute( f )assert f.isnull().sum().sum() == 0

当做特征选择的时候,有一个fdr_level超参数,这指的是所有不相关特征占总体的理论期望阈值,默认值为5%,也就是从生产的特征中,删除掉最不相关的特征,且这部分特征占总比的5%。有的时候我们还是需要加大这个值到0.5,甚至0.9,从而可以选取最重要的特征,并且防止纬度灾难。

In [2]: run select_features.pyloading data/wafer/features.csvselecting features…selected 247 features.saving data/wafer/train.csvsaving data/wafer/test.csv

当数据训练好之后,则就可以开始使用逻辑回归等分类器来对模型做拟合了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/255716.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

提取数据_提取图表曲线数据的方法

采用计算机模拟预测电池性能时,一般都需要利用实验数据验证模型的准确性。如果自己无法获取实验数据,那就只能利用文献报道的数据来校正模型。本文介绍从图表曲线中提取数据的小软件及其操作步骤。 操作步骤介绍 (1)软件介绍:Engauge是一款开源软件,用于从文献曲线图或地图…

python如何提取数据_python提取数据的常用方法

在我们要对某一种情况进行分析时,需要大批量的数据材料作为分析的基础,在使用python爬取时,就会涉及到不同的抓取方法。在抓取数据的类型时,又会分为不同的情况进行讨论,本篇整理了三种提取数据方法:正则表达式、BeautifulSoup、lxml。下面就这些方法进行详解。 假设我们…

Tableau数据连接与加载(数据提取)

文章目录 一、实时连接与数据加载二、创建数据提取三、刷新数据提取四、向数据提取添加数据 一、实时连接与数据加载 1、区别 Tableau加载数据有两种基本方式,一种是实时连接,即Tableau从数据源获取查询结果,本身不存储源数据;另…

数据提取-数据提取软件

数据提取,数据提取主要是用来收集数据。这也是数据提取最直接和最常见的用途。由于数据提取是一个工具是一个软件,程序运行速度极快,而且不会因为做重复的事情而感到疲劳,所以使用数据提取来获取大量的数据就变得非常容易和快速。…

科研神器----数据提取软件WebPlotDigitizer的使用

今天介绍一款在写论文时很有帮助的数据提取软件WebPlotDigitizer,在我们查阅参考文献的时候,经常会看到文献中相关的数据图,而这类图通常是只有图形没有具体数据的。为了进一步进行分析处理,我们往往需要获取到图表原始的数据&…

大学四年,因为这8个网站,我成为同学眼中的学霸

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 大学期间,几乎每一个教过我的老师都反应,我的学习态度不好&#x…

chatgpt赋能python:Python:输出0-9的数字

Python:输出0-9的数字 Python是一种简单易用的编程语言,也是一种高级、解释性、交互式和面向对象的动态编程语言。在这篇文章中,我们将介绍如何使用Python编写代码来输出0-9的数字。 安装Python 在使用Python之前,首先要安装它…

2023 简约ChatGPT网页全开源源码

全开源的,很简约,密钥在chat.php里面输入就可以用了,分享给大家自己拿去玩玩,对接的是gpt3.5的版本。 。。。

查看网页源代码 / 查看框架源代码

网页源代码---是父级网页的代码,可在页面内右击或使用快捷键CtrlU 也可以在你想要查看的网页地址栏前面加上入view-source: 框架源代码---网页中有一种节点叫iframe,相当于网页的子页面,他的结构和外部网页的结构完全一致,框架源代…

谷歌浏览器查看网页源代码

Mac OS 苹果系统: optionU 快捷键 Windows系统: 方法一:在谷歌浏览器的任一页面上右键,查看源代码,即可看到该页面的html代码。 方法二:在谷歌浏览器的任一页面中按下快捷键ctrlU,即可看到该页面的html代…

【html代码】Windows网页版界面源码

介绍: Windows12 源码模拟网页win12 ,无需安装,打开start.html即可,功能可以自行增加或者二开等等。 程序下载:https://qumaw.lanzoul.com/i9cMX0dlxygd

查看网页源代码的方法

方法一:右键查看网页源代码 方法二:F12开发者工具 方法三:view-source:url 查看网络数据包: 在开发者工具下选择network就可以查看网络数据包。F5刷新一下可以的到数据包。 转载于:https://www.cnblogs.com/csm21/p/10579543.html…

Python爬虫获取网页源代码出现乱码

发现用python用requests在百度中获得的代码有乱码 import requests # 0.通过如下代码,会发现获取的网页源代码出现乱码 url https://www.baidu.com res requests.get(url).text print(res)出现乱码 查看python获得的编码格式 import requests # 0.通过如下代码…

php网页能实现飘窗吗,网页飘窗源代码

网页飘窗源代码 具体代码如下所示: //link "http://www.myexceptions.net"; //document.getElementById("lka").hreflink; var x 50,y 60 var xin true, yin true var step 1 var delay 20 var objdocument.getElementById("codefa…

如何用java获取网页源代码

如何用java爬取网页源代码 分为3个步骤: 分析实现方式代码展示结果展示 1、分析 以b站为例 抓取b站的源代码是这样的 那么我可以用URL对象获取HttpURLConnection对象 HttpURLConnection对象:它继承自URLConnection,可用于向指定网站发送GE…

Android获取网页源代码

工程目录&#xff1a; 清单文件增加访问网络权限&#xff0c;防止Cleartext HTTP traffic to xxx not permitted错误设置CleartextTraffic“true” <uses-permission android:name"android.permission.INTERNET"/>android:usesCleartextTraffic"true&qu…

屏蔽html查看源代码,禁止查看网页源代码方法

总是有新手问,如何禁止别人查看自己的网页源代码?答案是没有,对于有经验者所有方法都是徒劳的。 禁止查看网页源代码方法 一般常用的方法是在网页中加上类似的JS代码,屏蔽屏蔽键盘和鼠标右键。document.onkeydown = function() {var e = window.event || arguments[0]; if …

使用 Python3 获取网页源代码

爬虫的数据爬取量非常大&#xff0c;显然不可能对每个页面都手动复制源代码&#xff0c;因此就有必要使用自动化的方式来获取网页源代码。requests是Python的一个第三方HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;库&#xff0c;它比P…

html页面内容查找代码,网页源代码查看

怎么看一个网站的源代码,网页源代码怎么看 制作网页除了需要自己不断的灵感源泉,更需要借鉴前人们的经验和宝贵资源,平时多看别人的作品来丰富自己的知识库是十分好的方法,那我们怎么来借鉴别人的作品呢?当然是看别人的页面源代码了。互联网发展如此迅速。 如何查看一个网…

网页源代码查看竟然有这么多方法!你都知道吗?

当我们在浏览网页的时候&#xff0c;看到喜欢的网页&#xff0c;总想研究下它的代码是怎样写的&#xff0c;值得借鉴参考来修改自己的网站源码。你知道如何查看网页源代码吗&#xff1f; 网页源代码是什么&#xff1f; 网站源码&#xff0c;也称源代码&#xff0c;源程序&…