在python

时间:2018-05-19 14:40:50

标签: python

我是使用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文档,但我没有找到具体的事情要做,或者我可能不理解为初学者。如果我的网站出错,请纠正我。

1 个答案:

答案 0 :(得分:1)

所以您可以做两件事:

  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)
    
  2. 通过获取所有功能,然后过滤出您感兴趣的功能。 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了解更多信息。如果这对您有帮助,请投票。