当前位置: 首页 > 科技观察

几行Python代码可以提取出数百个时间序列特征_0

时间:2023-03-18 17:53:43 科技观察

传统的机器学习算法无法捕获时间序列数据的时间顺序。数据科学家需要执行相关的特征工程,以将数据的重要特征捕获到多个指标中。生成大量时间序列特征并从中提取相关特征是一项耗时且繁琐的工作。Python的tsfresh包可以为时间序列数据生成标准的数百个常用特征。在本文中,我们将深入讨论tsfresh包的使用。tsfresh是一个开源包,可以生成数百个相关的时间序列特征。从tsfresh生成的特征可用于解决分类、预测和离群值检测用例。tsfresh包提供了对时间序列数据进行特征工程的各种功能,包括:特征生成、特征选择和与大数据的兼容。安装tsfresh也很简单。官方提供了pip和conda的安装方法:pipinstall-Utsfresh#orcondainstall-cconda-forgetsfresh1。特征生成tsfresh包提供了一个自动特征生成API,可以从1个时间序列变量生成超过750个相关特征。生成的特征非常广泛,包括:描述性统计(平均值、最大值、相关性等)基于物理的非线性和复杂性度量数字信号处理相关特征历史压缩特征可以使用tsfresh1次。顺序变量从多个域生成789个特征。importpandasasppdfromtsfreshimportselect_features#读取时间序列数据df=pd.read_excel("train.xlsx",parse_dates=['date']).set_index('date')#自动生成特征features=tsfresh.extract_features(df,column_id="date",column_sort="date")由于功能太多,具体功能介绍请参考官方文档。2.特征选择tsfresh包还提供了基于假设检验的特征选择实现,可以用来识别目标变量的相关特征。为了限制不相关特征的数量,tsfresh包含了新鲜算法(新鲜代表基于可扩展假设测试的特征提取)。tsfresh.select_features()函数用户可以实现特征选择。3.兼容大数据当我们有大量的时间序列数据时。tsfresh还提供API来扩展特征生成/提取,以及针对大量数据的特征选择实现:多线程处理:默认的tsfresh包可以在多个核上并行进行特征生成/提取和特征选择。分布式框架:tsfresh也实现了自己的分布式框架,将特征计算分布在多台机器上,以加快计算速度。Spark兼容:tsfresh也可以使用spark或Dask来处理非常大的数据。总之,tsfresh可以在几行Python代码中生成和选择时间序列特征的相关特征。它从多个基于时间的数据样本域中自动提取和选择750多个经过实际测试的特征。它减少了数据科学家浪费在特征工程上的大量工作时间。而且时序数据相当大,tsfresh也采用了多线程,支持dask和spark来处理单机无法处理的大数据样本。

猜你喜欢