scitype__transform_output#
- scitype__transform_output()[源代码][源代码]#
转换器的输入数据的科学类型。
字符串名称:
"scitype:transform-output"公共科学类型标签
值:字符串,可选值为
"Series"、"Panel"、"Primitives"之一示例:
"Series"默认值:
"系列"
sktime中的转换是多态的,可以根据输入数据的科学类型具有多种输入/输出行为。以下标签指定输入/输出行为:
"scitype:transform-input": 输入数据X的科学类型。"scitype:transform-output": 给定输入数据的情况下,输出数据的类型。"scitype:instancewise": 转换是否是实例化的。"scitype:transform-labels": 如果使用,目标标签y的科学类型"requires_X": 在fit和transform中X是否是强制性的"requires_y": 在fit和transform中y是否是强制性的
标签
"scitype:transform-input"和"scitype:transform-output"共同指定了转换的输入/输出类型。两者的可能值都来自一个 scitype 字符串列表,这些字符串是:
"Series": 一个单一的时间序列。"Panel": 一个时间序列面板,即,一组时间序列的集合。"Primitives": 原始类型的集合,例如,标量的集合。这是在 datatypes 模块中使用的 scitype"Table"的别名。
这两个标签的组合应理解为:
如果
"scitype:transform-input"的值为input_type,并且"scitype:transform-output"的值为output_type,然后,如果我将
input_type类型的输入数据传递给转换器的transform方法,我将得到output_type类型的输出数据。进一步的输入类型通过在实例或索引上进行广播来处理,如果可能的话。
例如,如果一个变换器的
"scitype:transform-input"是"Series",而"scitype:transform-output"是"Series",那么在给定一个单一时间序列作为输入的情况下,transform将产生一个单一时间序列作为输出。其他输入类型通过在实例或索引上进行广播来处理。例如,在同样的情况下,如果输入是一个时间序列面板(类型为
"Panel"),那么转换器将对每个时间序列进行转换,并生成一个时间序列面板输出(类型为 scipy"Panel")。需要注意的是,这种情况发生在两个标签的值都为
"Series"时,"Panel"的行为由广播隐含。只有在转换添加索引级别、删除索引级别或更改面板中序列的索引数量时,才会使用值
"Panel"。对于类型对
"Series"到"Series",我们简写为 “Series-to-Series”,其他类型对也类似,下面列出了可能的类型对。为了说明,建议在各自的输入类型上尝试提到的转换,以理解其行为。
Series-to-Series,这会将单个序列转换为单个序列。面板转换为面板,层次序列转换为层次序列。例如滞后,
Lag,或差分,Differencer。Series-to-Primitives,这会将单个系列转换为原始集合,单个时间序列被转换为
pd.DataFrame的一行。一个面板被转换为pd.DataFrame,其行数与面板中的时间序列数量相同。一个层次系列被转换为pd.DataFrame,保留层次索引,每一行对应一个非时间性的叶节点。例如特征提取或汇总(均值、分位数等),参见SummaryTransformer。Series-to-Panel,这会将单个系列转换为时间序列面板。面板被转换为具有附加索引级别的多层次系列。例如,时间序列自助法,其中每个输入系列生成多个自助样本,参见
STLBootstrapTransformer或TSBootstrapAdapter。Panel-to-Series,这会将一个时间序列面板转换为一个单一的时间序列。例如,保留时间索引的聚合,例如每个索引或区间的平均值,参见
Merger。
transform的输入和输出类型之间的关系总结如下表所示,其中"scitype:transform-input"为"Series"的情况。第一列是
X的类型,它不一定是"Series",第二列是"scitype:transform-output"标签的值,第三列是transform输出的类型。输出类型是从
transform的输入类型中获得的,这是通过标签值定义的类型进行广播得到的。返回中的实例索引对应于输入
X中的实例。