额,上一节我做的云里雾里的笔记就是时间序列机器学习
因为时间序列数据在机器学习中可以得到很好的预测
关键洞察力:将时间序列签名(时间戳信息按列扩展到特征集)用于执行机器学习
时间序列分析工具箱——timetk
时间序列机器学习:使用回归算法进行预测;
构造时间序列索引:基于时间模式提取、探索和扩展时间序列索引;
转换不同类型的时间序列数据(例如 tbl、xts、zoo、ts 之间):轻松实现不同类型的时间序列数据之间的相互转换。简书
tq_get()
函数从 FRED 获取数据
FRED是啥?是sklearn里面的dataset嘛
geom_ma
tidyquant的可视化工具,添加一个简单移动平均曲线
tk_index()
来提取索引
扩充时间序列签名
tk_get_timeseries_summary()
来检索索引的摘要信息
glimpse()
语句,允许查看输出tibble中选择的列,而不必每次都打印所有数据
tk_augment_timeseries_signature()
函数将时间戳信息逐列扩展到机器学习特征集中,并将时间序列信息列添加到初始数据表csdn
学长给的栗子是把时间序列信息添加到train和test中
tk_make_future_timeseries
函数从现有索引构造未来索引。
就是当前时间基础上构造需要预测是的时间
tk_get_timeseries_signature()
将未来索引转换成时间序列签名数据框
转化问题
问题:R 中不同类型的时间序列数据难以方便一致地实现相互转换。
解决方案:tk_tbl、tk_xts、tk_zoo、tk_ts
tk_xts
我们开始的时候用 tbl 对象,一个劣势是有时候必须转换成 xts 对象,因为要使用其他包(例如 xts、zoo、quantmod 等等)里基于 xts 对象的函数。
我们可以使用 tk_xts() 函数轻松地将数据转换成 xts 对象。注意,tk_xts() 函数会自动检测包含时间的列,并把该列当做 xts 对象的索引。
哇是不是就不用手动转化了
我们也可以从 xts 转成 tbl 。我们设定 rename_index = "date" 让索引的名字和开始的时候保持一致。这种操作在以前不太容易。
ts
有许多包用了另一种类型的时间序列数据——ts,其中最常见的可能就是 forecast 包。使用 tk_ts() 函数的优点有两个:
与其他 tk_ 函数兼容,可以方便直接的实现数据的转换和逆转换。
更重要的是:当使用 tk_ts 函数时,ts 对象将初始的不规则时间索引(通常是具体的日期)转换成一个索引属性。这使得保留日期和时间信息成为可能。
有两种方法转换回 tbl:
直接使用 tk_tbl(),我们将得到 YEARMON 类型的“规则”的时间索引(来自 zoo 包)。
如果原始对象用 tk_ts() 创建,并且有属性 timetk_index,我们可以通过命令 tk_tbl(timetk_index = TRUE) 转换回去,并得到 Date 格式 “非规则”时间索引。
方法 1:注意,日期列是 YEARMON 类型的。
tk_tbl(beer_sales_ts, rename_index = "date")
方法2:用 has_timetk_idx() 检查 ts 对象是否存在 timetk 索引。
置参数 timetk_idx = TRUE 来找回初始的日期或时间信息
如果返回值是 TRUE,在调用 tk_tbl() 时设定 timetk_idx = TRUE。现在可以看到日期列是 date 类型的,这在以往不容易做到。