Pyts入门之时间序列的分类---理解LearningShapelets算法(四)

简介

本章节直接跳过了BOSSVS算法,因为BOSSVS和SAX-VSM的区别也就只在于前面数据预处理的方式了,SAX-VSM用的是分箱的字词转换,而BOSSVS用的是Symbolic Fourier Approximation(详见第一节,本文不再赘述)也就是使用傅里叶变换的提取特征方法,所以与其介绍一遍差不多的,不如留给读者自行探索。
那么本节我将给各位介绍pyts中的LearningShapelets算法,来自于14年的“Learning Time-Series Shapelets”这篇文章,本算法过程简单,具体的实现过于复杂(这个时候就感受到了有别人帮你写好直接调用是多么惬意的事情),主要分为以下两步:
1.计算shapelets和时间序列之间的距离。
2.以logistic回归的方式将shapelets作为系数来进行拟合,目的是减小距离。

这里涉及到了一个概念:shapelets
我个人觉得翻译为子特征比较好,啥叫子特征呢,就像下面这样:
在这里插入图片描述
上图中黄线为子序列,红线为子特征,实际上子特征的意思就是以一段曲线来表示原有序列的总体特征,这段曲线可以很长,来表示一大段特征(但不精确,如右边曲线),也可以很短,来表示关键特征(抓住重点,如左边曲线),当我们找到了足够好的shapelets,就可以轻松对时间序列进行分类(比如区分两种树叶只要看到其中一种树叶的其中一小段一定具有锯齿即可)。
理解了之后,这样也引出了三个问题:
1.子特征怎么选取?怎么产生??
2.距离是怎么计算的?
3.我们怎么去预测新的序列?

PS:在进入接下来的api介绍之前,我希望读者能够自行思考一下这几个问题,这几天没动笔的原因其实也是我的初衷是以一种让人更容易理解的方式去学算法,同时把API文档以自己的理解翻译一遍,而之前的文章好像过于深奥了一点,深扒源码就没意思了。

API介绍

class pyts.classification.LearningShapelets
(n_shapelets_per_size=0.2, min_shapelet_length=0.1, 
shapelet_scale=3, penalty='l2', tol=0.001, C=1000, 
learning_rate=1.0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值