首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于python的TSFRESH库花费的时间太长,无法处理。

用于python的TSFRESH库花费的时间太长,无法处理。
EN

Stack Overflow用户
提问于 2016-12-14 16:56:56
回答 4查看 8.3K关注 0票数 13

我偶然看到了TSfresh库,这是一种对时间序列数据进行特性化的方法。文档是伟大的,它似乎是完美的适合我正在进行的项目。

我想实现在TFresh文档的快速启动部分中共享的以下代码。而且看起来很简单。

代码语言:javascript
运行
复制
from tsfresh import extract_relevant_features
feature_filtered_direct=extract_relevant_features(result,y,column_id=0,column_sort=1)

我的数据包括40万行传感器数据,每个传感器有15个不同的id,我开始运行代码,17个小时后,代码仍未完成。我认为这可能是太大的一组数据,无法通过相关的特性提取器运行,所以我把它削减到3000,然后进一步降低到300。这些操作都没有使代码运行不到一个小时,我只是在等待了大约一个小时后才关闭它。我也尝试了标准的特征提取器。

代码语言:javascript
运行
复制
extracted_features = extract_features(timeseries, column_id="id", column_sort="time")

同时尝试TSfresh在其快速启动部分中提供的示例数据集。它包括一个与我的原始数据非常相似的数据集,与我减少到的数据点数量大致相同。

有人对这段代码有经验吗?你要怎么做才能让它工作得更快?我将Anaconda用于python2.7。

更新似乎与多处理相关。因为我在windows上,所以使用多进程代码需要

代码语言:javascript
运行
复制
if __name__ == "__main__":
    main()

有一次我

代码语言:javascript
运行
复制
if __name__ == "__main__":

    extracted_features = extract_features(timeseries, column_id="id", column_sort="time")

对我的代码来说,示例数据起作用了。在运行extract_relevant_features函数和在自己的数据集中运行提取功能模块时,我仍然有一些问题。它似乎在继续缓慢地运行。我有一种感觉,它与多进程冻结也有关系,但没有任何错误,不可能说出来。在不到1%的数据集中,我需要大约30分钟的时间来提取特征。

EN

回答 4

Stack Overflow用户

发布于 2016-12-18 19:26:45

你用的是哪一种?哪个操作系统?

我们知道某些特征计算器的计算成本很高。我们对此无能为力。在未来,我们将实现一些技巧,如缓存,以进一步提高to的效率。

您试过使用MinimalFeatureExtractionSettings只计算基本特性吗?它将只包含一些基本功能,如Max、Min、中值等,但应该以更快的速度运行。

代码语言:javascript
运行
复制
 from tsfresh.feature_extraction import MinimalFeatureExtractionSettings
 extracted_features = extract_features(timeseries, column_id="id", column_sort="time", feature_extraction_settings = MinimalFeatureExtractionSettings())

另外,通过pip install git+https://github.com/blue-yonder/tsfresh从回购版安装最新版本可能是个好主意。我们正在积极开发它,主人应该包含最新和最新的版本;)

票数 9
EN

Stack Overflow用户

发布于 2019-08-08 12:42:56

语法略有改变(请参阅文档),目前的方法是:

代码语言:javascript
运行
复制
from tsfresh.feature_extraction import EfficientFCParameters, MinimalFCParameters
extract_features(timeseries, column_id="id", column_sort="time", default_fc_parameters=MinimalFCParameters())

代码语言:javascript
运行
复制
extract_features(timeseries, column_id="id", column_sort="time", default_fc_parameters=EfficientFCParameters())
票数 6
EN

Stack Overflow用户

发布于 2020-04-14 19:46:27

自0.15.0版本以来,我们改进了Apache Sparkdask的绑定。现在可以直接在通常的tsfreshSpark计算图中使用dask特征提取。

您可以在tsfresh.convenience.bindings中找到与文档这里的绑定。例如,对于dask,它应该是这样的(假设df是一个dask.DataFrame,例如,我们示例中的机器人故障数据)

代码语言:javascript
运行
复制
df = df.melt(id_vars=["id", "time"],
             value_vars=["F_x", "F_y", "F_z", "T_x", "T_y", "T_z"],
             var_name="kind", value_name="value")
df_grouped = df.groupby(["id", "kind"])
features = dask_feature_extraction_on_chunk(df_grouped, column_id="id", column_kind="kind",
                                            column_sort="time", column_value="value",
                                            default_fc_parameters=EfficientFCParameters())
                                            # or any other parameter set

使用daskSpark (或任何类似的东西)都可以帮助您处理非常大的数据--无论是内存还是速度(因为您可以在多台机器上分发工作)。当然,我们仍然像以前一样支持通常的分销商(多古)。

除此之外,还可以与任务编排系统(如tsfresh )一起运行luigi。您可以创建一个任务,只为一个idkind *读取数据*提取特性*将结果写入磁盘,并让luigi处理其余的所有内容。您可能会发现这个在我的博客上的一个可能的实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41148099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档