我是使用tsfresh的初学者。我用它来从时间序列中提取特征。使用下面的代码(tsfresh网站的示例代码)为一个名为F_x的特征提供了97个新功能(F_x__abs_energy,F_x__range_count__max_1__min_-1,F_x__variance,F_x__standard_deviation等)。但我不需要所有这些。假设我只想计算F_x__variance和F_x__standard_deviation。我应该在下面的代码中更改什么?
from tsfresh import extract_relevant_features
from tsfresh.feature_extraction import ComprehensiveFCParameters
settings = ComprehensiveFCParameters()
features_filtered_direct = extract_relevant_features(df, y, column_id='id', column_sort='time')
我还阅读了this文档,但我没有找到具体的事情要做,或者我可能不理解为初学者。如果我的网站出错,请纠正我。
答案 0 :(得分:1)
所以您可以做两件事:
设置特征提取器的参数。可以通过在extract_features函数中设置参数“ default_fc_parameters”来完成。有可以使用的预定义设置。您也可以创建自己的版本并将其传递给函数。预定义的是“ ComprehensiveFCParameters”,“ MinimalFCParameters”和“ EfficientFCParameters”。这是完成此操作的示例:
from tsfresh.feature_extraction import ComprehensiveFCParameters
from tsfresh.feature_extraction import extract_feature
settings = ComprehensiveFCParameters()
extract_features(df, default_fc_parameters=settings)
类似地,您可以将感兴趣的特征定义为字典,并将其作为“ kind_to_fc_parameters”传递给extract_features函数。看下面的例子:
kind_to_fc_parameters = {
"F_x": {"mean": None, "std": None, "Variance": None} , "F_y" ={"min": None , "max": None }}
extract_features(df, kind_to_fc_parameters =kind_to_fc_parameters)
通过获取所有功能,然后过滤出您感兴趣的功能。 extract_features函数的输出是一个数据框,因此您只需过滤出您要的特定列感兴趣。这是一个示例:
import pandas as pd
from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures
from tsfresh import extract_features download_robot_execution_failures()
timeseries, y = load_robot_execution_failures()
extracted_features = extract_features(timeseries, column_id="id", column_sort="time")
print(extracted_features["F_x__abs_energy"])
查看documentation了解更多信息。如果这对您有帮助,请投票。