0

我已经使用带有 sci-kit learn 的自定义 DTW 指标实现了 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 实现中的错误吗?

4

0 回答 0