如何解决DTW 和 kNN-DTW 时间复杂度
我已经使用自定义 DTW 指标和 sci-kit learn 实现了 KNN,如下所示:
def dtw(t1,t2):
distance = fastdtw(t1,t2)[0]
return distance
model = KNeighborsClassifier(n_neighbors=1,metric=dtw)
此外,我还为模板匹配实现了独立的 DTW,如下所示:
def calc_dtw():
predictions = []
for i in range(len(X)): #X is an array containing X values to be predicted
distances = []
for j in range(len(self.X_)):
distances.append(fastdtw(X[i],self.X_[j])[0]) #self.X_ are the templates
closest = distances.index(min(distances))
predictions.append(self.y_[closest])
return predictions
DTW 的两种实现都使用相同的“快速 dtw”库。我运行了一个测试来计算每种算法计算预测所需的时间,结果表明 kNN-DTW 比独立 DTW 快。独立 DTW(二次时间复杂度)不应该比 kNN-DTW(三次时间复杂度)快吗?这是因为我的 DTW 实现中有错误吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。