> For the complete documentation index, see [llms.txt](https://skywateryang.gitbook.io/timeseriesanalysis101/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://skywateryang.gitbook.io/timeseriesanalysis101/5.-te-zheng-sheng-cheng-he-te-zheng-xuan-ze/5.1-te-zheng-gong-cheng-de-kao-lv.md).

# 5.1 特征工程的考虑

举一个简单的例子，下面的表格列出了过去一周7天的温度情况，其中每天记录三次（早中晚）。

| 时间                 | 温度（°F） |
| ------------------ | ------ |
| Monday morning     | 35     |
| Monday midday      | 52     |
| Monday evening     | 15     |
| Tuesday    morning | 37     |
| Tuesday    midday  | 52     |
| Tuesday evening    | 15     |
| Wednesday morning  | 37     |
| Wednesday midday   | 54     |
| Wednesday evening  | 16     |
| Thursday morning   | 39     |
| Thursday midday    | 51     |
| Thursday evening   | 12     |
| Friday morning     | 41     |
| Friday midday      | 55     |
| Friday evening     | 20     |
| Saturday morning   | 43     |
| Saturday midday    | 58     |
| Saturday evening   | 22     |
| Sunday morning     | 46     |
| Sunday midday      | 61     |
| Sunday evening     | 35     |

如果将这些数据点化成折线图，你能看到两个特点，周期性（每天一循环）和趋势性（逐渐增加）。因此考虑这个例子时，我们可以用一些描述性的指标将这个图像的特征提取出来。可以考虑的指标包括以下这些，

* 周期性；按天
* 增加性的趋势；例如计算出斜率
* 早上，中午和晚上的气温均值

通过计算这些指标，我们可以将一个21个值的时间序列压缩成几个数字，同时没有损失太多信息。下一步则是根据实际需要进行特征选择。

以上是一个基础的例子，下面我们将进一步讨论进行特征生成要注意的考虑因素。

**A. 时间序列的性质**

时间序列的性质是应当首先考虑的。

1. 平稳性

   许多时间序列特征都假定数据是平稳的。例如时间序列均值这个特征只有当数据本身是平稳的才有意义。
2. 时间序列长度

   例如最大值和最小值这些特征对于时间序列长度是固定的才有意义，如果时间序列长度是动态增加的，该指标会变得不稳定。一个更长的时间序列出现极端值变多了可能只是因为时间序列变长以后，收集到更多数据点，才导致出现概率增加了。

**B. 领域知识**

场景1：考虑一个物理学时间序列，你需要确保选择的特征在物理学的时间尺度上是有意义的，以及你选择的特征不会受到测量仪器的误差影响。

场景2：考虑一个金融市场上的时间序列，根据行业知识，有些交易市场为了确保金融稳定性，会强制设置每天的最大价格变化，当价格变动过大时，市场会暂时关闭。关于最大价格的特征就会是一个考虑了领域知识的因素。
